HOT_FIX_3 add blacklist
fix db init
This commit is contained in:
@@ -13,7 +13,7 @@ class BotDB:
|
|||||||
self.conn = None
|
self.conn = None
|
||||||
self.cursor = None
|
self.cursor = None
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
self.logger.info(f'Подключен к базе данных: {self.db_file}')
|
self.logger.info(f'Инициация базы данных: {self.db_file}')
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
"""Создание соединения и курсора."""
|
"""Создание соединения и курсора."""
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
|||||||
from helper_bot.utils.helper_func import check_access, add_days_to_date, get_banned_users_buttons, get_banned_users_list
|
from helper_bot.utils.helper_func import check_access, add_days_to_date, get_banned_users_buttons, get_banned_users_list
|
||||||
from logs.custom_logger import logger
|
from logs.custom_logger import logger
|
||||||
|
|
||||||
from database.db import BotDB
|
|
||||||
|
|
||||||
admin_router = Router()
|
admin_router = Router()
|
||||||
|
|
||||||
@@ -26,7 +25,7 @@ PREVIEW_LINK = bdf.settings['Telegram']['preview_link']
|
|||||||
LOGS = bdf.settings['Settings']['logs']
|
LOGS = bdf.settings['Settings']['logs']
|
||||||
TEST = bdf.settings['Settings']['test']
|
TEST = bdf.settings['Settings']['test']
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
@admin_router.message(
|
@admin_router.message(
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from aiogram import Router, F, types
|
from aiogram import Router, F
|
||||||
from aiogram.fsm.context import FSMContext
|
from aiogram.fsm.context import FSMContext
|
||||||
from aiogram.types import CallbackQuery
|
from aiogram.types import CallbackQuery
|
||||||
|
|
||||||
from database.db import BotDB
|
|
||||||
from helper_bot.keyboards.main import create_keyboard_with_pagination, get_reply_keyboard_admin, \
|
from helper_bot.keyboards.main import create_keyboard_with_pagination, get_reply_keyboard_admin, \
|
||||||
create_keyboard_for_ban_reason
|
create_keyboard_for_ban_reason
|
||||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
@@ -24,7 +23,7 @@ PREVIEW_LINK = bdf.settings['Telegram']['preview_link']
|
|||||||
LOGS = bdf.settings['Settings']['logs']
|
LOGS = bdf.settings['Settings']['logs']
|
||||||
TEST = bdf.settings['Settings']['test']
|
TEST = bdf.settings['Settings']['test']
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
@callback_router.callback_query(
|
@callback_router.callback_query(
|
||||||
@@ -46,7 +45,6 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
|||||||
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
|
await call.answer(text='Что-то пошло не так!', show_alert=True, cache_time=3)
|
||||||
elif call.data == 'publish' and call.message.content_type == 'photo':
|
elif call.data == 'publish' and call.message.content_type == 'photo':
|
||||||
try:
|
try:
|
||||||
print(f'CALLMESSAGE - {call.message.text}')
|
|
||||||
await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, call.message.caption)
|
await send_photo_message(MAIN_PUBLIC, call.message, call.message.photo[-1].file_id, call.message.caption)
|
||||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||||
logger.info(f'Пост с фото опубликован в канале {MAIN_PUBLIC}.')
|
logger.info(f'Пост с фото опубликован в канале {MAIN_PUBLIC}.')
|
||||||
@@ -60,7 +58,6 @@ async def post_for_group(call: CallbackQuery, state: FSMContext):
|
|||||||
user_data = await state.get_data()
|
user_data = await state.get_data()
|
||||||
media_group_message_id = get_help_message_id(call.message.message_id, user_data)
|
media_group_message_id = get_help_message_id(call.message.message_id, user_data)
|
||||||
await call.bot.copy_message(chat_id=MAIN_PUBLIC, from_chat_id=GROUP_FOR_POST,message_id=media_group_message_id, reply_markup=None)
|
await call.bot.copy_message(chat_id=MAIN_PUBLIC, from_chat_id=GROUP_FOR_POST,message_id=media_group_message_id, reply_markup=None)
|
||||||
#await call.bot.copy_messages(chat_id=MAIN_PUBLIC, from_chat_id=GROUP_FOR_POST, message_ids=[media_group_message_id, media_group_message_id-1])
|
|
||||||
await call.bot.delete_message(chat_id=MAIN_PUBLIC, message_id=media_group_message_id)
|
await call.bot.delete_message(chat_id=MAIN_PUBLIC, message_id=media_group_message_id)
|
||||||
print(user_data['media_group_message_id'])
|
print(user_data['media_group_message_id'])
|
||||||
print(user_data['help_message_id'])
|
print(user_data['help_message_id'])
|
||||||
@@ -73,7 +70,7 @@ async def decline_post_for_group(call: CallbackQuery, state: FSMContext):
|
|||||||
logger.info(
|
logger.info(
|
||||||
f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
|
f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
|
||||||
try:
|
try:
|
||||||
if call.message.content_type == 'text' and call.message.text != "^":
|
if call.message.content_type == 'text' and call.message.text != "^" or call.message.content_type == 'photo':
|
||||||
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
await call.bot.delete_message(chat_id=GROUP_FOR_POST, message_id=call.message.message_id)
|
||||||
logger.info(
|
logger.info(
|
||||||
f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
|
f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
|
||||||
@@ -102,7 +99,7 @@ async def process_ban_user(call: CallbackQuery, state: FSMContext):
|
|||||||
date_to_unban=None)
|
date_to_unban=None)
|
||||||
markup = create_keyboard_for_ban_reason()
|
markup = create_keyboard_for_ban_reason()
|
||||||
await call.message.answer(
|
await call.message.answer(
|
||||||
text=f"Выбран пользователь:\nid: {user_id}\nusername:{user_name}. Выбери причину бана из списка или напиши ее в чат",
|
text=f"<b>Выбран пользователь:\nid:</b> {user_id}\n<b>username:</b> {user_name}\nИмя:{call.message.from_user.full_name}\nВыбери причину бана из списка или напиши ее в чат",
|
||||||
reply_markup=markup)
|
reply_markup=markup)
|
||||||
await state.set_state('BAN_2')
|
await state.set_state('BAN_2')
|
||||||
else:
|
else:
|
||||||
@@ -118,7 +115,7 @@ async def process_unlock_user(call: CallbackQuery):
|
|||||||
user_id = call.data[7:]
|
user_id = call.data[7:]
|
||||||
user_name = BotDB.get_username(user_id=user_id)
|
user_name = BotDB.get_username(user_id=user_id)
|
||||||
delete_user_blacklist(user_id)
|
delete_user_blacklist(user_id)
|
||||||
logger.info(f"Разблокирован пользователь с ID: {user_id}\nusername:{user_name}")
|
logger.info(f"Разблокирован пользователь с ID: {user_id} username:{user_name}")
|
||||||
username = BotDB.get_username(user_id)
|
username = BotDB.get_username(user_id)
|
||||||
await call.answer(f'Пользователь разблокирован {username}', show_alert=True)
|
await call.answer(f'Пользователь разблокирован {username}', show_alert=True)
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
from aiogram import Router, types
|
from aiogram import Router, types
|
||||||
from aiogram.fsm.context import FSMContext
|
from aiogram.fsm.context import FSMContext
|
||||||
|
|
||||||
from database.db import BotDB
|
|
||||||
from helper_bot.filters.main import ChatTypeFilter
|
from helper_bot.filters.main import ChatTypeFilter
|
||||||
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
||||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
from helper_bot.utils.helper_func import send_text_message
|
from helper_bot.utils.helper_func import send_text_message
|
||||||
|
from logs.custom_logger import logger
|
||||||
|
|
||||||
group_router = Router()
|
group_router = Router()
|
||||||
|
|
||||||
@@ -21,7 +20,7 @@ PREVIEW_LINK = bdf.settings['Telegram']['preview_link']
|
|||||||
LOGS = bdf.settings['Settings']['logs']
|
LOGS = bdf.settings['Settings']['logs']
|
||||||
TEST = bdf.settings['Settings']['test']
|
TEST = bdf.settings['Settings']['test']
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
@group_router.message(
|
@group_router.message(
|
||||||
|
|||||||
@@ -12,19 +12,18 @@ from aiogram.types import FSInputFile
|
|||||||
from helper_bot.filters.main import ChatTypeFilter
|
from helper_bot.filters.main import ChatTypeFilter
|
||||||
from helper_bot.keyboards import get_reply_keyboard, get_reply_keyboard_for_post
|
from helper_bot.keyboards import get_reply_keyboard, get_reply_keyboard_for_post
|
||||||
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
from helper_bot.keyboards.main import get_reply_keyboard_leave_chat
|
||||||
from helper_bot.middlewares.text_middleware import AlbumMiddleware
|
from helper_bot.middlewares.album_middleware import AlbumMiddleware
|
||||||
|
from helper_bot.middlewares.blacklist_middleware import BlacklistMiddleware
|
||||||
from helper_bot.utils import messages
|
from helper_bot.utils import messages
|
||||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
from helper_bot.utils.helper_func import get_first_name, get_text_message, send_text_message, send_photo_message, \
|
from helper_bot.utils.helper_func import get_first_name, get_text_message, send_text_message, send_photo_message, \
|
||||||
process_photo_album, send_media_group_message, check_username_and_full_name
|
process_photo_album, send_media_group_message, check_username_and_full_name
|
||||||
from logs.custom_logger import logger
|
from logs.custom_logger import logger
|
||||||
|
|
||||||
from database.db import BotDB
|
|
||||||
|
|
||||||
private_router = Router()
|
private_router = Router()
|
||||||
|
|
||||||
private_router.message.middleware(AlbumMiddleware())
|
private_router.message.middleware(AlbumMiddleware())
|
||||||
|
private_router.message.middleware(BlacklistMiddleware())
|
||||||
|
|
||||||
bdf = BaseDependencyFactory()
|
bdf = BaseDependencyFactory()
|
||||||
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
||||||
@@ -36,7 +35,7 @@ PREVIEW_LINK = bdf.settings['Telegram']['preview_link']
|
|||||||
LOGS = bdf.settings['Settings']['logs']
|
LOGS = bdf.settings['Settings']['logs']
|
||||||
TEST = bdf.settings['Settings']['test']
|
TEST = bdf.settings['Settings']['test']
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
@private_router.message(
|
@private_router.message(
|
||||||
|
|||||||
@@ -1,16 +1,31 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from collections import defaultdict
|
|
||||||
from typing import Any, Dict, Union
|
from typing import Any, Dict, Union
|
||||||
|
|
||||||
from aiogram import BaseMiddleware
|
from aiogram import BaseMiddleware
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
|
|
||||||
|
|
||||||
class BulkTextMiddleware(BaseMiddleware):
|
class AlbumMiddleware(BaseMiddleware):
|
||||||
def __init__(self, latency: Union[int, float] = 0.1):
|
def __init__(self, latency: Union[int, float] = 0.1):
|
||||||
# Initialize latency and album_data dictionary
|
# Initialize latency and album_data dictionary
|
||||||
self.latency = latency
|
self.latency = latency
|
||||||
self.texts = defaultdict(list)
|
self.album_data = {}
|
||||||
|
|
||||||
|
#
|
||||||
|
def collect_album_messages(self, event: Message):
|
||||||
|
"""
|
||||||
|
Collect messages of the same media group.
|
||||||
|
"""
|
||||||
|
# # Check if media_group_id exists in album_data
|
||||||
|
if event.media_group_id not in self.album_data:
|
||||||
|
# # Create a new entry for the media group
|
||||||
|
self.album_data[event.media_group_id] = {"messages": []}
|
||||||
|
#
|
||||||
|
# # Append the new message to the media group
|
||||||
|
self.album_data[event.media_group_id]["messages"].append(event)
|
||||||
|
#
|
||||||
|
# # Return the total number of messages in the current media group
|
||||||
|
return len(self.album_data[event.media_group_id]["messages"])
|
||||||
|
|
||||||
#
|
#
|
||||||
async def __call__(self, handler, event: Message, data: Dict[str, Any]) -> Any:
|
async def __call__(self, handler, event: Message, data: Dict[str, Any]) -> Any:
|
||||||
@@ -18,29 +33,29 @@ class BulkTextMiddleware(BaseMiddleware):
|
|||||||
Main middleware logic.
|
Main middleware logic.
|
||||||
"""
|
"""
|
||||||
# # If the event has no media_group_id, pass it to the handler immediately
|
# # If the event has no media_group_id, pass it to the handler immediately
|
||||||
key = (event.chat.id, event.from_user.id)
|
if not event.media_group_id:
|
||||||
if not event.text:
|
|
||||||
return await handler(event, data)
|
return await handler(event, data)
|
||||||
|
#
|
||||||
self.texts[key].append(event)
|
# # Collect messages of the same media group
|
||||||
total_before = len(self.texts[key])
|
total_before = self.collect_album_messages(event)
|
||||||
|
#
|
||||||
# # Wait for a specified latency period
|
# # Wait for a specified latency period
|
||||||
await asyncio.sleep(self.latency)
|
await asyncio.sleep(self.latency)
|
||||||
#
|
#
|
||||||
# # Check the total number of messages after the latency
|
# # Check the total number of messages after the latency
|
||||||
total_after = len(self.texts[key])
|
total_after = len(self.album_data[event.media_group_id]["messages"])
|
||||||
#
|
#
|
||||||
# # If new messages were added during the latency, exit
|
# # If new messages were added during the latency, exit
|
||||||
if total_before != total_after:
|
if total_before != total_after:
|
||||||
return
|
return
|
||||||
#
|
#
|
||||||
# # Sort the album messages by message_id and add to data
|
# # Sort the album messages by message_id and add to data
|
||||||
msg_texts = self.texts[key]
|
album_messages = self.album_data[event.media_group_id]["messages"]
|
||||||
msg_texts.sort(key=lambda x: x.message_id)
|
album_messages.sort(key=lambda x: x.message_id)
|
||||||
data["texts"] = ''.join([msg.text for msg in msg_texts])
|
data["album"] = album_messages
|
||||||
#
|
#
|
||||||
# Remove the media group from tracking to free up memory
|
# # Remove the media group from tracking to free up memory
|
||||||
del self.texts[key]
|
del self.album_data[event.media_group_id]
|
||||||
# # Call the original event handler
|
# # Call the original event handler
|
||||||
return await handler(event, data)
|
return await handler(event, data)
|
||||||
#
|
#
|
||||||
|
|||||||
21
helper_bot/middlewares/blacklist_middleware.py
Normal file
21
helper_bot/middlewares/blacklist_middleware.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
from typing import Dict, Any
|
||||||
|
|
||||||
|
from aiogram import BaseMiddleware, types
|
||||||
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
|
from logs.custom_logger import logger
|
||||||
|
|
||||||
|
bdf = BaseDependencyFactory()
|
||||||
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
|
class BlacklistMiddleware(BaseMiddleware):
|
||||||
|
async def __call__(self, handler, event: types.Message, data: Dict[str, Any]) -> Any:
|
||||||
|
logger.info(f'Вызов BlacklistMiddleware для пользователя {event.from_user.username}')
|
||||||
|
if BotDB.check_user_in_blacklist(user_id=event.from_user.id):
|
||||||
|
logger.info(f'BlacklistMiddleware результат для пользователя: {event.from_user.username} заблокирован!')
|
||||||
|
user_info = BotDB.get_blacklist_users_by_id(event.from_user.id)
|
||||||
|
await event.answer(
|
||||||
|
f"<b>Ты заблокирован.</b>\n<b>Причина блокировки:</b> {user_info[2]}\n<b>Дата разбана:</b> {user_info[3]}")
|
||||||
|
return False
|
||||||
|
logger.info(f'BlacklistMiddleware результат для пользователя: {event.from_user.username} доступ разрешен')
|
||||||
|
return await handler(event, data)
|
||||||
@@ -1,61 +1,46 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
from collections import defaultdict
|
||||||
from typing import Any, Dict, Union
|
from typing import Any, Dict, Union
|
||||||
|
|
||||||
from aiogram import BaseMiddleware
|
from aiogram import BaseMiddleware
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
|
|
||||||
|
|
||||||
class AlbumMiddleware(BaseMiddleware):
|
class BulkTextMiddleware(BaseMiddleware):
|
||||||
def __init__(self, latency: Union[int, float] = 0.1):
|
def __init__(self, latency: Union[int, float] = 0.1):
|
||||||
# Initialize latency and album_data dictionary
|
# Initialize latency and album_data dictionary
|
||||||
self.latency = latency
|
self.latency = latency
|
||||||
self.album_data = {}
|
self.texts = defaultdict(list)
|
||||||
|
|
||||||
#
|
|
||||||
def collect_album_messages(self, event: Message):
|
|
||||||
"""
|
|
||||||
Collect messages of the same media group.
|
|
||||||
"""
|
|
||||||
# # Check if media_group_id exists in album_data
|
|
||||||
if event.media_group_id not in self.album_data:
|
|
||||||
# # Create a new entry for the media group
|
|
||||||
self.album_data[event.media_group_id] = {"messages": []}
|
|
||||||
#
|
|
||||||
# # Append the new message to the media group
|
|
||||||
self.album_data[event.media_group_id]["messages"].append(event)
|
|
||||||
#
|
|
||||||
# # Return the total number of messages in the current media group
|
|
||||||
return len(self.album_data[event.media_group_id]["messages"])
|
|
||||||
|
|
||||||
#
|
|
||||||
async def __call__(self, handler, event: Message, data: Dict[str, Any]) -> Any:
|
async def __call__(self, handler, event: Message, data: Dict[str, Any]) -> Any:
|
||||||
"""
|
"""
|
||||||
Main middleware logic.
|
Main middleware logic.
|
||||||
"""
|
"""
|
||||||
# # If the event has no media_group_id, pass it to the handler immediately
|
# # If the event has no media_group_id, pass it to the handler immediately
|
||||||
if not event.media_group_id:
|
key = (event.chat.id, event.from_user.id)
|
||||||
|
if not event.text:
|
||||||
return await handler(event, data)
|
return await handler(event, data)
|
||||||
#
|
|
||||||
# # Collect messages of the same media group
|
self.texts[key].append(event)
|
||||||
total_before = self.collect_album_messages(event)
|
total_before = len(self.texts[key])
|
||||||
#
|
|
||||||
# # Wait for a specified latency period
|
# # Wait for a specified latency period
|
||||||
await asyncio.sleep(self.latency)
|
await asyncio.sleep(self.latency)
|
||||||
#
|
#
|
||||||
# # Check the total number of messages after the latency
|
# # Check the total number of messages after the latency
|
||||||
total_after = len(self.album_data[event.media_group_id]["messages"])
|
total_after = len(self.texts[key])
|
||||||
#
|
#
|
||||||
# # If new messages were added during the latency, exit
|
# # If new messages were added during the latency, exit
|
||||||
if total_before != total_after:
|
if total_before != total_after:
|
||||||
return
|
return
|
||||||
#
|
#
|
||||||
# # Sort the album messages by message_id and add to data
|
# # Sort the album messages by message_id and add to data
|
||||||
album_messages = self.album_data[event.media_group_id]["messages"]
|
msg_texts = self.texts[key]
|
||||||
album_messages.sort(key=lambda x: x.message_id)
|
msg_texts.sort(key=lambda x: x.message_id)
|
||||||
data["album"] = album_messages
|
data["texts"] = ''.join([msg.text for msg in msg_texts])
|
||||||
#
|
#
|
||||||
# # Remove the media group from tracking to free up memory
|
# Remove the media group from tracking to free up memory
|
||||||
del self.album_data[event.media_group_id]
|
del self.texts[key]
|
||||||
# # Call the original event handler
|
# # Call the original event handler
|
||||||
return await handler(event, data)
|
return await handler(event, data)
|
||||||
#
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import configparser
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from database.db import BotDB
|
||||||
|
|
||||||
|
|
||||||
class BaseDependencyFactory:
|
class BaseDependencyFactory:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -10,6 +12,8 @@ class BaseDependencyFactory:
|
|||||||
self.config = configparser.ConfigParser()
|
self.config = configparser.ConfigParser()
|
||||||
self.config.read(config_path)
|
self.config.read(config_path)
|
||||||
self.settings = {}
|
self.settings = {}
|
||||||
|
self.database = BotDB('database/tg-bot-database')
|
||||||
|
|
||||||
for section in self.config.sections():
|
for section in self.config.sections():
|
||||||
self.settings[section] = {}
|
self.settings[section] = {}
|
||||||
for key in self.config[section]:
|
for key in self.config[section]:
|
||||||
@@ -23,3 +27,7 @@ class BaseDependencyFactory:
|
|||||||
|
|
||||||
def get_settings(self):
|
def get_settings(self):
|
||||||
return self.settings
|
return self.settings
|
||||||
|
|
||||||
|
def get_db(self) -> BotDB:
|
||||||
|
"""Возвращает подключение к базе данных."""
|
||||||
|
return self.database
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ from datetime import datetime, timedelta
|
|||||||
from aiogram import types
|
from aiogram import types
|
||||||
from aiogram.types import InputMediaPhoto
|
from aiogram.types import InputMediaPhoto
|
||||||
|
|
||||||
from database.db import BotDB
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
bdf = BaseDependencyFactory()
|
||||||
|
|
||||||
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
def get_first_name(message: types.Message) -> str:
|
def get_first_name(message: types.Message) -> str:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
from database.db import BotDB
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
|
|
||||||
# Получаем текущий рабочий каталог
|
# Получаем текущий рабочий каталог
|
||||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
@@ -10,7 +10,8 @@ parent_dir = os.path.dirname(current_dir)
|
|||||||
# Строим путь до файла
|
# Строим путь до файла
|
||||||
tg_bot_database_path = os.path.join(parent_dir, "tg-bot-database")
|
tg_bot_database_path = os.path.join(parent_dir, "tg-bot-database")
|
||||||
|
|
||||||
BotDB = BotDB(f'{tg_bot_database_path}')
|
bdf = BaseDependencyFactory()
|
||||||
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
def get_filename():
|
def get_filename():
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
from database.db import BotDB
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
|
|
||||||
BotDB = BotDB('tg-bot-database')
|
bdf = BaseDependencyFactory()
|
||||||
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
def get_filename():
|
def get_filename():
|
||||||
|
|||||||
Reference in New Issue
Block a user