def reason(self, convId, updates, data): entities = data['entities'] meta = data['items'][convId]['meta'] ownerId = meta['owner'] myId = data['myId'] yesPeople = data['yesPeople'] uname = lambda x: utils.userName(x, entities[x], "conv-user-cause") if convId in yesPeople: users = yesPeople[convId] else: return ('', []) if ownerId in users: users.remove(ownerId) users = users[0:3] vals = dict([('u'+str(i), uname(x)) for i,x in enumerate(users)]) vals.update({'owner':uname(ownerId), 'type':utils.itemLink(convId, meta['type'])}) if not users: return ('', []) template = self.templates[len(users)-1][1] if ownerId != myId\ else self.templates[len(users)-1][0] return (template % vals, users)
def reason(self, convId, updates, data): myId = data['myId'] update = None for x in reversed(updates): if x[1] != myId and len(myId) > 4 and x[4]: update = x break if not update: return ('', []) tag = data.get('tags', {}).get(update[4], {}).get('title', '') if not tag: return ('', []) entities = data['entities'] meta = data['items'][convId]['meta'] ownerId = meta['owner'] uname = lambda x: utils.userName(x, entities[x], "conv-user-cause") vals = {'u0': uname(update[1]), 'owner':uname(ownerId), 'type':utils.itemLink(convId, meta['type']), 'tag': tag} template = self.templates[1] if ownerId != myId\ else self.templates[0] return (template % vals, [update[1]])
def aggregation(self, parts, values, data=None, fetched=None): convId, convType, convOwnerId, notifyType = parts entities = data['entities'] userCount = len(values) templates = self._aggregation_EI if notifyType == "EI"\ else self._aggregation_EA templatePair = templates[3 if userCount > 4 else userCount - 1] vals = dict([('user'+str(idx), utils.userName(uid, entities[uid]))\ for idx, uid in enumerate(values[0:2])]) vals['count'] = userCount - 2 vals['itemType'] = utils.itemLink(convId, convType) if notifyType == "EI": if convOwnerId == values[0]: notifyStr = templatePair[0] % vals else: vals['owner'] = utils.userName(convOwnerId, entities[convOwnerId]) notifyStr = templatePair[1] % vals else: if convOwnerId == data['myId']: notifyStr = templatePair[0] % vals else: vals['owner'] = utils.userName(convOwnerId, entities[convOwnerId]) notifyStr = templatePair[1] % vals return notifyStr
def reason(self, convId, updates, data): entities = data['entities'] meta = data['items'][convId]['meta'] ownerId = meta['owner'] myId = data['myId'] uname = lambda x: utils.userName(x, entities[x], "conv-user-cause") users = utils.uniqify([x[1] for x in reversed(updates) if x[1] != myId]) vals = dict([('u'+str(i), uname(x)) for i,x in enumerate(users)]) vals.update({'owner':uname(ownerId), 'type':utils.itemLink(convId, meta['type'])}) template = self.templates[len(users)-1][1] if ownerId != myId\ else self.templates[len(users)-1][0] return (template % vals, users)