mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-11 16:59:06 +00:00
Add StatsManager for single display
This commit is contained in:
@@ -4,7 +4,14 @@
|
||||
|
||||
from importlib import import_module
|
||||
|
||||
__all__ = ["PasswordManager", "ConfigManager", "Vault", "EntryType", "StateManager"]
|
||||
__all__ = [
|
||||
"PasswordManager",
|
||||
"ConfigManager",
|
||||
"Vault",
|
||||
"EntryType",
|
||||
"StateManager",
|
||||
"StatsManager",
|
||||
]
|
||||
|
||||
|
||||
def __getattr__(name: str):
|
||||
@@ -18,4 +25,6 @@ def __getattr__(name: str):
|
||||
return import_module(".entry_types", __name__).EntryType
|
||||
if name == "StateManager":
|
||||
return import_module(".state_manager", __name__).StateManager
|
||||
if name == "StatsManager":
|
||||
return import_module(".stats_manager", __name__).StatsManager
|
||||
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
||||
|
@@ -99,6 +99,7 @@ from utils.fingerprint_manager import FingerprintManager
|
||||
from nostr.client import NostrClient, DEFAULT_RELAYS, MANIFEST_ID_PREFIX
|
||||
from .config_manager import ConfigManager
|
||||
from .state_manager import StateManager
|
||||
from .stats_manager import StatsManager
|
||||
|
||||
# Instantiate the logger
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -163,6 +164,7 @@ class PasswordManager:
|
||||
self.nostr_client: Optional[NostrClient] = None
|
||||
self.config_manager: Optional[ConfigManager] = None
|
||||
self.state_manager: Optional[StateManager] = None
|
||||
self.stats_manager: StatsManager = StatsManager()
|
||||
self.notifications: queue.Queue[Notification] = queue.Queue()
|
||||
self._current_notification: Optional[Notification] = None
|
||||
self._notification_expiry: float = 0.0
|
||||
|
20
src/seedpass/core/stats_manager.py
Normal file
20
src/seedpass/core/stats_manager.py
Normal file
@@ -0,0 +1,20 @@
|
||||
"""Manage display of stats screens."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
class StatsManager:
|
||||
"""Track whether stats have been displayed."""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._displayed = False
|
||||
|
||||
def display_stats_once(self, manager) -> None:
|
||||
"""Display stats using ``manager`` once per reset."""
|
||||
if not self._displayed:
|
||||
manager.display_stats()
|
||||
self._displayed = True
|
||||
|
||||
def reset(self) -> None:
|
||||
"""Reset the displayed flag."""
|
||||
self._displayed = False
|
Reference in New Issue
Block a user