Esempio n. 1
0
def afk(update, context):
    args = update.effective_message.text.split(None, 1)
    user = update.effective_user
    if not user:  # ignore channels
        return

    if user.id == 777000:
        return
    start_afk_time = time.time()
    if len(args) >= 2:
        reason = args[1]
    else:
        reason = "none"
    start_afk(update.effective_user.id, reason)
    REDIS.set(f'afk_time_{update.effective_user.id}', start_afk_time)
    fname = update.effective_user.first_name
    try:
        update.effective_message.reply_text("{} is now Away!".format(fname))
    except BadRequest:
        pass
Esempio n. 2
0
def __user_info__(user_id):
    is_afk = is_user_afk(user_id)
    text = ""
    if is_afk:
        since_afk = get_readable_time(
            (time.time() - float(REDIS.get(f'afk_time_{user_id}'))))
        text = "<i>This user is currently afk (away from keyboard).</i>"
        text += f"\n<i>Since: {since_afk}</i>"

    else:
        text = "<i>This user is currently isn't afk (away from keyboard).</i>"
    return text
Esempio n. 3
0
def no_longer_afk(update, context):
    user = update.effective_user
    message = update.effective_message
    if not user:  # ignore channels
        return

    if not is_user_afk(user.id):  #Check if user is afk or not
        return
    end_afk_time = get_readable_time(
        (time.time() - float(REDIS.get(f'afk_time_{user.id}'))))
    REDIS.delete(f'afk_time_{user.id}')
    res = end_afk(user.id)
    if res:
        if message.new_chat_members:  #dont say msg
            return
        firstname = update.effective_user.first_name
        try:
            message.reply_text(
                "*{}* is no longer AFK!\nTime you were AFK for: `{}`".format(
                    firstname, end_afk_time),
                parse_mode=ParseMode.MARKDOWN)
        except Exception:
            return
Esempio n. 4
0
def check_afk(update, context, user_id, fst_name, userc_id):
    if is_user_afk(user_id):
        reason = afk_reason(user_id)
        since_afk = get_readable_time(
            (time.time() - float(REDIS.get(f'afk_time_{user_id}'))))
        if reason == "none":
            if int(userc_id) == int(user_id):
                return
            res = "*{}* is AFK!\nSince: `{}`".format(fst_name, since_afk)
            m = update.effective_message.reply_text(
                res, parse_mode=ParseMode.MARKDOWN)
        else:
            if int(userc_id) == int(user_id):
                return
            res = "*{}* is AFK!\nSays it's because of:\n`{}`\nSince: `{}`".format(
                fst_name, reason, since_afk)
            m = update.effective_message.reply_text(
                res, parse_mode=ParseMode.MARKDOWN)
    time.sleep(3)
    m.delete()
Esempio n. 5
0
def is_user_afk(userid):
    rget = REDIS.get(f'is_afk_{userid}')
    if rget:
        return True
    else:
        return False
Esempio n. 6
0
def end_afk(userid):
    REDIS.delete(f'is_afk_{userid}')
    return True
Esempio n. 7
0
def afk_reason(userid):
    return strb(REDIS.get(f'is_afk_{userid}'))
Esempio n. 8
0
def start_afk(userid, reason):
    REDIS.set(f'is_afk_{userid}', reason)