~gnome-zeitgeist/gnome-zeitgeist/Dashboard2

« back to all changes in this revision

Viewing changes to src/main.py

  • Committer: Seif Lotfy
  • Date: 2009-08-28 19:35:28 UTC
  • Revision ID: seif@lotfy.com-20090828193528-31ft7ho6v8mns2no
corrected the graphs

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
    __gsignals__ = {
16
16
        "changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)),
17
17
        }
 
18
    
 
19
    SUPPORTED_APPS = [
 
20
                      "Firefox",
 
21
                      "Text Editor"
 
22
                      ]
 
23
    
18
24
    def __init__(self):
19
25
        gobject.GObject.__init__(self)
20
26
        
23
29
 
24
30
        self.screen.connect("active-window-changed", self.__set_active_window)
25
31
        
 
32
        
26
33
    def __set_active_window(self, screen, window=None):
27
 
        print "changed window"  
28
34
        window = self.screen.get_active_window()
29
 
        print window.get_name()
 
35
        #print window.get_name()
30
36
        if window:
31
37
            self.active_window["app"] = window.get_application()
32
38
            self.active_window["text"] = window.get_name()
 
39
            self._extract_text()
33
40
            self.emit("changed", self.active_window)
34
 
 
35
 
 
 
41
            
 
42
    def _extract_text(self):
 
43
        text = self.active_window["text"]
 
44
        app =  self.active_window["app"].get_name()
 
45
        
 
46
        if app == "Firefox":
 
47
            text = string.rsplit(text, " - Mozilla Firefox", 1)[0]
 
48
        elif app == "Text Editor":
 
49
            text = string.rsplit(text, " (", 1)[0]
 
50
        self.active_window["text"] = text
 
51
    
36
52
 
37
53
class RelevancyBox:
38
54
    def __init__(self):
40
56
        from zeitgeist import dbusutils
41
57
        self.zg = dbusutils.DBusInterface()
42
58
        self._create_map()
 
59
        #plotter.plot_graph(self.graph.nodes, [])
43
60
        self.zg.connect("EventsChanged", self.__fragment_event)
44
 
        am.connect("changed", self.get_related_items)
 
61
        #am.connect("changed", self.get_related_items)
45
62
        
46
63
    def __fragment_event(self, event):
47
64
        event = event[1][0]
48
65
        self.graph._append_to_graph(event)
49
 
        #self.get_related_items(None, event)
 
66
        self.get_related_items(None, event)
50
67
        
51
68
    def get_related_items(self, source, active_window):
52
 
        print "---------- getting relations -----------"
 
69
        #print "---------- getting relations -----------"
 
70
        depth = 2
 
71
        
53
72
        related = []
54
73
        titles = []
55
74
        
56
 
        app = active_window["app"].get_name()
57
 
        text = string.rsplit(active_window["text"], " - "+app, 1)[0]
58
 
        if text == active_window["text"]:
59
 
            text = string.rsplit(active_window["text"], " - ", 1)[0]
60
 
        
 
75
        text = active_window["text"]
61
76
        events = self.zg.FindEvents(0, 0, 1, False, "item",  [{"name":[text]}])
62
 
      
63
 
        if len(events) == 0:
64
 
            for text in active_window["text"].split(" "):
65
 
                print "---> "+text
66
 
                events = self.zg.FindEvents(0, 0, 1, False, "item",  [{"name":["%"+text+"%"]}])
67
 
                #if len(events) > 0:
68
 
                    #print "*** ", events[0]["text"]
69
 
              
 
77
        
70
78
        if len(events) >0:
71
79
            for event in events:
72
80
                #print event["app"]
73
 
                print "---> "+event["text"]
 
81
                #print "---> "+event["text"]
74
82
                #print event["text"]
75
83
        
76
84
                if self.graph.nodes.has_key(event["uri"]):
77
 
                    related =self.graph.get_neighbourhood(self.graph.nodes[event["uri"]], 1, [])
 
85
                    related =self.graph.get_neighbourhood(self.graph.nodes[event["uri"]], depth, [],  ["+","-"])
78
86
            #print item["node"].id
79
87
            print "**********************************"
80
88
            print related.id
81
89
            uricount = {}
82
90
            self.print_relations(related, uricount)
83
 
            plotter.plot_tree(related)
 
91
            plotter.plot_tree(related, depth)
84
92
                #window.set_item(self.graph.nodes[event["uri"]], related)
85
93
        print "**********************************"
86
94
    
105
113
                self.print_relations(inc.first_node, uricount)
106
114
 
107
115
    def _create_map(self):
108
 
        events = self.zg.FindEvents(0, 0, 0, True, "event",  [])
 
116
        import time
 
117
        t1 = time.time() - 86400
 
118
        events = self.zg.FindEvents(t1, t1+86400, 0, True, "event",  [])
109
119
        self.graph.set_graph(events)
110
120
        
111
121
if __name__=="__main__":