Add saving of notifications to the directory.

main
KKlochko 1 year ago
parent 05f0b41267
commit 694b1934ac

@ -24,14 +24,17 @@ import sys
from notification_client.MessagePrinter import MessagePrinter from notification_client.MessagePrinter import MessagePrinter
from notification_client.notitication import Notification from notification_client.notitication import Notification
from notification_client.timestamp import Timestamp from notification_client.timestamp import Timestamp
from notification_client.notification_saver import NotificationSaver
class Client: class Client:
BUFFER_SIZE = 1024 BUFFER_SIZE = 1024
NOTIFICATION_DIR = 'notifications'
def __init__(self, ip: str, port: int): def __init__(self, ip: str, port: int, notification_dir: str = 'notifications'):
self.__ip = ip self.__ip = ip
self.__port = port self.__port = port
self.NOTIFICATION_DIR = notification_dir
async def connect(self): async def connect(self):
try: try:
@ -62,6 +65,8 @@ class Client:
Notification.notify(title, message) Notification.notify(title, message)
NotificationSaver.save_notification(self.NOTIFICATION_DIR, title, message, now)
except asyncio.CancelledError: except asyncio.CancelledError:
print('Something went wrong') print('Something went wrong')
finally: finally:

@ -0,0 +1,26 @@
from datetime import datetime
import os
class NotificationSaver:
@staticmethod
def create_folders_if_needed(path):
os.makedirs(path, exist_ok=True)
@staticmethod
def get_date_folder(base_dir='notifications'):
date = str(datetime.now().date())
return os.path.join(base_dir, date)
@staticmethod
def save_notification(base_dir, title, message, timestamp) -> bool:
dirname = NotificationSaver.get_date_folder(base_dir)
filename = f'{title}_{timestamp}.md'
full_file_name = os.path.join(dirname, filename)
full_folder_name = os.path.dirname(full_file_name)
NotificationSaver.create_folders_if_needed(full_folder_name)
with open(full_file_name, 'w') as file:
file.write(message)
Loading…
Cancel
Save