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 "何らかの不具合により追加できません。"
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)