Author: bef0rd Language: python
Description: No description Timestamp: 2008-08-21 00:36:26 -0400
View raw paste Reply
  1. #!/usr/bin/python
  2.  
  3. import os
  4. import re
  5. import urllib2
  6. import hildon
  7.  
  8. import gtk
  9.  
  10. import gobject
  11.  
  12.  
  13. class Meow:
  14.         def __init__(self):
  15.                 def quitter(x):
  16.                         gtk.main_quit()
  17.                        
  18.                 window = hildon.Window()
  19.                 self.window = window
  20.                 window.connect("destroy", quitter)
  21.                 self.fullscreen = True
  22.                 self.window.fullscreen()
  23.                 window.connect("key-press-event", self.on_key_press)
  24.                 self.window.set_title('lolZilla')
  25.                 self.window.AppPaintable=True
  26.                
  27.                 map = self.window.get_colormap()
  28.                 colour = map.alloc_color("black")
  29.                 style = self.window.get_style().copy()
  30.                 style.bg[gtk.STATE_NORMAL] = colour
  31.                 style.bg[gtk.STATE_PRELIGHT] = colour
  32.                 self.window.set_style(style)
  33.  
  34.                 self.image = gtk.Image()
  35.                 self.image.show()
  36.                 #box=gtk.VBox()
  37.                 #box.pack_start(self.image,True ,True, 0)
  38.                 #box.show()                    
  39.                 self.window.add(self.image)
  40.                 self.changeCat()
  41.                 self.window.show()
  42.                 gtk.main()
  43.  
  44.         def toggle_fullscreen(self):
  45.                 self.fullscreen = not self.fullscreen
  46.                 if self.fullscreen:
  47.                         self.window.fullscreen()
  48.                 else:
  49.                         self.window.unfullscreen()
  50.  
  51.         def on_key_press(self,widget,event,*args):
  52.                 if event.keyval == gtk.keysyms.F6:
  53.                         self.toggle_fullscreen()       
  54.                 else:
  55.                         self.changeCat()
  56.                
  57.         def changeCat(self):
  58.                 print "llamando a cambiargato\n"
  59.                 lolcat = self.getRandomCat()
  60.                 lolcatname = lolcat.split("/")[-1].split("?")[0]
  61.                 self.saveImage(lolcat, os.path.join("./", lolcatname))
  62.                 self.showImage(os.path.join("./", lolcatname))
  63.                 return True
  64.                
  65.         def showImage(self, imagePath):
  66.                 return self.image.set_from_file(imagePath)
  67.                
  68.         def saveImage(self, url, filename):
  69.                 usock = urllib2.urlopen(url)
  70.                 data = usock.read()
  71.                 usock.close()
  72.                 fp = open(filename, 'wb')
  73.                 fp.write(data)
  74.                 fp.close()
  75.          
  76.  
  77.         def getRandomCat(self):
  78.                 LOLCATRANDOM = "http://icanhascheezburger.com/?random"
  79.                 PG_13 = "http://icanhascheezburger.files.wordpress.com/2007/12/pg-13.gif"
  80.                 usock = urllib2.urlopen(LOLCATRANDOM)
  81.                 data = usock.read()
  82.                 usock.close()
  83.                 regex = re.compile('''<div class='snap_preview'>.*<img\s+.*\s*src=["'](http://[^+]*?)['"]''')
  84.                 url = ""
  85.                 lolVar = regex.findall(data)
  86.                 for i in lolVar:
  87.                         url = i
  88.  
  89.                 if url == PG_13 or url == "":
  90.                         regex = re.compile('''<div class='snap_preview'>.*<a\s+.*\s*href=["'](http://[^+]*?)['"]''')
  91.                         lolVar = regex.findall(data)
  92.                         for i in lolVar:
  93.                                 url = i
  94.  
  95.                 if url == "":
  96.                         url = getRandomCat()
  97.                
  98.                 return url                     
  99.                
  100.  
  101. p = Meow()
  102.  
  103. def miau():
  104.         p.changeCat()
  105.         return True
  106.  
  107.  
  108. gobject.threads_init()
  109. gobject.timeout_add(900, miau)
  110. loop = gobject.MainLoop()
  111. loop.run()
  112.  
View raw paste Reply