def _on_uri_changed(self, webview, load_status):
     if self.webview.get_property("load-status") ==\
         WebKit.LoadStatus.FINISHED:
         if self.current_uri != self.webview.get_uri():
             if self.current_uri:
                 event = Event()
                 event.interpretation = Interpretation.LEAVE_EVENT
                 event.manifestation = Manifestation.USER_ACTIVITY
                 event.actor = "application://web.desktop"
                 subject = Subject()
                 subject.uri = self.current_uri
                 subject.mimetype = "text/html"
                 subject.text = self.current_title
                 subject.interpretation = Interpretation.WEBSITE
                 subject.manifestation = Manifestation.REMOTE_PORT_ADDRESS
                 event.subjects = [subject]
                 ZG.insert_event(event)
             self.current_uri = self.webview.get_uri()
             self.current_title = self.webview.get_title()
             print "===>", self.current_title 
             event = Event()
             event.interpretation = Interpretation.ACCESS_EVENT
             event.manifestation = Manifestation.USER_ACTIVITY
             event.actor = "application://web.desktop"
             subject = Subject()
             subject.uri = self.current_uri
             subject.mimetype = "text/html"
             subject.text = self.current_title
             subject.interpretation = Interpretation.WEBSITE
             subject.manifestation = Manifestation.REMOTE_PORT_ADDRESS
             event.subjects = [subject]
             ZG.insert_event(event)
Example #2
0
def format_events(commits):
    events = []
    for commit in commits:
        if not commit["desc"].lower().startswith("merge"):
            event = Event()
            event.timestamp = commit["timestamp"] * 1000
            event.actor = commit["actor"]
            event.interpretation = Interpretation.MODIFY_EVENT
            event.manifestation = Manifestation.USER_ACTIVITY
            subj = Subject()
            subj.uri = "dav://%s" % commit["uri"]
            subj.origin = "dav:// " + event.actor
            subj.interpretation = Interpretation.MESSAGE
            subj.manifestation = Manifestation.FILE_DATA_OBJECT.REMOTE_DATA_OBJECT
            subj.text = commit["desc"]
            event.subjects = [subj]
            for f in commit["files"]:
                if f.strip() != "":
                    subj = Subject()
                    subj.uri = "file://" + f
                    subj.interpretation = Interpretation.DOCUMENT
                    subj.manifestation = Manifestation.FILE_DATA_OBJECT.REMOTE_DATA_OBJECT
                    subj.text = f.split("/")[-1]
                    event.subjects.append(subj)
            events.append(event)
    return events
 def _on_view_pages(self, widget):
     self.home.reset()
     uris = []
     for pIndex in xrange(self.pages.get_n_pages()):
         self.pages.set_current_page(pIndex)
         page = self.pages.get_nth_page(pIndex)
         overviewPage = PageOverviewWidget(page)
         overviewPage.connect("clicked", self._on_page_clicked)
         self.home.add_page(overviewPage)
         uris.append(page.webview.get_uri())
     self.home.show_all()
     self.box.set_current_page(0)
     
     def callback(events):
         self.home.recentDashboard.recentPages.reset()
         for event in events:
             page = PageButton(event.subjects[0])
             print event.subjects[0].uri
             self.home.recentDashboard.recentPages.add_page(page)
         self.home.show_all()
     event = Event()
     event.actor = "application://web.desktop"
     event.subjects = []
     for uri in uris:
         if uri:
             subject = Subject()
             subject.uri = "!"+uri
             event.subjects.append(subject)
     print event
     ZG.find_events_for_template(event, callback, result_type=2)
    def request_last_n_days_events(self, n=90, func=None):
        """
        Find the events for 'n' days and packs them into the store

        Optionally calls func upon completion
        """
        subject = Subject()
        subject.uri = "!application://*"
        event_templates = (
            Event.new_for_values(
                interpretation=Interpretation.ACCESS_EVENT.uri,
                subjects=[subject]),
            Event.new_for_values(
                interpretation=Interpretation.MODIFY_EVENT.uri,
                subjects=[subject]),
            Event.new_for_values(
                interpretation=Interpretation.CREATE_EVENT.uri,
                subjects=[subject]),
            Event.new_for_values(
                interpretation=Interpretation.RECEIVE_EVENT.uri,
                subjects=[subject]),
            Event.new_for_values(
                actor="!application://activity-log-manager.desktop"))

        def callback(events):
            def _thread_fn(events):
                event_chunks = []
                chunk = []
                for i, event in enumerate(events):
                    chunk.append(event)
                    if i % 20 == 0:
                        event_chunks.append(chunk)
                        chunk = []
                map(self.add_events, event_chunks)
                if func:
                    func()
                return False

            thread = threading.Thread(target=_thread_fn, args=(events, ))
            thread.start()

        end = time.time() - 3 * 86400
        start = end - n * 86400
        if n >= 60:
            inc = (end - start) / (n / 30)
            for i in range(n / 30):
                a = end - (inc * (i + 1)) + 1
                b = end - (inc * (i))
                CLIENT.find_events_for_templates(
                    event_templates,
                    callback, [a * 1000, b * 1000],
                    num_events=50000,
                    storage_state=StorageState.Available)
        else:
            CLIENT.find_events_for_templates(
                event_templates,
                callback, [start * 1000, end * 1000],
                num_events=50000,
                storage_state=StorageState.Available)
        return False
