added journal command
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user