コード例 #1
0
ファイル: sign_out.py プロジェクト: JunDamin/telegram_bot
def start_signing_out(update, context):

    # set variables and context
    user = update.message.from_user
    dt = update.message.date.astimezone(pytz.timezone("Africa/Douala"))
    log_id, record, is_exist = get_log_id_and_record(update, context,
                                                     "signing out")
    context_dict = {"log_id": log_id, "status": "SIGN_OUT"}
    set_context(update, context, context_dict)

    SIGN_OUT_GREETING = f"""Good evening, {user.first_name}.\nYou have signed out today with Log No.{log_id}"""
    dt = update.message.date.astimezone(pytz.timezone("Africa/Douala"))
    SIGN_TIME = f"""signing time: {dt.strftime("%m-%d *__%H:%M__*")}"""
    ASK_INFO = "Would you like to share your today's content of work?"
    CHECK_DM = """"Please check my DM(Direct Message) to you"""

    # set dictionary data
    rewrite_header_message = "You have already signed out as below. "
    rewrite_footer_message = (
        "\nDo you want to delete it and sign out again? or SKIP it?")

    data_dict = {
        "new": {
            "group_message":
            f"{SIGN_OUT_GREETING}\n{CHECK_DM}\n{SIGN_TIME}",
            "private_message":
            f"{SIGN_OUT_GREETING}\n{ASK_INFO}\n{SIGN_TIME}",
            "keyboard": [[
                "I worked at Office",
                "I would like to report because I worked at home",
            ]],
            "return":
            ANSWER_WORK_TYPE,
        },
        "rewrite": {
            "group_message":
            make_text_from_logs(
                [
                    record,
                ],
                rewrite_header_message,
            ),
            "private_message":
            make_text_from_logs(
                (record, ),
                rewrite_header_message,
                rewrite_footer_message,
            ),
            "keyboard": [
                ["Delete and Sign Out Again", "SKIP"],
            ],
            "return":
            None,
        },
    }
    return send_initiating_message_by_branch(update, context, is_exist,
                                             data_dict)
コード例 #2
0
def get_back_to_work(update, context):

    # set variables and context
    user = update.message.from_user
    dt = update.message.date.astimezone(pytz.timezone("Africa/Douala"))
    log_id, record, is_exist = get_log_id_and_record(update, context, "getting back")
    context_dict = {"log_id": log_id, "status": "GET_BACK"}
    set_context(update, context, context_dict)

    GET_BACK_GREETING = f"""Good afternoon, {user.first_name}.\n
Welcome back. You have been logged with Log No.{log_id}"""
    dt = update.message.date.astimezone(pytz.timezone("Africa/Douala"))
    SIGN_TIME = f"""signing time: {dt.strftime("%m-%d *__%H:%M__*")}"""
    ASK_INFO = """Did you have lunch with KOICA collagues?"""
    CHECK_DM = """"Please check my DM(Direct Message) to you"""

    # set dictionary data
    rewrite_header_message = "You have already gotten back as below. "
    rewrite_footer_message = "\nDo you want to delete it and get back again? or SKIP it?"

    data_dict = {
        "new": {
            "group_message": f"{GET_BACK_GREETING}\n{CHECK_DM}\n{SIGN_TIME}",
            "private_message": f"{GET_BACK_GREETING}\n{ASK_INFO}\n{SIGN_TIME}",
            "keyboard": [
                ["Without any member of KOICA", "With KOICA Colleagues"],
            ],
            "return": ANSWER_LUNCH_TYPE
        },
        "rewrite": {
            "group_message": make_text_from_logs(
                [
                    record,
                ],
                rewrite_header_message,
            ),
            "private_message": make_text_from_logs(
                (record,),
                rewrite_header_message,
                rewrite_footer_message,
            ),
            "keyboard": [
                ["Delete and Get Back to Work Again", "SKIP"],
            ],
            "return": None,
        },
    }
    return send_initiating_message_by_branch(update, context, is_exist, data_dict)
コード例 #3
0
def check_log(update, context):
    user = update.message.from_user
    member = Member.objects.get_or_none(id=user.id)
    logs = Log.objects.filter(member_fk=member).order_by("-created")[:5]

    header_message = "Here is your recent log info.\n"
    text_message = make_text_from_logs(logs, header_message)

    reply_markdown(update, context, text_message)
コード例 #4
0
ファイル: sign_in.py プロジェクト: JunDamin/telegram_bot
def start_signing_in(update, context):

    # set variables and context
    user = update.message.from_user
    dt = update.message.date.astimezone(pytz.timezone("Africa/Douala"))
    log_id, record, is_exist = get_log_id_and_record(update, context, "signing in")
    context_dict = {"log_id": log_id, "status": "SIGN_IN"}
    set_context(update, context, context_dict)

    # set dictionary data
    rewrite_header_message = "You have already signed in as below. "
    rewrite_footer_message = "\nDo you want to *_delete it_* and sign in again? or SKIP it?"

    data_dict = {
        "new": {
            "group_message": make_text_signing_in_greeting(log_id, user.first_name, dt),
            "private_message": make_text_signing_in_and_ask_info(
                log_id, user.first_name, dt
            ),
            "keyboard": [
                ["Office", "Home"],
            ],
            "return": ANSWER_WORKPLACE,
        },
        "rewrite": {
            "group_message": make_text_from_logs(
                [
                    record,
                ],
                rewrite_header_message,
            ),
            "private_message": make_text_from_logs(
                (record,),
                rewrite_header_message,
                rewrite_footer_message,
            ),
            "keyboard": [
                ["Delete and Sign In Again", "SKIP"],
            ],
            "return": None,
        },
    }
    return send_initiating_message_by_branch(update, context, is_exist, data_dict)
