summaryrefslogtreecommitdiff
path: root/src/home/telegram/_botcontext.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/home/telegram/_botcontext.py')
-rw-r--r--src/home/telegram/_botcontext.py85
1 files changed, 0 insertions, 85 deletions
diff --git a/src/home/telegram/_botcontext.py b/src/home/telegram/_botcontext.py
deleted file mode 100644
index f343eeb..0000000
--- a/src/home/telegram/_botcontext.py
+++ /dev/null
@@ -1,85 +0,0 @@
-from typing import Optional, List
-
-from telegram import Update, ParseMode, User, CallbackQuery
-from telegram.ext import CallbackContext
-
-from ._botdb import BotDatabase
-from ._botlang import lang
-from ._botutil import IgnoreMarkup, exc2text
-
-
-class Context:
- _update: Optional[Update]
- _callback_context: Optional[CallbackContext]
- _markup_getter: callable
- db: Optional[BotDatabase]
- _user_lang: Optional[str]
-
- def __init__(self,
- update: Optional[Update],
- callback_context: Optional[CallbackContext],
- markup_getter: callable,
- store: Optional[BotDatabase]):
- self._update = update
- self._callback_context = callback_context
- self._markup_getter = markup_getter
- self._store = store
- self._user_lang = None
-
- def reply(self, text, markup=None):
- if markup is None:
- markup = self._markup_getter(self)
- kwargs = dict(parse_mode=ParseMode.HTML)
- if not isinstance(markup, IgnoreMarkup):
- kwargs['reply_markup'] = markup
- return self._update.message.reply_text(text, **kwargs)
-
- def reply_exc(self, e: Exception) -> None:
- self.reply(exc2text(e), markup=IgnoreMarkup())
-
- def answer(self, text: str = None):
- self.callback_query.answer(text)
-
- def edit(self, text, markup=None):
- kwargs = dict(parse_mode=ParseMode.HTML)
- if not isinstance(markup, IgnoreMarkup):
- kwargs['reply_markup'] = markup
- self.callback_query.edit_message_text(text, **kwargs)
-
- @property
- def text(self) -> str:
- return self._update.message.text
-
- @property
- def callback_query(self) -> CallbackQuery:
- return self._update.callback_query
-
- @property
- def args(self) -> Optional[List[str]]:
- return self._callback_context.args
-
- @property
- def user_id(self) -> int:
- return self.user.id
-
- @property
- def user_data(self):
- return self._callback_context.user_data
-
- @property
- def user(self) -> User:
- return self._update.effective_user
-
- @property
- def user_lang(self) -> str:
- if self._user_lang is None:
- self._user_lang = self._store.get_user_lang(self.user_id)
- return self._user_lang
-
- def lang(self, key: str, *args) -> str:
- return lang.get(key, self.user_lang, *args)
-
- def is_callback_context(self) -> bool:
- return self._update.callback_query \
- and self._update.callback_query.data \
- and self._update.callback_query.data != ''