From 24065171f71ca29db1fec522ec890ba0a219a84a Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Mon, 24 Apr 2023 22:19:15 +0200 Subject: [PATCH] am stupid --- bot/commands/journal.py | 42 ++++++++++++++++++++++++------------- bot/commands/list/models.py | 8 +++---- bot/models.py | 6 +++--- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/bot/commands/journal.py b/bot/commands/journal.py index 4adc566..6d755f5 100644 --- a/bot/commands/journal.py +++ b/bot/commands/journal.py @@ -14,10 +14,11 @@ class JournalHandler(BaseHandler): entry_points=[CommandHandler(entry_string, self.entry_point)], states={ DATE_CHOICE: [ - CallbackQueryHandler(self.date_choice), + CallbackQueryHandler(self.date_choice, pattern="today|yesterday"), + CallbackQueryHandler(self.date_custom, pattern="custom"), ], DATE_ENTRY: [ - MessageHandler(filters.TEXT, self.date_entry), + MessageHandler(filters.ALL, self.date_entry), ], CONTENT: [ MessageHandler(filters.ALL, self.content_save), @@ -49,22 +50,34 @@ class JournalHandler(BaseHandler): async def date_choice(self, update, context): query = update.callback_query await query.answer() - if query.data == "today" or query.data == "yesterday": - date = datetime.datetime.now().date() if query.data == "today" else datetime.datetime.now().date() - datetime.timedelta(days=1) - with self.models.db: - self.current_model, new = self.models.JournalEntry.get_or_create( - date = date - ) - if not new: - await query.edit_message_text(text="An entry already exists for this date") - return ConversationHandler.END + if query.data == "today": + date = datetime.datetime.now().date() + elif query.data == "yesterday": + date = datetime.datetime.now().date() - datetime.timedelta(days=1) + else: + raise ValueError("Invalid date choice") + + with self.models.db: + self.current_model, new = self.models.JournalEntry.get_or_create( + date = date + ) + if new: await query.edit_message_text( text="Please enter the content for the entry" ) - return CONTENT else: - await query.edit_message_text(text="Please enter the date in the format DDMMYYYY") - return DATE_ENTRY + await query.edit_message_text(text="An entry already exists for this date") + return ConversationHandler.END + + return CONTENT + + + async def date_custom(self, update, context): + query = update.callback_query + await query.answer() + await query.edit_message_text(text="Please enter the date in the format DDMMYYYY") + return DATE_ENTRY + async def date_entry(self, update, context): date = update.message.text @@ -73,7 +86,6 @@ class JournalHandler(BaseHandler): except ValueError: await update.message.reply_text("Please enter the date in the format DDMMYYYY") return DATE_ENTRY - self.logger.info(f"Date: {date}") with self.models.db: self.current_model, new = self.models.JournalEntry.get_or_create( diff --git a/bot/commands/list/models.py b/bot/commands/list/models.py index 3f23004..7336912 100644 --- a/bot/commands/list/models.py +++ b/bot/commands/list/models.py @@ -6,7 +6,7 @@ db = DatabaseProxy() class BaseModel(Model): class Meta: database = db - db_table = 'journal' + db_table = 'lists' class ListModel(BaseModel): name = CharField(unique=True) @@ -25,6 +25,6 @@ class ListModel(BaseModel): def set_db(db_path): - db.initialize(SqliteDatabase(db_path, pragmas={'journal_mode': 'wal'})) - db.connect() - db.create_tables([ListModel], safe=True) + db.initialize(SqliteDatabase(db_path)) + with db: + db.create_tables([ListModel], safe=True) diff --git a/bot/models.py b/bot/models.py index 7408f67..84b4eb6 100644 --- a/bot/models.py +++ b/bot/models.py @@ -54,6 +54,6 @@ class JournalEntry(BaseModel): def set_db(db_path): - db.initialize(SqliteDatabase(db_path, pragmas={'journal_mode': 'wal'})) - db.connect() - db.create_tables([JournalEntry], safe=True) + db.initialize(SqliteDatabase(db_path)) + with db: + db.create_tables([JournalEntry], safe=True)