def _archiveEvents(scope, events): _MIN_UPDATED_HOURS = 24 _MIN_DDED_HOURS = 24 startTime = dateutil.getHoursAs14(_MIN_UPDATED_HOURS) addedStartTime = dateutil.getHoursAs14(_MIN_DDED_HOURS) historEvents = models.getHistoryEvents(scope) if not historEvents: historEvents = { 'items': [], } changed = False i = len(events['items']) - 1 while i >= 0: if events['items'][i]['updated'] <= startTime or events['items'][i]['added'] <= startTime: if events['items'][i]['exposed']: historEvents['items'].append(events['items'][i]) changed = True else: models.removeEvent(scope, events['items'][i]['id']) del events['items'][i] i-= 1 if changed: models.saveHistoryEvents(scope, historEvents)
def getUrlAdded(url, added): items = cmapi.getItemValue(_getKeyname(), [], modelname='RunStatus') found = _getItem(items, url) if found: found['count'] += 1 else: found = {} found['count'] = 1 found['url'] = url found['added'] = added items.append(found) found['updated'] = dateutil.getDateAs14(datetime.datetime.utcnow()) start14 = dateutil.getHoursAs14(24) items = [ item for item in items if item['updated'] > start14 ] cmapi.saveItem(_getKeyname(), items, modelname='RunStatus') return found['added']
def _saveNow(datasource, items, keyname): datasources = cmapi.getItemValue(keyname, [], modelname=LatestItem) days = 7 strStart = dateutil.getHoursAs14(days * 24) datasources = [child for child in datasources if child['source']['added'] >= strStart] data = { 'source': datasource, 'pages': items, } foundIndex = -1 for i in range(len(datasources)): item = datasources[i] if item['source'].get('slug') == datasource.get('slug'): foundIndex = i break if foundIndex >= 0: datasources[foundIndex] = data else: datasources.append(data) cmapi.saveItem(keyname, datasources, modelname=LatestItem)