fixed source code!

This commit is contained in:
kittyneverdies 2024-02-16 20:51:18 +03:00
parent c5a8fed76f
commit 6a435cfcbd
8 changed files with 36 additions and 27 deletions

View File

@ -6,6 +6,7 @@ from aiogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKe
from bozenka.database.tables.telegram import TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.instances.telegram.filters import IsSettingEnabled
from bozenka.instances.telegram.utils.callbacks_factory import RevokeCallbackData, DeleteMenu
@ -85,7 +86,7 @@ class Invite(BasicFeature):
# List of aiogram handlers
telegram_message_handlers = [
# Format is [Handler, [Filters]]
[telegram_invite_command_handler, [Command(commands=["invite"])]]
[telegram_invite_command_handler, [Command(commands=["invite"]), IsSettingEnabled(telegram_db_name)]]
]
telegram_callback_handlers = [
# Format is [Handler, [Filters]]

View File

@ -9,7 +9,7 @@ from sqlalchemy.ext.asyncio import async_sessionmaker
from bozenka.database.tables.telegram import get_chat_config_value, TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.instances.telegram.utils.callbacks_factory import UnbanData, BanData, UnmuteData, MuteData, DeleteMenu
from bozenka.instances.telegram.filters import IsAdminFilter, BotHasPermissions, UserHasPermissions
from bozenka.instances.telegram.filters import IsAdminFilter, BotHasPermissions, UserHasPermissions, IsSettingEnabled
from bozenka.instances.telegram.utils.delete import delete_keyboard
from bozenka.instances.telegram.utils.simpler import SolutionSimpler
@ -578,17 +578,19 @@ class Moderation(BasicFeature):
# Format is [Handler, [Filters]]
[telegram_ban_cmd_handler, [Command(commands="ban"),
IsAdminFilter(True, True), F.reply_to_message.text,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE)]], IsSettingEnabled(telegram_db_name)
[telegram_unban_cmd_handler, [Command(commands="unban"),
IsAdminFilter(True, True), F.reply_to_message.text,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE),
IsSettingEnabled(telegram_db_name)]],
[telegram_mute_cmd_handler, [Command(commands=["mute", "re"]),
UserHasPermissions(["can_restrict_members"]),
BotHasPermissions(["can_restrict_members"]), ~(F.chat.type == ChatType.PRIVATE), F.reply_to_message.text]],
BotHasPermissions(["can_restrict_members"]), ~(F.chat.type == ChatType.PRIVATE), F.reply_to_message.text,
IsSettingEnabled(telegram_db_name)]],
[telegram_unmute_cmd_handler, [Command(commands=["unmute"]),
UserHasPermissions(["can_restrict_members"]),
BotHasPermissions(["can_restrict_members"]),
~(F.chat.type == ChatType.PRIVATE), F.reply_to_message.text]],
~(F.chat.type == ChatType.PRIVATE), F.reply_to_message.text, IsSettingEnabled(telegram_db_name)]],
[telegram_help_ban_handler,
[Command(commands="ban"), IsAdminFilter(True, True), ~(F.chat.type == ChatType.PRIVATE)]],
[telegram_help_unban_handler,

View File

@ -6,7 +6,7 @@ from aiogram.types import Message, CallbackQuery, InlineKeyboardButton, InlineKe
from bozenka.database.tables.telegram import TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.instances.telegram.utils.callbacks_factory import PinMsg, UnpinMsg, DeleteMenu
from bozenka.instances.telegram.filters import UserHasPermissions, BotHasPermissions, IsAdminFilter
from bozenka.instances.telegram.filters import UserHasPermissions, BotHasPermissions, IsAdminFilter, IsSettingEnabled
from bozenka.instances.telegram.utils.delete import delete_keyboard
from bozenka.instances.telegram.utils.simpler import SolutionSimpler
@ -162,17 +162,17 @@ class Pins(BasicFeature):
# Format is [Handler, [Filters]]
[telegram_pin_cmd, [Command(commands="pin"), UserHasPermissions(["can_pin_messages"]),
BotHasPermissions(["can_pin_messages"]), F.reply_to_message,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_unpin_cmd, [Command(commands="unpin"), UserHasPermissions(["can_pin_messages"]),
BotHasPermissions(["can_pin_messages"]), F.reply_to_message,
~(F.chat.type == ChatType.PRIVATE)]],
[telegram_unpinall_cmd, [Command(commands="unpin_all"), IsAdminFilter(True, False),
BotHasPermissions(["can_pin_messages"]), F.reply_to_message.text,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_help_pin_cmd, [Command(commands="pin"), UserHasPermissions(["can_pin_messages"]),
BotHasPermissions(["can_pin_messages"]), ~(F.chat.type == ChatType.PRIVATE)]],
[telegramm_help_unpin_cmd, [Command(commands="unpin"), UserHasPermissions(["can_pin_messages"]),
BotHasPermissions(["can_pin_messages"]), ~(F.chat.type == ChatType.PRIVATE)]]
BotHasPermissions(["can_pin_messages"]), ~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]]
]
telegram_callback_handlers = [

View File

@ -6,7 +6,7 @@ from aiogram.types import Message, CallbackQuery, InlineKeyboardButton, InlineKe
from bozenka.database.tables.telegram import TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.instances.telegram.utils.callbacks_factory import CloseThread, OpenThread, DeleteMenu
from bozenka.instances.telegram.filters import UserHasPermissions, BotHasPermissions
from bozenka.instances.telegram.filters import UserHasPermissions, BotHasPermissions, IsSettingEnabled
from bozenka.instances.telegram.utils.delete import delete_keyboard
from bozenka.instances.telegram.utils.simpler import SolutionSimpler
@ -175,27 +175,27 @@ class Threads(BasicFeature):
[telegram_close_topic_cmd_handler, [Command(commands=["close_topic", "close"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]), F.chat.is_forum,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_reopen_topic_cmd_handler, [Command(commands=["reopen_topic", "open_topic", "open"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]), F.chat.is_forum,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_close_general_topic_cmd_handler, [Command(commands=["close_general"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]),
F.chat.is_forum]],
F.chat.is_forum], IsSettingEnabled(telegram_db_name)],
[telegram_reopen_general_topic_cmd, [Command(commands=["reopen_general", "open_general"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]), F.chat.is_forum,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_hide_general_topic_cmd_handler, [Command(commands=["hide_general"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]), F.chat.is_forum,
~(F.chat.type == ChatType.PRIVATE)]],
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]],
[telegram_unhide_general_topic_cmd, [Command(commands=["unhide_general", "show_general"]),
UserHasPermissions(["can_manage_topics"]),
BotHasPermissions(["can_manage_topics"]), F.chat.is_forum,
~(F.chat.type == ChatType.PRIVATE)]]
~(F.chat.type == ChatType.PRIVATE), IsSettingEnabled(telegram_db_name)]]
]
telegram_callback_handlers = [
[telegram_close_thread_callback_handler, [CloseThread.filter()]],

View File

@ -12,6 +12,7 @@ from bozenka.database.tables.telegram import TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.generative import image_generative_size, image_generative_categories
from bozenka.generative.kadinsky import kadinsky_gen
from bozenka.instances.telegram.filters import IsSettingEnabled
from bozenka.instances.telegram.utils.callbacks_factory import ImageGenerationCategory, ImageGeneration, DeleteMenu, \
GptStop
from bozenka.instances.telegram.utils.delete import delete_keyboard
@ -192,7 +193,7 @@ class ImageGeneratrion(BasicFeature):
telegram_cmd_avaible = True # Is a feature have a commands
telegram_message_handlers = [
[telegram_kadinsky_generating_handler, [GeneratingImages.ready_to_generate, ~Command(commands=["cancel"])]],
[telegram_imagine_handler, [Command(commands=["imagine"])]]
[telegram_imagine_handler, [Command(commands=["imagine"]), IsSettingEnabled(telegram_db_name)]]
]
telegram_callback_handlers = [
[telegram_select_image_size_handler, [ImageGenerationCategory.filter()]],

View File

@ -449,7 +449,7 @@ class TextGeneratrion(BasicFeature):
if call.from_user.id != callback_data.user_id:
return
await state.update_data(set_model=callback_data.model)
await state.update_data(model=callback_data.model)
await state.set_state(AnsweringGPT4Free.ready_to_answer)
await call.answer("Вы можете начать общаться 🤖")
@ -493,7 +493,7 @@ class TextGeneratrion(BasicFeature):
level=logging.INFO)
if type(callback_data) == GptCategory:
await state.update_data(set_category=callback_data.category)
await state.update_data(category=callback_data.category)
await call.answer("Вы выбрали Gpt4Free 🤖")
await call.message.edit_text("Выберите, по какому пункту мы будем вести диалог с нейронной сети 🤖",
@ -535,7 +535,7 @@ class TextGeneratrion(BasicFeature):
logging.log(msg=f"Selected gpt4free provider {callback_data.provider} by user_id={call.from_user.id}",
level=logging.INFO)
await state.update_data(set_provider=callback_data.provider)
await state.update_data(provider=callback_data.provider)
await state.set_state(AnsweringGPT4Free.set_model)
await call.message.edit_text("Выберите пожалуйста модель ИИ 👾",
@ -560,7 +560,7 @@ class TextGeneratrion(BasicFeature):
logging.log(msg=f"Selected gpt4free model {callback_data.model} by user_id={call.from_user.id}",
level=logging.INFO)
await state.update_data(set_model=callback_data.model)
await state.update_data(model=callback_data.model)
await state.set_state(AnsweringGPT4Free.ready_to_answer)
logging.log(msg=f"Loaded GPT answering status for user_id={call.from_user.id}",
@ -715,7 +715,7 @@ class TextGeneratrion(BasicFeature):
"""
if callback_data.user_id != call.from_user.id:
return
await state.update_data(set_model=callback_data.index)
await state.update_data(model=callback_data.index)
await state.set_state(AnsweringGpt4All.ready_to_answer)
models = GPT4All.list_models()

View File

@ -7,6 +7,7 @@ from sqlalchemy.ext.asyncio import async_sessionmaker
from bozenka.database.tables.telegram import TelegramChatSettings
from bozenka.features.main import BasicFeature
from bozenka.instances.telegram.filters import IsSettingEnabled
from bozenka.instances.telegram.utils.simpler import SolutionSimpler
@ -62,13 +63,14 @@ class Welcome(BasicFeature):
telegram_setting = TelegramChatSettings.welcome_messages
telegram_category = "user"
telegram_commands: dict[str: str] = {}
telegram_db_name = TelegramChatSettings.welcome_messages
telegram_setting_in_list = True
telegram_setting_name = "Приветсвенные сообщения 👋"
telegram_setting_description = "<b>Приветсвенные сообщения 👋</b>" \
"\nПриветсвенные сообщения новым и ушедшим пользователям.",
telegram_cmd_avaible = False # Is a feature have a commands
telegram_message_handlers = [
[telegram_leave_handler, [F.content_type == ContentType.LEFT_CHAT_MEMBER]],
[telegram_join_handler, [F.content_type == ContentType.NEW_CHAT_MEMBERS]]
[telegram_leave_handler, [F.content_type == ContentType.LEFT_CHAT_MEMBER, IsSettingEnabled(telegram_db_name)]],
[telegram_join_handler, [F.content_type == ContentType.NEW_CHAT_MEMBERS, IsSettingEnabled(telegram_db_name)]]
]
telegram_callback_handlers = []

View File

@ -1,3 +1,4 @@
from aiogram.enums import ChatType
from aiogram.filters import Filter
from aiogram.types import Message
from sqlalchemy.ext.asyncio import async_sessionmaker
@ -20,6 +21,8 @@ class IsSettingEnabled(Filter):
:param session_maker: AsyncSessionMaker SqlAlchemy object
:return: Is config enabled
"""
return await get_chat_config_value(chat_id=msg.chat.id, session=session_maker, setting=self.setting)
if msg.chat.type != ChatType.PRIVATE:
return await get_chat_config_value(chat_id=msg.chat.id, session=session_maker, setting=self.setting)
else:
return True