added journal command

This commit is contained in:
2023-04-20 16:14:51 +02:00
parent 6570de995d
commit 2cd790e662
7 changed files with 175 additions and 20 deletions

View File

@@ -1,5 +1,15 @@
from peewee import *
from pathlib import Path
import os
ID_MAPPINGS = {
"Lia": 0,
"Rémy": 364520272,
}
ID_MAPPINGS_REV = dict((v, k) for k, v in ID_MAPPINGS.items())
MEDIA_DIR = Path(os.getenv("MEDIA_DIR"))
MEDIA_DIR.mkdir(parents=True, exist_ok=True)
db = DatabaseProxy()
@@ -11,25 +21,38 @@ class BaseModel(Model):
# model for a single journal entry
class JournalEntry(BaseModel):
# the date of the entry
date = DateField()
# the text of the entry
text = TextField()
media_path = TextField()
author = TextField()
date = DateField(unique=True)
author = TextField(null=True)
text = TextField(null=True)
media_path = TextField(null=True)
@property
def media(self):
return Path(self.media_path).open('rb')
@media.setter
def media(self, media):
self.media_path = Path(media).absolute()
def save_media(self, media: bytearray, file_name: str):
ext = Path(file_name).suffix
file_name = f"{self.date.isoformat()}-media{ext}"
self.media_path = MEDIA_DIR / file_name
self.media_path.write_bytes(media)
self.save()
@property
def author_id(self):
if self.author is None:
return None
else:
return ID_MAPPINGS[self.author]
@author_id.setter
def author_id(self, author_id):
self.author = ID_MAPPINGS_REV[author_id]
self.save()
def set_db(db_path):
db.initialize(SqliteDatabase(db_path))
db.connect()
db.create_tables([JournalEntry], safe=True)
db.create_tables([JournalEntry], safe=True)