OSDN Git Service

Auto extract mentions to me from timeline
authorHirotaka Kawata <hktechno@hotmail.com>
Mon, 1 Mar 2010 18:54:11 +0000 (03:54 +0900)
committerHirotaka Kawata <hktechno@hotmail.com>
Mon, 1 Mar 2010 18:54:11 +0000 (03:54 +0900)
main.py
timeline.py

diff --git a/main.py b/main.py
index cce1e95..920e7d2 100644 (file)
--- a/main.py
+++ b/main.py
@@ -109,9 +109,11 @@ class Main:
         tl.add_notebook(self.obj.notebook1, name)
         # Add Popup Menu
         tl.add_popup(self.obj.menu_timeline)
-        
         tl._tab_append = self._tab_append
         
+        if method != "mentions":
+            tl.add_event = self._add_event
+        
         # Treeview double click signal connect
         tl.treeview.connect(
             "row-activated",
@@ -127,6 +129,16 @@ class Main:
     
     def get_current_tab(self):
         return self.obj.notebook1.get_current_page()
+
+    # status added event
+    def _add_event(self, i):
+        status = self.twitter.statuses[i]
+        myname = self.twitter.users[self.twitter.myid]
+        if status.in_reply_to_user_id == self.twitter.myid or \
+                status.text.find("@%s" % myname) >= 0:
+            self.timelines[1].add_status(i)
+            self.timelines[1].color_status()
+            self.timelines[1].timeline.timeline.add(status.id)
     
     ########################################
     # Gtk Signal Events
index a33bbb5..84612f1 100644 (file)
@@ -162,6 +162,47 @@ class timeline:
             
             self.store.set_value(i, 4, bg)
             i = self.store.iter_next(i)
+
+    # Prepend new statuses
+    def _prepend_new_statuses(self, new_ids):
+        # Auto scroll lock if adjustment changed manually
+        vadj = self.scrwin.get_vadjustment()
+        self.vadj_lock = True if vadj.value != 0.0 else False
+        
+        myname = self.twitter.users[self.twitter.myid].screen_name
+        
+        # Insert New Status
+        for i in new_ids:
+            self.add_status(i)
+        
+        self.color_status()
+    
+    def add_status(self, i):
+        status = self.twitter.statuses[i]
+        
+        # colord url
+        text, urls = self.urlre.get_colored(status.text)
+        # replace no entity & -> &amp;
+        text = self._replace_amp(text)
+        
+        # Bold screen_name
+        text = "<b>%s</b>\n%s" % (
+            status.user.screen_name, text)
+        
+        # New Status Prepend to Liststore (Add row)
+        gtk.gdk.threads_enter()
+        self.store.prepend(
+            (self.icons.get(status.user),
+             text,
+             long(status.id), long(status.user.id),
+             None, # background
+             urls))
+        gtk.gdk.threads_leave()
+
+        self.add_event(i)
+    
+    def add_event(self, i):
+        pass
     
     
     ########################################
@@ -203,39 +244,6 @@ class timeline:
                 self.treeview.scroll_to_cell((0,))
             self.vadj_upper = adj.upper
     
-    # Prepend new statuses
-    def _prepend_new_statuses(self, new_ids):
-        # Auto scroll lock if adjustment changed manually
-        vadj = self.scrwin.get_vadjustment()
-        self.vadj_lock = True if vadj.value != 0.0 else False
-        
-        myname = self.twitter.users[self.twitter.myid].screen_name
-        
-        # Insert New Status
-        for i in new_ids:
-            status = self.twitter.statuses[i]
-            
-            # colord url
-            text, urls = self.urlre.get_colored(status.text)
-            # replace no entity & -> &amp;
-            text = self._replace_amp(text)
-            
-            # Bold screen_name
-            text = "<b>%s</b>\n%s" % (
-                status.user.screen_name, text)
-            
-            # New Status Prepend to Liststore (Add row)
-            gtk.gdk.threads_enter()
-            self.store.prepend(
-                (self.icons.get(status.user),
-                 text,
-                 long(status.id), long(status.user.id),
-                 None, # background
-                 urls))
-            gtk.gdk.threads_leave()
-        
-        self.color_status()
-    
     # Menu popup
     def on_treeview_button_press(self, widget, event):
         if event.button == 3: