Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import random
  2. import urllib
  3. import Image
  4. from BeautifulSoup import BeautifulStoneSoup
  5.  
  6. def find_an_image(keyword):
  7.     response = urllib.urlopen('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + keyword + '&lang=en-us&format=rss_200')
  8.     soup = BeautifulStoneSoup(response)
  9.  
  10.     image_list = []
  11.  
  12.     for image in soup.findAll('media:content'):
  13.         image_url = dict(image.attrs)['url']
  14.         image_list.append(image_url)
  15.  
  16.     return random.choice(image_list)
  17.    
  18. def download_an_image(image_url):
  19.     filename = image_url.split('/')[-1]
  20.     urllib.urlretrieve(image_url, filename)
  21.    
  22.     return filename
  23.  
  24. def get_random_start_and_end_points_in_file(file_data):
  25.     start_point = random.randint(2500, len(file_data))
  26.     end_point = start_point + random.randint(0, len(file_data) - start_point)
  27.  
  28.     return start_point, end_point
  29.  
  30. def splice_a_chunk_in_a_file(file_data):
  31.     start_point, end_point = get_random_start_and_end_points_in_file(file_data)
  32.     section = file_data[start_point:end_point]
  33.     repeated = ''
  34.  
  35.     for i in range(1, random.randint(1,5)):
  36.         repeated += section
  37.  
  38.     new_start_point, new_end_point = get_random_start_and_end_points_in_file(file_data)
  39.     file_data = file_data[:new_start_point] + repeated + file_data[new_end_point:]
  40.     return file_data
  41.    
  42. def glitch_an_image(local_image):
  43.     file_handler = open(local_image, 'r')
  44.     file_data = file_handler.read()
  45.     file_handler.close()
  46.  
  47.     for i in range(1, random.randint(1,5)):
  48.         file_data = splice_a_chunk_in_a_file(file_data)
  49.  
  50.     file_handler = open(local_image, 'w')
  51.     file_handler.write(file_data)
  52.     file_handler.close
  53.  
  54.     return local_image
  55.  
  56. if __name__ == '__main__':
  57.     image_url = find_an_image('art')
  58.     local_image = download_an_image(image_url)
  59.     image_glitch_file = glitch_an_image(local_image)
  60.  
  61.     print image_glitch_file