From 7e162dd3c1f720be379a7f40c60df16faba07a5b Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Fri, 27 Mar 2015 15:57:52 -0700 Subject: [PATCH] Sync starred changes regardless of subscription This is nearly exactly the same as syncing own changes, so make that task more generic and re-use it. Change-Id: I952ede3057b3a7caf779401be01e97261bec31d9 --- gertty/sync.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gertty/sync.py b/gertty/sync.py index 6a287fe..c24f8ce 100644 --- a/gertty/sync.py +++ b/gertty/sync.py @@ -240,7 +240,10 @@ class SyncSubscribedProjectsTask(Task): t = SyncProjectTask(keys[i:i+10], self.priority) self.tasks.append(t) sync.submitTask(t) - t = SyncOwnChangesTask(self.priority) + t = SyncQueriedChangesTask('owner', 'is:owner', self.priority) + self.tasks.append(t) + sync.submitTask(t) + t = SyncQueriedChangesTask('starred', 'is:starred', self.priority) self.tasks.append(t) sync.submitTask(t) @@ -314,18 +317,21 @@ class SetProjectUpdatedTask(Task): project = session.getProject(self.project_key) project.updated = self.updated -class SyncOwnChangesTask(Task): - query_name = 'owner' +class SyncQueriedChangesTask(Task): + def __init__(self, query_name, query, priority=NORMAL_PRIORITY): + super(SyncQueriedChangesTask, self).__init__(priority) + self.query_name = query_name + self.query = query def __repr__(self): - return '' + return '' % self.query_name def run(self, sync): app = sync.app now = datetime.datetime.utcnow() with app.db.getSession() as session: sync_query = session.getSyncQueryByName(self.query_name) - query = 'q=is:owner' + query = 'q=%s' % self.query if sync_query.updated: # Allow 4 seconds for request time, etc. query += ' -age:%ss' % (int(math.ceil((now-sync_query.updated).total_seconds())) + 4,)