Exemple #1
0
def all(update, context):

    # Update Bakchod DB
    bakchod = dao.get_bakchod_by_id(update.message.from_user.id)

    if bakchod is None:
        bakchod = Bakchod.fromUpdate(update)
        logger.info("Looks like we have a new Bakchod! - {}", bakchod.__dict__)

    bakchod = update_bakchod(bakchod, update)

    # Update Group DB
    group = dao.get_group_by_id(update.message.chat.id)

    if group is None:
        group = Group.fromUpdate(update)
        logger.info("Looks like we have a new Group! - {}", group.__dict__)

    update_group(group, bakchod, update)

    # Log this
    logger.info(
        "[default.all] b.username='******' b.rokda={} g.title='{}'",
        util.extract_pretty_name_from_bakchod(bakchod),
        bakchod.rokda,
        group.title,
    )

    handle_bakchod_modifiers(update, context, bakchod)

    handle_dice_rolls(update, context)

    handle_message_matching(update, context)
Exemple #2
0
def status_update(update, context):

    group = dao.get_group_by_id(update.message.chat.id)

    if group is None:
        group = Group.fromUpdate(update)

    # Handle new_chat_title
    new_chat_title = update.message.new_chat_title

    if new_chat_title is not None:
        group.title = new_chat_title
        logger.info("[status_update] new_chat_title g.title={}", group.title)
        dao.insert_group(group)

    # Handle new_chat_member
    new_chat_members = update.message.new_chat_members

    if new_chat_members is not None:
        for new_member in new_chat_members:
            bakchod = Bakchod(new_member.id, new_member.username,
                              new_member.first_name)
            dao.insert_bakchod(bakchod)

            if bakchod.id not in group.members:
                group.members.append(bakchod.id)
                dao.insert_group(group)

                logger.info(
                    "[status_update] new_chat_member g.title={} b.username={}",
                    group.title,
                    bakchod.username,
                )

    # Handle left_chat_member
    left_chat_member = update.message.left_chat_member

    if left_chat_member is not None:
        group.members.remove(left_chat_member.id)
        dao.insert_group(group)

        logger.info(
            "[status_update] left_chat_member g.title={} b.username={}",
            group.title,
            left_chat_member.username,
        )