Beispiel #1
0
def voting(group_id, voter, nick, msg):
    """
    voting
    """
    tip = ""
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        vote_values = _VOTE_FLAG_RE.findall(msg)
        task = wechatdb.get_vote_task({"id": vote_id})
        item_number = len(task["items"])
        record_id = wechatdb.next_id("vote_record")
        vote_record = {
            "id": record_id,
            "vote_id": vote_id,
            "vote": vote_values,
            "group_id": group_id,
            "msg": msg,
            "voter": voter,
            "nick": nick,
            "created": timestamp_now(),
        }
        if item_number == len(vote_values):
            vote_record["valid"] = True
            wechatdb.update_vote_task({"id": vote_id}, {"$set": {"last_voter": nick}})
        else:
            vote_record["valid"] = False
        wechatdb.update_vote_record({"vote_id": vote_id, "voter": voter}, vote_record, upsert=True)
    return {"tip": tip}
Beispiel #2
0
def voting(group_id, voter, nick, msg):
    '''
    voting
    '''
    tip = ''
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        vote_values = _VOTE_FLAG_RE.findall(msg)
        task = wechatdb.get_vote_task({'id': vote_id})
        item_number = len(task['items'])
        record_id = wechatdb.next_id('vote_record')
        vote_record = {
            'id': record_id,
            'vote_id': vote_id,
            'vote': vote_values,
            'group_id': group_id,
            'msg': msg,
            'voter': voter,
            'nick': nick,
            'created': timestamp_now(),
        }
        if item_number == len(vote_values):
            vote_record['valid'] = True
        else:
            vote_record['valid'] = False
        wechatdb.update_vote_record({'vote_id': vote_id, 'voter': voter}, vote_record, upsert=True)
        wechatdb.update_vote_task({'id': vote_id}, {'$set': {'last_voter': nick}})
    return {'tip': tip}
Beispiel #3
0
def vote_start(group_id, starter, nick, msg, voted):
    '''
    vote start
    '''
    tip = u'------\n我是开始投票分割线\n顶[强]\n踩[弱]\n------'
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        tip = u'本群有一个未结束的投票 将被覆盖 现在开始新的投票'
    if START_FLAG in msg:
        items_str = msg.split(START_FLAG)[1]
        if END_FLAG in items_str:
            items_str = items_str.split(END_FLAG)[0]
            items = items_str.split(SPLIT_FLAG)
            vote_id = wechatdb.next_id('vote')
            vote_group = {
                'group_id': group_id,
                'vote_id': vote_id,
            }
            wechatdb.update_vote_group({'group_id': group_id},
                                       vote_group,
                                       upsert=True)
            vote_task = {
                'id': vote_id,
                'weight': 0.5,
                'not_vote': True,
                'group_id': group_id,
                'start_msg': msg,
                'starter': starter,
                'nick': nick,
                'voted': voted,
                'created': timestamp_now(),
                'status': Status.START,
                'items': items,
            }
            group_config = wechatdb.get_group_config({'group_id': group_id})
            if group_config:
                if 'weight' in group_config:
                    vote_task['weight'] = group_config['weight']
                if 'not_vote' in group_config:
                    vote_task['not_vote'] = group_config['not_vote']
            wechatdb.update_vote_task({'id': vote_id}, vote_task, upsert=True)
        else:
            tip = HELP
    else:
        tip = HELP
    return {'tip': tip}
Beispiel #4
0
def vote_start(group_id, starter, nick, msg, voted):
    '''
    vote start
    '''
    tip = u'------\n我是开始投票分割线\n顶[强]\n踩[弱]\n------'
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        tip = u'本群有一个未结束的投票 将被覆盖 现在开始新的投票'
    if START_FLAG in msg:
        items_str = msg.split(START_FLAG)[1]
        if END_FLAG in items_str:
            items_str = items_str.split(END_FLAG)[0]
            items = items_str.split(SPLIT_FLAG)
            vote_id = wechatdb.next_id('vote')
            vote_group = {
                'group_id': group_id,
                'vote_id': vote_id,
            }
            wechatdb.update_vote_group({'group_id': group_id}, vote_group, upsert=True)
            vote_task = {
                    'id': vote_id,
                    'weight': 0.5,
                    'not_vote': True,
                    'group_id': group_id,
                    'start_msg': msg,
                    'starter': starter,
                    'nick': nick,
                    'voted': voted,
                    'created': timestamp_now(),
                    'status': Status.START,
                    'items': items,
                }
            group_config = wechatdb.get_group_config({'group_id': group_id})
            if group_config:
                if 'weight' in group_config:
                    vote_task['weight'] = group_config['weight']
                if 'not_vote' in group_config:
                    vote_task['not_vote'] = group_config['not_vote']
            wechatdb.update_vote_task({'id': vote_id}, vote_task, upsert=True)
        else:
            tip = HELP
    else:
        tip = HELP
    return {'tip': tip}
Beispiel #5
0
def vote_start(group_id, starter, nick, msg, voted):
    """
    vote start
    """
    tip = u"------\n我是开始投票分割线\n顶[强]\n踩[弱]\n------"
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        tip = u"本群有一个未结束的投票 将被覆盖 现在开始新的投票"
    if START_FLAG in msg:
        items_str = msg.split(START_FLAG)[1]
        if END_FLAG in items_str:
            items_str = items_str.split(END_FLAG)[0]
            items = items_str.split(SPLIT_FLAG)
            vote_id = wechatdb.next_id("vote")
            vote_group = {"group_id": group_id, "vote_id": vote_id}
            wechatdb.update_vote_group({"group_id": group_id}, vote_group, upsert=True)
            vote_task = {
                "id": vote_id,
                "weight": 0.5,
                "not_vote": True,
                "group_id": group_id,
                "start_msg": msg,
                "starter": starter,
                "nick": nick,
                "voted": voted,
                "created": timestamp_now(),
                "status": Status.START,
                "items": items,
            }
            group_config = wechatdb.get_group_config({"group_id": group_id})
            if group_config:
                if "weight" in group_config:
                    vote_task["weight"] = group_config["weight"]
                if "not_vote" in group_config:
                    vote_task["not_vote"] = group_config["not_vote"]
            wechatdb.update_vote_task({"id": vote_id}, vote_task, upsert=True)
        else:
            tip = HELP
    else:
        tip = HELP
    return {"tip": tip}
Beispiel #6
0
def voting(group_id, voter, nick, msg):
    '''
    voting
    '''
    tip = ''
    vote_id = wechatdb.get_vote_by_group(group_id)
    if vote_id:
        vote_values = _VOTE_FLAG_RE.findall(msg)
        task = wechatdb.get_vote_task({'id': vote_id})
        item_number = len(task['items'])
        record_id = wechatdb.next_id('vote_record')
        vote_record = {
            'id': record_id,
            'vote_id': vote_id,
            'vote': vote_values,
            'group_id': group_id,
            'msg': msg,
            'voter': voter,
            'nick': nick,
            'created': timestamp_now(),
        }
        if item_number == len(vote_values):
            vote_record['valid'] = True
            wechatdb.update_vote_task({'id': vote_id},
                                      {'$set': {
                                          'last_voter': nick
                                      }})
        else:
            vote_record['valid'] = False
        wechatdb.update_vote_record({
            'vote_id': vote_id,
            'voter': voter
        },
                                    vote_record,
                                    upsert=True)
    return {'tip': tip}