mirror of
https://github.com/gmbrax/Pilgrim.git
synced 2026-11-10 04:50:18 +00:00
Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3843be6e13 | ||
|
|
0adb230dd7 | ||
|
|
167c2d8928 | ||
|
|
5b0f894c88 | ||
|
|
2b851fc7c7 | ||
|
|
a3123fe322 |
+3
-1
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "Pilgrim"
|
name = "Pilgrim"
|
||||||
version = "0.0.3"
|
version = "0.0.4"
|
||||||
authors = [
|
authors = [
|
||||||
{ name="Gustavo Henrique Santos Souza de Miranda", email="gustavohssmiranda@gmail.com" }
|
{ name="Gustavo Henrique Santos Souza de Miranda", email="gustavohssmiranda@gmail.com" }
|
||||||
]
|
]
|
||||||
@@ -20,6 +20,8 @@
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"sqlalchemy",
|
"sqlalchemy",
|
||||||
"textual",
|
"textual",
|
||||||
|
"tomli",
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
[template.plugins.default]
|
[template.plugins.default]
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
from pilgrim.database import Database
|
from pilgrim.database import Database
|
||||||
from pilgrim.service.servicemanager import ServiceManager
|
from pilgrim.service.servicemanager import ServiceManager
|
||||||
from pilgrim.ui.ui import UIApp
|
from pilgrim.ui.ui import UIApp
|
||||||
from pilgrim.utils import DirectoryManager
|
from pilgrim.utils import DirectoryManager, ConfigManager
|
||||||
|
|
||||||
|
|
||||||
class Application:
|
class Application:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.config_dir = DirectoryManager.get_config_directory()
|
self.config_dir = DirectoryManager.get_config_directory()
|
||||||
self.database = Database()
|
self.database = Database()
|
||||||
|
self.config_manager = ConfigManager()
|
||||||
session = self.database.session()
|
session = self.database.session()
|
||||||
session_manager = ServiceManager()
|
session_manager = ServiceManager()
|
||||||
session_manager.set_session(session)
|
session_manager.set_session(session)
|
||||||
self.ui = UIApp(session_manager)
|
self.ui = UIApp(session_manager,self.config_manager)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.database.create()
|
self.database.create()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from textual.binding import Binding
|
|||||||
from textual.screen import Screen
|
from textual.screen import Screen
|
||||||
from textual.widgets import Header, Footer, Button, Label, TextArea
|
from textual.widgets import Header, Footer, Button, Label, TextArea
|
||||||
from textual.containers import Container
|
from textual.containers import Container
|
||||||
|
from importlib.metadata import version
|
||||||
class AboutScreen(Screen[bool]):
|
class AboutScreen(Screen[bool]):
|
||||||
"""Screen to display application information."""
|
"""Screen to display application information."""
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ class AboutScreen(Screen[bool]):
|
|||||||
self.app_title = Label("Pilgrim", id="AboutScreen_AboutTitle",classes="AboutScreen_AboutTitle")
|
self.app_title = Label("Pilgrim", id="AboutScreen_AboutTitle",classes="AboutScreen_AboutTitle")
|
||||||
self.content = Label("A TUI Based Travel Diary Application", id="AboutScreen_AboutContent",
|
self.content = Label("A TUI Based Travel Diary Application", id="AboutScreen_AboutContent",
|
||||||
classes="AboutScreen_AboutContent")
|
classes="AboutScreen_AboutContent")
|
||||||
self.version = Label("Version: 0.0.1", id="AboutScreen_AboutVersion",
|
self.version = Label(f"Version: {version('Pilgrim')}", id="AboutScreen_AboutVersion",
|
||||||
classes="AboutScreen_AboutVersion")
|
classes="AboutScreen_AboutVersion")
|
||||||
self.developer = Label("Developed By: Gustavo Henrique Miranda ", id="AboutScreen_AboutAuthor")
|
self.developer = Label("Developed By: Gustavo Henrique Miranda ", id="AboutScreen_AboutAuthor")
|
||||||
self.contact = Label("git.gustavomiranda.xyz", id="AboutScreen_AboutContact",
|
self.contact = Label("git.gustavomiranda.xyz", id="AboutScreen_AboutContact",
|
||||||
|
|||||||
@@ -216,6 +216,7 @@ class DiaryListScreen(Screen):
|
|||||||
self.notify(f"Creation canceled...")
|
self.notify(f"Creation canceled...")
|
||||||
|
|
||||||
def _on_screen_resume(self) -> None:
|
def _on_screen_resume(self) -> None:
|
||||||
|
super()._on_screen_resume()
|
||||||
self.refresh_diaries()
|
self.refresh_diaries()
|
||||||
|
|
||||||
def action_edit_selected_diary(self):
|
def action_edit_selected_diary(self):
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from pilgrim.service.servicemanager import ServiceManager
|
|||||||
from pilgrim.ui.screens.about_screen import AboutScreen
|
from pilgrim.ui.screens.about_screen import AboutScreen
|
||||||
from pilgrim.ui.screens.diary_list_screen import DiaryListScreen
|
from pilgrim.ui.screens.diary_list_screen import DiaryListScreen
|
||||||
from pilgrim.ui.screens.edit_entry_screen import EditEntryScreen
|
from pilgrim.ui.screens.edit_entry_screen import EditEntryScreen
|
||||||
|
from pilgrim.utils import ConfigManager
|
||||||
|
|
||||||
CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css"
|
CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css"
|
||||||
|
|
||||||
@@ -16,9 +17,10 @@ CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css"
|
|||||||
class UIApp(App):
|
class UIApp(App):
|
||||||
CSS_PATH = CSS_FILE_PATH
|
CSS_PATH = CSS_FILE_PATH
|
||||||
|
|
||||||
def __init__(self,service_manager: ServiceManager, **kwargs):
|
def __init__(self,service_manager: ServiceManager, config_manager: ConfigManager, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
self.service_manager = service_manager
|
self.service_manager = service_manager
|
||||||
|
self.config_manager = config_manager
|
||||||
|
|
||||||
|
|
||||||
def on_mount(self) -> None:
|
def on_mount(self) -> None:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
from .directory_manager import DirectoryManager
|
from .directory_manager import DirectoryManager
|
||||||
|
from .config_manager import ConfigManager
|
||||||
|
|
||||||
__all__ = ['DirectoryManager']
|
__all__ = ['DirectoryManager', 'ConfigManager']
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
from threading import Lock
|
||||||
|
|
||||||
|
import tomli
|
||||||
|
from pilgrim.utils import DirectoryManager
|
||||||
|
|
||||||
|
class SingletonMeta(type):
|
||||||
|
_instances = {}
|
||||||
|
_lock: Lock = Lock()
|
||||||
|
|
||||||
|
def __call__(cls, *args, **kwargs):
|
||||||
|
with cls._lock:
|
||||||
|
if cls not in cls._instances:
|
||||||
|
instance = super().__call__(*args, **kwargs)
|
||||||
|
cls._instances[cls] = instance
|
||||||
|
return cls._instances[cls]
|
||||||
|
|
||||||
|
class ConfigManager(metaclass=SingletonMeta):
|
||||||
|
def __init__(self):
|
||||||
|
self.database_url = None
|
||||||
|
self.database_type = None
|
||||||
|
self.auto_open_diary = None
|
||||||
|
self.auto_open_new_diary = None
|
||||||
|
@staticmethod
|
||||||
|
def read_config():
|
||||||
|
try:
|
||||||
|
with open(f"{DirectoryManager.get_config_directory()}/config.toml", "rb") as f:
|
||||||
|
data = tomli.load(f)
|
||||||
|
print(data)
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("Error: config.toml not found.")
|
||||||
|
except tomli.TOMLDecodeError as e:
|
||||||
|
print(f"Error decoding TOML: {e}")
|
||||||
|
|
||||||
|
def set_database_url(self):
|
||||||
|
pass
|
||||||
Reference in New Issue
Block a user