コード例 #5
0
def ask_log_id_to_edit(update, context):
    """ """

    user = update.message.from_user
    rows = get_logs_by_user_id(user.id, 3)
    text_message = "Which log do you want to edit?\nPlease send me the log number."
    if rows:
        text_message = make_text_from_logs(rows, text_message)
    context.user_data["status"] = "EDIT_LOG_ID"

    return {"message": text_message, "keyboard": [[]]}
コード例 #6
0
def ask_confirmation_of_edit(update, context):
    log_id = update.message.text
    try:
        log = get_log_by_id(log_id)
        print(log)
        logs = (log, )
        if not log:
            raise ValueError
        header_message = f"Do you really want to do edit log No.{log_id}?\n"
        text_message = make_text_from_logs(logs, header_message)
        chat_id = log.member_fk.id
        set_context(update, context, {"log_id": log_id, "chat_id": chat_id})
        return {"message": text_message}
    except ValueError:
        text_message = "Log ID is not exist. Please text me the log ID"
        return {"message": text_message, "path": "redo", "keyboard": [[]]}
コード例 #7
0
def ask_confirmation_of_removal(update, context):
    log_id = update.message.text
    try:
        int(log_id)
        context.user_data["remove_log_id"] = log_id
        row = get_log_by_id(log_id)
        if not row:
            raise ValueError
        rows = (row,)
        header_message = f"Do you really want to do remove log No.{log_id}?\n"
        text_message = make_text_from_logs(rows, header_message)
        return {"message": text_message}

    except ValueError:
        text_message = "Please. Send me numbers only."
        return {"message": text_message, "path": "redo"}
コード例 #8
0
def ask_confirmation_of_removal(update, context):
    log_id = context.user_data.get("log_id")
    if log_id:
        conn = create_connection()
        row = select_record(conn, "logbook", LOG_COLUMN, {"id": log_id})
        conn.close()

        header_message = f"Do you really want to do remove log No.{log_id}?\n"
        text_message = make_text_from_logs(row, header_message)
        keyboard = [["REMOVE GET BACK LOG", "NO"]]

        reply_markdown(update, context, text_message, keyboard)
        return ANSWER_LOG_DELETE
    else:
        text_message = "An Error has been made. Please try again."
        reply_markdown(update, context, text_message)
        return ConversationHandler.END
コード例 #9
0
def check_log(update, context):
    user = update.message.from_user

    conn = create_connection()
    rows = select_record(
        conn,
        "logbook",
        LOG_COLUMN,
        {"chat_id": user.id},
        "ORDER BY timestamp DESC LIMIT 6",
    )
    rows = rows[-1::-1]
    conn.close()

    header_message = "Here is your recent log info.\n"
    text_message = make_text_from_logs(rows, header_message)

    reply_markdown(update, context, text_message)
コード例 #10
0
def ask_confirmation_of_removal(update, context):
    log_id = update.message.text
    try:
        int(log_id)
        context.user_data["remove_log_id"] = log_id
        keyboard = [["YES", "NO"]]

        conn = create_connection()
        row = select_record(conn, "logbook", LOG_COLUMN, {"id": log_id})
        conn.close()

        header_message = f"Do you really want to do remove log No.{log_id}?\n"
        text_message = make_text_from_logs(row, header_message)
        reply_markdown(update, context, text_message, keyboard)

        return HANDLE_LOG_DELETE
    except ValueError:
        text_message = "Please. Send me numbers only."
        reply_markdown(update, context, text_message)
        return HANDLE_DELETE_LOG_ID
コード例 #11
0
ファイル: edit_log.py プロジェクト: JunDamin/telegram_bot
def ask_confirmation_of_edit(update, context):
    log_id = update.message.text
    try:
        int(log_id)
        keyboard = [["YES", "NO"]]

        conn = create_connection()
        rows = select_record(conn, "logbook", LOG_COLUMN, {"id": log_id})
        conn.close()

        header_message = f"Do you really want to do edit log No.{log_id}?\n"
        text_message = make_text_from_logs(rows, header_message)
        reply_markdown(update, context, text_message, keyboard)

        chat_id = rows[0][1]

        set_context(update, context, {"log_id": log_id, "chat_id": chat_id})

        return ANSWER_CONFIRMATION
    except ValueError:
        text_message = "Please. Send me numbers only."
        reply_markdown(update, context, text_message)
        return ANSWER_LOG_ID
コード例 #12
0
ファイル: edit_log.py プロジェクト: JunDamin/telegram_bot
def ask_log_id_to_edit(update, context):
    """ """

    user = update.message.from_user

    conn = create_connection()
    rows = select_record(
        conn,
        "logbook",
        LOG_COLUMN,
        {"chat_id": user.id},
        "ORDER BY timestamp DESC LIMIT 3",
    )
    rows = rows[-1::-1]
    conn.close()

    text_message = "Which log do you want to edit?\nPlease send me the log number."
    text_message = make_text_from_logs(rows, text_message)

    reply_markdown(update, context, text_message)

    context.user_data["status"] = "EDIT_LOG_ID"

    return ANSWER_LOG_ID