Exemplo n.º 1
0
def todo_add_sub(message, data: dict, announce=False) -> str:
    """データ登録の際はこのtodo_add_subにmessageとデータのディクショナリを与えてください。

    戻り値は、登録内容をお知らせする文字列となっています。
    """
    # ユーザー情報取得
    if announce:
        data["user"] = "******"
    else:
        info = tools.getmsginfo(message)
        data["user"] = info["user_id"]
    database = DB(os.environ['TODO_DB'])
    has_limit = True
    now = datetime.datetime.now()
    if "limit_at" in data.keys() or not "status" in data.keys():
        if not "limit_at" in data.keys() and not "status" in data.keys():
            data["limit_at"] = "2999/12/31 23:59"
            has_limit = False
        limit_at_fin = tools.datetrans(data["limit_at"], now)
        msg = "以下の内容で"
        if limit_at_fin != None or data["limit_at"] == None:
            if data["limit_at"] != None:
                limit_at_format = datetime.datetime.strptime(
                    limit_at_fin, '%Y/%m/%d %H:%M')
                if now > limit_at_format:
                    data["status"] = '期限切れ'
                noticetime = tools.noticetimeSet(limit_at_format, now)
                data["noticetime"] = noticetime
                data["limit_at"] = limit_at_fin
            if has_limit:
                msg += "、期限を正しく設定して"
            else:
                msg += "、無期限の課題を"
        else:
            return "limit_atの形が不正です。以下の入力例を参考にしてください。\n202008161918: 2020年8月16日19時18分となります。\n0816: 現在以降で最も早い8月16日23時59分となります。"
        data = database.add_dict(data)
        msg += "追加しました。"
        for item in data.items():
            if item[0] == "user":
                continue
            if not (item[0] == "noticetime" or item[0] == "deleted"):
                msg += f"\n{item[0]}: {item[1]}"
        return msg
    if "status" in data.keys():
        data["noticetime"] = 3
        data = database.add_dict(data)
        msg = "以下の内容で追加しました。\n"
        for item in data.items():
            if item[0] == "user":
                continue
            if not item[0] == "noticetime" or item[0] == "deleted":
                msg += f"\n{item[0]}: {item[1]}"
        return msg
    return "何らかの不具合により追加できません。"
Exemplo n.º 2
0
def todo_add(message, title, limit_at):
    # ユーザー情報取得
    info = tools.getmsginfo(message)
    data = {"title": title, "limit_at": limit_at, "user": info["user_id"]}
    database = DB(os.environ['TODO_DB'])
    now = datetime.datetime.now()
    limit_at_fin = tools.datetrans(limit_at, now)
    msg = "以下の内容で"
    if limit_at_fin != None:
        limit_at_format = datetime.datetime.strptime(limit_at_fin,
                                                     '%Y/%m/%d %H:%M')
        if now > limit_at_format:
            data["status"] = '期限切れ'
        noticetime = tools.noticetimeSet(limit_at_format, now)
        data["noticetime"] = noticetime
        data["limit_at"] = limit_at_fin
        msg += "、期限を正しく設定して"
    data = database.add_dict(data)
    msg += "追加しました。"
    for item in data.items():
        if item[0] == "user":
            continue
        msg += f"\n{item[0]}: {item[1]}"
    message.reply(msg)