From 16d281b6340d2f3dd7faeb9f0aa1f09e89cabb32 Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Wed, 29 Nov 2017 16:46:45 +0100 Subject: [PATCH] refact: moved redis keyname in the helper constructor. Permit to have cleaner code and ease the DB management. --- trendings_helper.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/trendings_helper.py b/trendings_helper.py index cd04010..19c5dd6 100644 --- a/trendings_helper.py +++ b/trendings_helper.py @@ -11,6 +11,14 @@ class Trendings_helper: self.serv_redis_db = serv_redis_db self.cfg = cfg + # REDIS keys + self.keyEvent = "TRENDINGS_EVENTS" + self.keyCateg = "TRENDINGS_CATEGS" + self.keyTag = "TRENDINGS_TAGS" + self.keyDisc = "TRENDINGS_DISC" + self.keySigh = "TRENDINGS_SIGHT_sightings" + self.keyFalse = "TRENDINGS_SIGHT_false_positive" + ''' SETTER ''' def addGenericTrending(self, trendingType, data, timestamp): @@ -24,13 +32,13 @@ class Trendings_helper: self.serv_redis_db.zincrby(keyname, to_save, 1) def addTrendingEvent(self, eventName, timestamp): - self.addGenericTrending('TRENDINGS_EVENTS', eventName, timestamp) + self.addGenericTrending(self.keyEvent, eventName, timestamp) def addTrendingCateg(self, categName, timestamp): - self.addGenericTrending('TRENDINGS_CATEGS', categName, timestamp) + self.addGenericTrending(self.keyCateg, categName, timestamp) def addTrendingDisc(self, eventName, timestamp): - self.addGenericTrending('TRENDINGS_DISC', eventName, timestamp) + self.addGenericTrending(self.keyDisc, eventName, timestamp) def addTrendingTags(self, tags, timestamp): for tag in tags: @@ -38,18 +46,18 @@ class Trendings_helper: ordDic['id'] = tag['id'] ordDic['name'] = tag['name'] ordDic['colour'] = tag['colour'] - self.addGenericTrending('TRENDINGS_TAGS', ordDic, timestamp) + self.addGenericTrending(self.keyTag, ordDic, timestamp) def addSightings(self, timestamp): timestampDate = datetime.datetime.fromtimestamp(float(timestamp)) timestampDate_str = util.getDateStrFormat(timestampDate) - keyname = "{}:{}".format("TRENDINGS_SIGHT_sightings", timestampDate_str) + keyname = "{}:{}".format(self.keySigh, timestampDate_str) self.serv_redis_db.incrby(keyname, 1) def addFalsePositive(self, timestamp): timestampDate = datetime.datetime.fromtimestamp(float(timestamp)) timestampDate_str = util.getDateStrFormat(timestampDate) - keyname = "{}:{}".format("TRENDINGS_SIGHT_false_positive", timestampDate_str) + keyname = "{}:{}".format(self.keyFalse, timestampDate_str) self.serv_redis_db.incrby(keyname, 1) ''' GETTER ''' @@ -77,20 +85,20 @@ class Trendings_helper: def getTrendingEvents(self, dateS, dateE, specificLabel=None): if specificLabel is None: - return self.getGenericTrending('TRENDINGS_EVENTS', dateS, dateE) + return self.getGenericTrending(self.keyEvent, dateS, dateE) else: specificLabel = specificLabel.replace('\\n', '\n'); # reset correctly label with their \n (CR) instead of their char value - return self.getSpecificTrending('TRENDINGS_EVENTS', dateS, dateE, specificLabel) + return self.getSpecificTrending(self.keyEvent, dateS, dateE, specificLabel) def getTrendingCategs(self, dateS, dateE): - return self.getGenericTrending('TRENDINGS_CATEGS', dateS, dateE) + return self.getGenericTrending(self.keyCateg, dateS, dateE) # FIXME: Construct this when getting data def getTrendingTags(self, dateS, dateE, topNum=12): to_ret = [] prev_days = (dateE - dateS).days for curDate in util.getXPrevDaysSpan(dateE, prev_days): - keyname = "{}:{}".format('TRENDINGS_TAGS', util.getDateStrFormat(curDate)) + keyname = "{}:{}".format(self.keyTag, util.getDateStrFormat(curDate)) data = self.serv_redis_db.zrange(keyname, 0, topNum-1, desc=True, withscores=True) data = [ [record[0].decode('utf8'), record[1]] for record in data ] data = data if data is not None else [] @@ -105,21 +113,21 @@ class Trendings_helper: to_ret = [] prev_days = (dateE - dateS).days for curDate in util.getXPrevDaysSpan(dateE, prev_days): - keyname = "{}:{}".format("TRENDINGS_SIGHT_sightings", util.getDateStrFormat(curDate)) + keyname = "{}:{}".format(self.keySigh, util.getDateStrFormat(curDate)) sight = self.serv_redis_db.get(keyname) sight = 0 if sight is None else int(sight.decode('utf8')) - keyname = "{}:{}".format("TRENDINGS_SIGHT_false_positive", util.getDateStrFormat(curDate)) + keyname = "{}:{}".format(self.keyFalse, util.getDateStrFormat(curDate)) fp = self.serv_redis_db.get(keyname) fp = 0 if fp is None else int(fp.decode('utf8')) to_ret.append([util.getTimestamp(curDate), { 'sightings': sight, 'false_positive': fp}]) return to_ret def getTrendingDisc(self, dateS, dateE): - return self.getGenericTrending('TRENDINGS_DISC', dateS, dateE) + return self.getGenericTrending(self.keyDisc, dateS, dateE) def getTypeaheadData(self, dateS, dateE): to_ret = {} - for trendingType in ['TRENDINGS_EVENTS', 'TRENDINGS_CATEGS']: + for trendingType in [self.keyEvent, self.keyCateg]: allSet = set() prev_days = (dateE - dateS).days for curDate in util.getXPrevDaysSpan(dateE, prev_days): @@ -135,5 +143,5 @@ class Trendings_helper: for tag in tagList: tag = tag[0] tagSet.add(tag['name']) - to_ret['TRENDINGS_TAGS'] = list(tagSet) + to_ret[self.keyTag] = list(tagSet) return to_ret