<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>0.pickle</filename>
    </added>
    <added>
      <filename>arduino.py</filename>
    </added>
    <added>
      <filename>fundo.gif</filename>
    </added>
    <added>
      <filename>get_img.py</filename>
    </added>
    <added>
      <filename>layout/layouts/.DS_Store</filename>
    </added>
    <added>
      <filename>layout/layouts/bg_completo.gif</filename>
    </added>
    <added>
      <filename>layout/layouts/bg_logo.gif</filename>
    </added>
    <added>
      <filename>layout/layouts/bg_thermos.gif</filename>
    </added>
    <added>
      <filename>layout/layouts/layout_em_3.gif</filename>
    </added>
    <added>
      <filename>layout/layouts/layout_em_3.jpg</filename>
    </added>
    <added>
      <filename>layout/layouts/layout_em_3.png</filename>
    </added>
    <added>
      <filename>layout/layouts/layout_em_3.psd</filename>
    </added>
    <added>
      <filename>layout/logo_principal.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/.DS_Store</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_1.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_2.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_3.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_4.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_cheio.gif</filename>
    </added>
    <added>
      <filename>layout/thermo_gif/thermo_vazio.gif</filename>
    </added>
    <added>
      <filename>twitter2.py</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,77 +2,170 @@
 # coding: utf8
 import sys
 import os
+import random
 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
+#sys.path.insert(0, '/opt/local/lib/python2.5/site-packages/PIL-1.1.6-py2.5-macosx-10.3-i386.egg')
 
 import cocos
 from cocos.actions import *
 from pyglet.window import key
+import pyglet
+import pickle
+
+import urllib
+#import urlparse
+#from PIL import Image
 
 width = 800
 height = 600