Example #5
0
 def __create_app_subject(self, desktop_file):
     subject = ZeitgeistSubject()
     subject.interpretation = ZeitgeistDataModel.Interpretation.SOFTWARE
     subject.manifestation = ZeitgeistDataModel.Manifestation.SOFTWARE_ITEM
     subject.uri = APPLICATION_URI_PREFIX + get_desktop_id(desktop_file)
     subject.current_uri = subject.uri
     subject.mimetype = "application/x-desktop"
     return subject
Example #6
0
 def __create_app_subject(self, desktop_file):
     subject = ZeitgeistSubject()
     subject.interpretation = ZeitgeistDataModel.Interpretation.SOFTWARE
     subject.manifestation = ZeitgeistDataModel.Manifestation.SOFTWARE_ITEM
     subject.uri = APPLICATION_URI_PREFIX + get_desktop_id(desktop_file);
     subject.current_uri = subject.uri
     subject.mimetype = "application/x-desktop"
     return subject
 def templates(self):
     subject = Subject()
     subject.uri = "!application://*"
     return [
         Event.new_for_values(
             subjects=[subject],
             actor="!application://activity-log-manager.desktop")
     ]
Example #8
0
		def handle_recent(results):
			self.recent = []
			for event in results:
				if exists(event.subjects[0].uri):
					self.recent.append([event.subjects[0].uri, event.subjects[0].text])
					subj = Subject()
					subj.uri = "!"+event.subjects[0].uri
					template.subjects.append(subj)
				if len(self.recent) >= 5:
					break
			CLIENT.find_events_for_templates([template], handle_most, num_events = 1000, result_type = 4)
    def __init__(self):
        super(Store, self).__init__()
        self.run_build_thread = False
        self._days = {}
        self._day_connections = {}
        self._deleted_uris = []
        #Search for uris that have been deleted in order to not display them.
        #FIXME we should add a timestamp field with the deleted uri
        #to prevent that a recent event with same uri than an older and deleted one
        #isn't displayed. - cando
        self._deleted_uris = []
        subject = Subject()
        subject.uri = "!application://*"
        template = Event.new_for_values(
            interpretation=Interpretation.DELETE_EVENT.uri,
            subjects=[subject],
            actor="!application://activity-log-manager.desktop")

        CLIENT.find_events_for_templates((template, ),
                                         self.__set_deleted_uris,
                                         TimeRange.until_now(),
                                         num_events=MAXEVENTS)
        global currentTimestamp, histogramLoaderCounter
        today = datetime.date.today()
        currentTimestamp = time.mktime(today.timetuple())
        days_population = CLIENT_EXTENSION.GetHistogramData()
        for i in xrange(50 * 6):
            date = datetime.date.fromtimestamp(currentTimestamp)
            day = Day(date, days_population)
            self.add_day(date, day)
            currentTimestamp -= 86400
        for day in self.days[-6:]:
            day.load_ids()
        content_objects.AbstractContentObject.connect_to_manager(
            "add", self.add_content_object_with_new_type)
        content_objects.AbstractContentObject.connect_to_manager(
            "remove", self.remove_content_objects_with_type)
Example #10
0
def dict2event(d):
    ev = Event()
    ev[0][Event.Id] = d.get("id", "")
    ev.timestamp = d.get("timestamp", "")
    ev.interpretation = d.get("interpretation", "")
    ev.manifestation = d.get("manifestation", "")
    ev.actor = d.get("actor", "")
    ev.origin = d.get("origin", "")
    ev.payload = d.get("payload", "")

    subjects = d.get("subjects", [])
    for sd in subjects:
        subj = Subject()
        subj.uri = sd.get("uri", "")
        subj.current_uri = sd.get("current_uri", "")
        subj.interpretation = sd.get("interpretation", "")
        subj.manifestation = sd.get("manifestation", "")
        subj.origin = sd.get("origin", "")
        subj.current_origin = sd.get("current_origin", "")
        subj.mimetype = sd.get("mimetype", "")
        subj.text = sd.get("text", "")
        subj.storage = sd.get("storage", "")
        ev.append_subject(subj)
    return ev
def dict2event(d):
	ev = Event()
	ev[0][Event.Id] = d.get("id", "").encode("UTF-8")
	ev.timestamp = str(d.get("timestamp", ""))
	ev.interpretation = str(d.get("interpretation", "").encode("UTF-8"))
	ev.manifestation = str(d.get("manifestation", "").encode("UTF-8"))
	ev.actor = str(d.get("actor", "").encode("UTF-8"))
	ev.origin = str(d.get("origin", "").encode("UTF-8"))
	ev.payload = str(d.get("payload", "").encode("UTF-8"))
	
	subjects = d.get("subjects", [])
	for sd in subjects:
		subj = Subject()
		subj.uri = str(sd.get("uri", "").encode("UTF-8"))
		subj.current_uri = str(sd.get("current_uri", "")).encode("UTF-8")
		subj.interpretation = str(sd.get("interpretation", "").encode("UTF-8"))
		subj.manifestation = str(sd.get("manifestation", "").encode("UTF-8"))
		subj.origin = str(sd.get("origin", "").encode("UTF-8"))
		subj.current_origin = str(sd.get("current_origin", "")).encode("UTF-8")
		subj.mimetype = str(sd.get("mimetype", "").encode("UTF-8"))
		subj.text = str(sd.get("text", "").encode("UTF-8"))
		subj.storage = str(sd.get("storage", "").encode("UTF-8"))
		ev.append_subject(subj)
	return ev