parent
9d700a8cfd
commit
24065171f7
bot
@ -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(
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user