mirror of
https://github.com/civsocit/olgram.git
synced 2025-05-24 17:33:25 +00:00
Compare commits
4 Commits
30ab7c84b4
...
d478e9d8e9
Author | SHA1 | Date | |
---|---|---|---|
|
d478e9d8e9 | ||
|
52864ed729 | ||
|
ac09e42f94 | ||
|
afc5389520 |
|
@ -549,9 +549,9 @@ msgstr "Promotion code withdrawn"
|
|||
|
||||
#: olgram/commands/promo.py:70
|
||||
msgid ""
|
||||
"Укажите аргумент: промокод. Например: <pre>/set_promo my-promo-code</pre>"
|
||||
"Укажите аргумент: промокод. Например: <pre>/setpromo my-promo-code</pre>"
|
||||
msgstr ""
|
||||
"Specify the argument: promo code. For example: <pre>/set_promo my-promo-"
|
||||
"Specify the argument: promo code. For example: <pre>/setpromo my-promo-"
|
||||
"code</pre>"
|
||||
|
||||
#: olgram/commands/promo.py:78 olgram/commands/promo.py:82
|
||||
|
|
|
@ -556,9 +556,9 @@ msgstr "Промокод відкликаний"
|
|||
|
||||
#: olgram/commands/promo.py:70
|
||||
msgid ""
|
||||
"Укажите аргумент: промокод. Например: <pre>/set_promo my-promo-code</pre>"
|
||||
"Укажите аргумент: промокод. Например: <pre>/setpromo my-promo-code</pre>"
|
||||
msgstr ""
|
||||
"Зазначте аргумент: промокод. Наприклад: <pre>/set_promo my-promo-code</pre>"
|
||||
"Зазначте аргумент: промокод. Наприклад: <pre>/setpromo my-promo-code</pre>"
|
||||
|
||||
#: olgram/commands/promo.py:78 olgram/commands/promo.py:82
|
||||
msgid "Промокод не найден"
|
||||
|
|
2
main.py
2
main.py
|
@ -25,7 +25,7 @@ async def init_database():
|
|||
|
||||
async def init_olgram():
|
||||
from olgram.router import bot, dp
|
||||
dp.setup_middleware(AccessMiddleware(OlgramSettings.admin_id()))
|
||||
dp.setup_middleware(AccessMiddleware(OlgramSettings.admin_ids()))
|
||||
from aiogram.types import BotCommand
|
||||
await bot.set_my_commands(
|
||||
[
|
||||
|
|
|
@ -60,14 +60,14 @@ async def del_promo(message: types.Message, state: FSMContext):
|
|||
|
||||
|
||||
@dp.message_handler(commands=["setpromo"], state="*")
|
||||
async def set_promo(message: types.Message, state: FSMContext):
|
||||
async def setpromo(message: types.Message, state: FSMContext):
|
||||
"""
|
||||
Команда /setpromo
|
||||
"""
|
||||
|
||||
arg = message.get_args()
|
||||
if not arg:
|
||||
return await message.answer(_("Укажите аргумент: промокод. Например: <pre>/set_promo my-promo-code</pre>"),
|
||||
return await message.answer(_("Укажите аргумент: промокод. Например: <pre>/setpromo my-promo-code</pre>"),
|
||||
parse_mode="HTML")
|
||||
|
||||
arg = arg.strip()
|
||||
|
|
|
@ -41,13 +41,13 @@ class OlgramSettings(AbstractSettings):
|
|||
|
||||
@classmethod
|
||||
def version(cls):
|
||||
return "0.4.3"
|
||||
return "0.5.0"
|
||||
|
||||
@classmethod
|
||||
@lru_cache
|
||||
def admin_id(cls):
|
||||
_id = cls._get_env("ADMIN_ID", True)
|
||||
return int(_id) if _id else None
|
||||
def admin_ids(cls):
|
||||
_ids = cls._get_env("ADMIN_ID", True)
|
||||
return set(map(int, _ids.split(","))) if _ids else None
|
||||
|
||||
@classmethod
|
||||
@lru_cache
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import aiogram.types as types
|
||||
from aiogram.dispatcher.handler import CancelHandler, current_handler
|
||||
from aiogram.dispatcher.middlewares import BaseMiddleware
|
||||
from collections.abc import Container
|
||||
from locales.locale import _
|
||||
|
||||
|
||||
|
@ -19,8 +20,8 @@ def public():
|
|||
|
||||
|
||||
class AccessMiddleware(BaseMiddleware):
|
||||
def __init__(self, access_chat_id: int):
|
||||
self._access_chat_id = access_chat_id
|
||||
def __init__(self, access_chat_ids: Container[int]):
|
||||
self._access_chat_ids = access_chat_ids
|
||||
super(AccessMiddleware, self).__init__()
|
||||
|
||||
@classmethod
|
||||
|
@ -29,25 +30,25 @@ class AccessMiddleware(BaseMiddleware):
|
|||
return handler and getattr(handler, "access_public", False)
|
||||
|
||||
async def on_process_message(self, message: types.Message, data: dict):
|
||||
admin_id = self._access_chat_id
|
||||
if not admin_id:
|
||||
return # Администратор бота вообще не указан
|
||||
admin_ids = self._access_chat_ids
|
||||
if not admin_ids:
|
||||
return # Администраторы бота вообще не указаны
|
||||
|
||||
if self._is_public_command(): # Эта команда разрешена всем пользователям
|
||||
return
|
||||
|
||||
if message.chat.id != admin_id:
|
||||
if message.chat.id not in admin_ids:
|
||||
await message.answer(_("Владелец бота ограничил доступ к этому функционалу 😞"))
|
||||
raise CancelHandler()
|
||||
|
||||
async def on_process_callback_query(self, call: types.CallbackQuery, data: dict):
|
||||
admin_id = self._access_chat_id
|
||||
if not admin_id:
|
||||
return # Администратор бота вообще не указан
|
||||
admin_ids = self._access_chat_ids
|
||||
if not admin_ids:
|
||||
return # Администраторы бота вообще не указаны
|
||||
|
||||
if self._is_public_command(): # Эта команда разрешена всем пользователям
|
||||
return
|
||||
|
||||
if call.message.chat.id != admin_id:
|
||||
if call.message.chat.id not in admin_ids:
|
||||
await call.answer(_("Владелец бота ограничил доступ к этому функционалу😞"))
|
||||
raise CancelHandler()
|
||||
|
|
Loading…
Reference in New Issue
Block a user