Mercurial > bzapi
changeset 8:9ca705d18849
made update more accurate
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Wed, 23 Dec 2009 15:05:16 -0800 |
parents | b788a347af03 |
children | bac306ebd2da |
files | bzapi.py |
diffstat | 1 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/bzapi.py Wed Dec 23 14:45:39 2009 -0800 +++ b/bzapi.py Wed Dec 23 15:05:16 2009 -0800 @@ -43,22 +43,24 @@ self._update_last_update() def _update_last_update(self): - bugs = self.bugs.find().sort("last_change_time", - pymongo.DESCENDING).limit(1) + bugs = self.bugs.find().sort("retrieved_time", + pymongo.ASCENDING).limit(1) if bugs.count() == 0: self.last_update = None else: - self.last_update = bugs[0]['last_change_time'] + self.last_update = bugs[0]['retrieved_time'] def _get_full_bugs(self, bugs): params = {'id': ','.join(bugs), 'id_mode': 'include', 'comments': '1', 'history': '1'} - bugs = self.api.get('/bug', **params)['data']['bugs'] + response = self.api.get('/bug', **params) + bugs = response['data']['bugs'] for bug in bugs: logging.debug('updating bug %s' % bug['id']) normalize_bug(bug) + bug['retrieved_time'] = response['date'] self.bugs.save(bug) def update(self): @@ -66,7 +68,8 @@ params.update(self.options) if self.last_update: params['changed_after'] = self.last_update - bugs = self.api.get('/bug', **params)['data']['bugs'] + response = self.api.get('/bug', **params) + bugs = response['data']['bugs'] valid_bugs = [] for bug in bugs: normalize_bug(bug) @@ -74,6 +77,9 @@ if ((old_bug is None) or (bug['last_change_time'] > old_bug['last_change_time'])): valid_bugs.append(bug['id']) + else: + old_bug['retrieved_time'] = response['date'] + self.bugs.save(old_bug) if valid_bugs: self._get_full_bugs(valid_bugs) self._update_last_update()