From 09fee716f76ad7b43be06169db2ba0c9a721429b Mon Sep 17 00:00:00 2001 From: jeffser Date: Wed, 10 Jul 2024 21:10:25 -0600 Subject: [PATCH] Better format for timestamps --- src/window.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/window.py b/src/window.py index 215377c..a001b5e 100644 --- a/src/window.py +++ b/src/window.py @@ -205,7 +205,7 @@ class AlpacaWindow(Adw.ApplicationWindow): #{"path": file_path, "type": file_type, "content": content} - formated_datetime = datetime.now().strftime("%Y/%m/%d %H:%M") + formated_datetime = datetime.now().strftime("%Y/%m/%d %H:%M:%S") self.chats["chats"][self.chats["selected_chat"]]["messages"][id] = { "role": "user", @@ -887,6 +887,13 @@ Generate a title following these rules: clipboard.set(text) self.show_toast(_("Code copied to the clipboard"), self.main_overlay) + def generate_datetime_format(self, dt:datetime) -> str: + date = GLib.DateTime.new(GLib.DateTime.new_now_local().get_timezone(), dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second) + current_date = GLib.DateTime.new_now_local() + if date.format("%Y/%m/%d") == current_date.format("%Y/%m/%d"): return date.format("%H:%M %p") + elif date.format("%Y") == current_date.format("%Y"): return date.format("%b %d, %H:%M %p") + else: return date.format("%b %d %Y, %H:%M %p") + def update_bot_message(self, data, id): if self.bot_message is None: self.save_history() @@ -895,8 +902,7 @@ Generate a title following these rules: if id not in self.chats["chats"][self.chats["selected_chat"]]["messages"] or vadjustment.get_value() + 50 >= vadjustment.get_upper() - vadjustment.get_page_size(): GLib.idle_add(vadjustment.set_value, vadjustment.get_upper()) if data['done']: - date = datetime.strptime(self.chats["chats"][self.chats["selected_chat"]]["messages"][id]["date"], '%Y/%m/%d %H:%M:%S') - formated_date = GLib.DateTime.new(GLib.DateTime.new_now_local().get_timezone(), date.year, date.month, date.day, date.hour, date.minute, date.second).format("%c") + formated_date = self.generate_datetime_format(datetime.strptime(self.chats["chats"][self.chats["selected_chat"]]["messages"][id]["date"], '%Y/%m/%d %H:%M:%S')) text = f"\n\n{data['model'].split(':')[0].replace('-', ' ').title()} ({data['model'].split(':')[1]})\n{formated_date}" GLib.idle_add(self.bot_message.insert_markup, self.bot_message.get_end_iter(), text, len(text)) self.save_history() @@ -1055,8 +1061,7 @@ Generate a title following these rules: for widget in list(self.chat_container): self.chat_container.remove(widget) for key, message in self.chats['chats'][self.chats["selected_chat"]]['messages'].items(): if message: - date = datetime.strptime(message['date'] + (":00" if message['date'].count(":") == 1 else ""), '%Y/%m/%d %H:%M:%S') - formated_date = GLib.DateTime.new(GLib.DateTime.new_now_local().get_timezone(), date.year, date.month, date.day, date.hour, date.minute, date.second).format("%c") + formated_date = self.generate_datetime_format(datetime.strptime(message['date'] + (":00" if message['date'].count(":") == 1 else ""), '%Y/%m/%d %H:%M:%S')) if message['role'] == 'user': self.show_message(message['content'], False, f"\n\n{formated_date}", message['images'] if 'images' in message else None, message['files'] if 'files' in message else None, id=key) else: