Esempio n. 1
0
    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)
Esempio n. 2
0
    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]])
Esempio n. 3
0
    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
Esempio n. 4
0
    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)