Compare commits

...

4 Commits

Author SHA1 Message Date
1a0341b3dd Add keyboards.py 2024-07-21 02:29:37 +03:00
e1fdbcb60c Add custom filters support 2024-07-21 02:28:05 +03:00
c1d13f208a Fix help message in i18n.yaml 2024-07-21 02:27:46 +03:00
2f6e3b6c15 Fix redis port default 2024-07-21 02:25:14 +03:00
6 changed files with 28 additions and 2 deletions

View File

@ -1,3 +1,3 @@
en:
start: "Hello, {message.from_user.full_name}"
help: ""
help: "Just simple bot, which greets the user. Use /start"

View File

@ -3,6 +3,7 @@ from telebot.storage import StateMemoryStorage, StateRedisStorage
from .handlers import register_handlers
from .middlewares import setup_middlewares
from .filters import add_custom_filters
def create_bot(config, logger, i18n):
@ -29,4 +30,7 @@ def create_bot(config, logger, i18n):
logger.debug("Registering handlers")
register_handlers(bot)
logger.debug("Adding custom filters")
add_custom_filters(bot, config)
return bot

View File

@ -21,7 +21,7 @@ class Config:
# state storage
SS_TYPE: str = os.getenv("SS_TYPE", "memory").lower()
SS_REDIS_HOST: str = os.getenv("SS_REDIS_HOST")
SS_REDIS_PORT: int = int(os.getenv("SS_REDIS_PORT"), 6379)
SS_REDIS_PORT: int = int(os.getenv("SS_REDIS_PORT", 6379))
SS_REDIS_DB: int = int(os.getenv("SS_REDIS_DB", 0))
SS_REDIS_PASS: str = os.getenv("SS_REDIS_PASS")

View File

@ -0,0 +1,9 @@
from telebot import TeleBot
from telebot.custom_filters import StateFilter
from .isowner import IsOwnerFilter
def add_custom_filters(bot: TeleBot, config):
bot.add_custom_filter(StateFilter(bot))
bot.add_custom_filter(IsOwnerFilter(config.OWNER_ID))

12
mybot/filters/isowner.py Normal file
View File

@ -0,0 +1,12 @@
from telebot.custom_filters import SimpleCustomFilter
from telebot.types import Message
class IsOwnerFilter (SimpleCustomFilter):
key = "is_owner"
def __init__(self, owner_id: int):
self.owner_id: int = owner_id
def check(self, message: Message):
return message.from_user.id == self.owner_id

1
mybot/keyboards.py Normal file
View File

@ -0,0 +1 @@
# keyboards will be defined here