refactor: centralize settings and application services
This commit is contained in:
@@ -20,6 +20,7 @@ from telegramify_markdown.config import RenderConfig
|
||||
|
||||
from .ai import AIClient
|
||||
from .config import MAX_TELEGRAM_MESSAGE_LENGTH
|
||||
from .services import SERVICES_KEY, ApplicationServices
|
||||
from .speech import SpeechTranscriber
|
||||
from .storage import AssistantStorage
|
||||
|
||||
@@ -262,24 +263,30 @@ def build_inline_results(query: str) -> list[InlineQueryResultArticle]:
|
||||
]
|
||||
|
||||
|
||||
def get_services(
|
||||
context: ContextTypes.DEFAULT_TYPE,
|
||||
) -> ApplicationServices:
|
||||
return context.application.bot_data[SERVICES_KEY]
|
||||
|
||||
|
||||
def get_storage(context: ContextTypes.DEFAULT_TYPE) -> AssistantStorage:
|
||||
return context.application.bot_data["storage"]
|
||||
return get_services(context).storage
|
||||
|
||||
|
||||
def get_ai_client(context: ContextTypes.DEFAULT_TYPE) -> AIClient:
|
||||
return context.application.bot_data["ai_client"]
|
||||
return get_services(context).ai_client
|
||||
|
||||
|
||||
def get_tz(context: ContextTypes.DEFAULT_TYPE) -> ZoneInfo:
|
||||
return context.application.bot_data["timezone"]
|
||||
return get_services(context).timezone
|
||||
|
||||
|
||||
def get_speech_recognizer(context: ContextTypes.DEFAULT_TYPE) -> SpeechTranscriber:
|
||||
return context.application.bot_data["speech_recognizer"]
|
||||
return get_services(context).speech_recognizer
|
||||
|
||||
|
||||
def get_voice_max_duration(context: ContextTypes.DEFAULT_TYPE) -> int:
|
||||
return int(context.application.bot_data["voice_max_duration"])
|
||||
return get_services(context).voice_max_duration_seconds
|
||||
|
||||
|
||||
def command_text(context: ContextTypes.DEFAULT_TYPE) -> str:
|
||||
|
||||
Reference in New Issue
Block a user