+slowness= 128.0 / 50
+last_file = 0
+buffer = []
+taxa_flickr = 0
+taxa_twitter = 0
+
+def file_name():
+    return '%s_out.pickle' % last_file
+	#return '%s.pickle' % last_file
+
+def fake_buffer():
+    global buffer
+    items = [{'type': 'twitter', 'text': 'asfasdasd', 'user': 'rbp'},
+                   {'type': 'twitter', 'text': 'sdga;lgpsdF', 'user': 'rbp'},
+                   {'type': 'twitter', 'text': 'wep3-0wf-0', 'user': ''},
+                   {'type': 'twitter', 'text': 'sdfsdfsdfsasfasdasd', 'user': 'lucmult'},
+                   {'type': 'twitter', 'text': 'asfasdasd as df dsf ', 'user': 'lucmult'},
+                   ]
+    #for i in [it for it in items if it['type'] == 'flickr']:
+    #    img = Image.open(i['url'])
+    #    img.resize(160, 120)
+    #    img.save()
+
+    random.shuffle(items)
+    buffer.extend(items)
+
+def start_pos():
+    candidates = [(0, 0), (0, height), (width, 0), (width, height)]
+    return random.choice(candidates)
+
+def text_colour():
+    candidates = [&quot;#FF0000&quot;, &quot;#00FF00&quot;, &quot;#0000FF&quot;]
+    return random.choice(candidates)
+
+def fill_buffer():
+    global buffer, taxa_flickr, taxa_twitter, last_file
+    if os.path.exists(file_name()):
+        try:
+            data = pickle.load(file(file_name()))
+        except:
+            return
+        #buffer.extend([i for i in data['items'] if i['type'] == 'twitter'])
+        buffer.extend([i for i in data['items']])
+        taxa_flickr = data.get('taxa_flickr', 250)
+        taxa_twitter= data.get('taxa_twitter', 0)
+        last_file += 1
+    # DEBUG
+    #fake_buffer()
+    #taxa_twitter = random.randint(0, 5)
+
+def float_rate():
+    #rate = 1.0 / (taxa_twitter + 1)
+    rate = 1.0 / 2**((taxa_twitter + 1)/2.0)
+    print rate
+    return rate
+
+def callData(dt, *args, **kwargs):
+    global buffer
+    print kwargs
+    print buffer
+    panel = kwargs['panel']
+    if not buffer:
+        fill_buffer()
+        if buffer:
+            panel.unschedule(callData)
+            panel.schedule_interval(callData, float_rate(), panel=panel)
+        else:
+            panel.schedule_interval(callData, 1, panel=panel)
+        return
+    item = buffer.pop(0)
+    cl = Cluster(100, start_pos())
+    panel.add(cl)
+    if item['type'] == 'twitter':
+        cl.add_text(item['text'], item['user'])
+    elif item['type'] == 'flickr':
+        cl.add_img(item['url'], item['user'])
+    cl.moveTo()
+    #if len(buffer) == 0:
+    #    # Mostra que estah atualizando...
+
 
 class Panel(cocos.layer.ColorLayer):
     is_event_handler = True
     
     def __init__(self):
-        super(Panel, self).__init__(255, 255, 255, 255)
+        super(Panel, self).__init__(64, 64, 64, 64)
 
     def on_key_press( self, k , m ):
+        global buffer, taxa_twitter
         if k == key.ENTER:
-            cl.moveTo(1)
-            cocos.director.director.replace(cocos.scene.Scene(self))
-            
+            fill_buffer()
+            panel.schedule_interval(callData, float_rate(), panel=self)
+        elif k == key.ESCAPE:
+            #self.parent.on_exit()
+            pyglet.app.exit()
+
+class User(cocos.sprite.Sprite):
+    def __init__(self, name, posts):
+        self.name = name
+        self.posts = posts
+
+        texto = cocos.text.Label(name)
+        super(User, self).__init__(image='space.jpg', position=(150, 150))
+        self.add(texto)
+
+
 class Cluster(cocos.sprite.Sprite):
     lastImg = '0'
     def __init__(self, scale, position):
-        img = 'cloud' + self.lastImg + '.gif'
+        #img = 'cloud' + self.lastImg + '.gif'
+        img = 'fundo.gif'
         #self.lastImg+=1
         #self.lastImg%=10
         scale = 0.01*scale
         super(Cluster, self).__init__(image=img, scale=scale, opacity=180, position=position)
 
-    def addTags(self, tags):
-        html = ''
-        for i,tag in enumerate(tags):
-            html+='&lt;font size=%d&gt;%s&lt;/font&gt; ' % ((5-i)*20,tag[0])
-        tagFormatted = cocos.text.HTMLLabel(html,
+    def add_text(self, text, user):
+        colour = text_colour()
+        name_colour = &quot;#FFFFFF&quot;
+        html = '&lt;font size=&quot;%s&quot; color=&quot;%s&quot;&gt;%s&lt;/font&gt;&lt;br&gt;&lt;b&gt;&lt;font color=&quot;%s&quot;&gt;%s&lt;/size&gt;&lt;/b&gt; ' % (
+                &quot;+3&quot;, colour, text, name_colour, user)
+        formatted = cocos.text.HTMLLabel(html,
                 x=-self.width/2+30, width=self.width-60, multiline=True)
+        self.add(formatted)
+
+    def add_img(self, url, user):
+        try:
+            sp_img = cocos.sprite.Sprite(image=url, opacity=200, scale=0.3) 
+        except:
+            return
+        self.add(sp_img)
 
-        self.add(tagFormatted)
-
-    def moveTo(self, position):
-        if position==1:
-            newW = width - width/6
-            newH = height - height/6
-        elif position==2:
-            newW = width - width/6
-            newH = height/6
-        elif position==3:
-            newW = width/6
-            newH = height/6
-        elif position==4:
-            newW = width/6
-            newH = height - height/6
+    def moveTo(self):
+        newW = width/2  - self.position[0]
+        newH = height/2 - self.position[1]
             
-        ju_right = JumpBy( (newW,newH), height=100, jumps=4, duration=5 )
+        ju_right = JumpBy( (newW,newH), height=100, jumps=1, duration=slowness)
         self.do(ju_right)
 
-def callData(dt, *args, **kwargs):
-    # aqui vai o que hoje esta no key_press
-    print dt
 
 if __name__ == '__main__':
     cocos.director.director.init(resizable=True, width=width, height=height)
 
     panel = Panel()
-    panel.schedule_interval(callData, 3)
-    cl = Cluster(100, (320, 240))
-    panel.add(cl)
-    tags = [('teste1',30),('teste2',30),('teste3',30),('teste4',30),('teste5',30)]
-    cl.addTags(tags)
+    panel.add(cocos.sprite.Sprite('layout/layouts/layout_em_3.gif',
+                                  position=(width/2, height/2),
+                                  ),
+              -1)
     scene = cocos.scene.Scene(panel)
-
     cocos.director.director.run(scene)
-    
-    
 </diff>
      <filename>desktop_display.py</filename>
    </modified>
    <modified>
      <diff>@@ -4,9 +4,7 @@ import flickrapi
 from flickr_keys import *
 import time, cPickle
 
-from contextable import Contextable
-
-class Photo(Contextable):
+class Photo(object):
     def __init__(self, url, tags, username, lastupdate):
         self.tags = tags
         self.url = url
@@ -39,7 +37,7 @@ def getFlickers():
     photos = []
     flickr = authFlickr()
     recent = flickr.photos_search(tags=&quot;brhackday08&quot;, 
-                                  per_page='500',format='json',
+                                  per_page='20',format='json',
                                   extras='tags,last_update,owner_name')
     recent_json = get_json(recent)
     for photo in recent_json['photos']['photo']:</diff>
      <filename>flickr_api.py</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,8 @@ from urllib import urlopen
 import datetime
 import pickle
 import time
+from flickr_api import getFlickers
+import webbrowser
 
 serie = 0
 while (True):
@@ -34,38 +36,70 @@ while (True):
             #if (tempo_passado &lt;
             contador += 1
         n+=1
+    
+    photos = getFlickers()
 
+    photos_tratadas = []
+    contador = 0
+    print &quot;len(photos) = &quot; + str(len(photos))
+    for photo in photos:
+        #import pdb
+        #pdb.set_trace()
+        if (int(photo.lastupdate) - time.time()+ 7200 &lt; 3600):
+            photos_tratadas.append({'type': 'flickr', 'url': photo.url, 'user': photo.username, 'tags': photo.tags})
+            contador += 1
+            if contador &lt; 30:
+                print &quot;%d&quot; % (int(photo.lastupdate) - time.time())
+            
+            
+    print &quot;contador flickr recentes=%d&quot; % contador
+    
     print &quot;posts_na_ultima_hora = %d&quot; % posts_na_ultima_hora
     if (posts_na_ultima_hora &gt;= 0):
         saida_arduino = 1
 
-    if (posts_na_ultima_hora &gt; 3):
+    if (posts_na_ultima_hora &gt; 8):
         saida_arduino = 2
 
-    if (posts_na_ultima_hora &gt; 6):
+    if (posts_na_ultima_hora &gt; 23):
         saida_arduino = 3
 
-    if (posts_na_ultima_hora &gt; 8):
+    if (posts_na_ultima_hora &gt; 32):
         saida_arduino = 4
 
-    if (posts_na_ultima_hora &gt; 12):
+    if (posts_na_ultima_hora &gt; 42):
         saida_arduino = 5
 
+    print &quot;Antes dos ifs: contador = %d&quot; % contador
+    
+    if (contador &lt;= 10):
+        taxa_flickr = 200
+
+    if (contador &gt; 10):
+        taxa_flickr = 150
+
+    if (contador &gt; 19):
+        taxa_flickr = 100
+
+    if (contador &gt; 40):
+        taxa_flickr = 50
+
+    if (contador &gt;= 90):
+        taxa_flickr = 5
+
     print saida_arduino
 
     twits_tratados = []
 
-    taxa_flickr = [] 
-
     for twit in twits:
         twits_tratados.append({'type': 'twitter', 'text': twit[1], 'user': twit[0]})
 
     to_pickle = {   'taxa_twitter' : saida_arduino,
                     'taxa_flickr' : taxa_flickr,
-                    'items': twits_tratados,                    
+                    'items': twits_tratados + photos_tratadas,                    
                                             }
 
     pickle.dump(to_pickle, file(str(serie) + &quot;.pickle&quot;, 'w'))
     serie += 1
-    time.sleep(60)
+    time.sleep(30)
     </diff>
      <filename>twitter.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1619688269b5ac4761052ac2950564185b0011a7</id>
    </parent>
  </parents>
  <author>
    <name>Fabs</name>
    <email>fabriciosn@gmail.com</email>
  </author>
  <url>http://github.com/Fabs/eventomeeter/commit/5035858642f19f0dc851f2ce3c11599d12581684</url>
  <id>5035858642f19f0dc851f2ce3c11599d12581684</id>
  <committed-date>2008-11-16T13:56:27-08:00</committed-date>
  <authored-date>2008-11-16T13:56:27-08:00</authored-date>
  <message>Now, the real thing. Final version is up.</message>
  <tree>e80fd73a616b44ef2830e780a7c16eb4abfe6c8c</tree>
  <committer>
    <name>Fabs</name>
    <email>fabriciosn@gmail.com</email>
  </committer>
</commit>
