some fix
This commit is contained in:
@@ -562,6 +562,62 @@ class BotDB:
|
|||||||
finally:
|
finally:
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
def get_username_and_full_name(self, user_id: int):
|
||||||
|
"""
|
||||||
|
Получает full_name и username пользователя по ID из базы
|
||||||
|
|
||||||
|
Args:
|
||||||
|
date (str): Новая дата изменения.
|
||||||
|
user_id (int): Идентификатор пользователя в Telegram.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
username (str): username пользователя
|
||||||
|
full_name (str): full_name пользователя
|
||||||
|
"""
|
||||||
|
self.logger.info(
|
||||||
|
f"Запуск функции check_username_and_first_name: user_id={user_id}")
|
||||||
|
try:
|
||||||
|
self.connect()
|
||||||
|
self.cursor.execute("SELECT username FROM our_users WHERE user_id = ?", (user_id,))
|
||||||
|
username = self.cursor.fetchone()[0]
|
||||||
|
self.cursor.execute("SELECT full_name FROM our_users WHERE user_id = ?", (user_id,))
|
||||||
|
full_name = self.cursor.fetchone()[0]
|
||||||
|
self.logger.info(
|
||||||
|
f"Функция check_username_and_first_name успешно отработала: user_id={user_id}, username={username}, full_name={full_name}")
|
||||||
|
return username, full_name
|
||||||
|
except sqlite3.Error as error:
|
||||||
|
self.logger.error(f"Ошибка в функции get_username_and_first_name: {error}")
|
||||||
|
return None
|
||||||
|
finally:
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
def update_username_and_full_name(self, user_id: int, username: str, full_name: str):
|
||||||
|
"""
|
||||||
|
Обновляет full_name и username пользователя
|
||||||
|
|
||||||
|
Args:
|
||||||
|
username (str): username пользователя
|
||||||
|
full_name (str): full_name пользователя
|
||||||
|
user_id (int): Идентификатор пользователя в Telegram
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
True (bool): Если обновления прошли успешно
|
||||||
|
sqlite3. Error: Если произошла ошибка при выполнении запроса.
|
||||||
|
"""
|
||||||
|
self.logger.info(
|
||||||
|
f"Запуск функции update_username_and_full_name: user_id={user_id}, username={username}, full_name={full_name}")
|
||||||
|
try:
|
||||||
|
self.connect()
|
||||||
|
self.cursor.execute("UPDATE our_users SET username = ?, full_name = ? WHERE user_id = ?", (username, full_name, user_id,))
|
||||||
|
self.conn.commit()
|
||||||
|
self.logger.info(f"Функция update_username_and_full_name. Данные пользователя: user_id={user_id} успешно обновлены")
|
||||||
|
return True
|
||||||
|
except sqlite3.Error as error:
|
||||||
|
self.logger.error(f"Ошибка в функции update_username_and_full_name: {error}")
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
self.close()
|
||||||
|
|
||||||
def update_date_for_user(self, date: str, user_id: int):
|
def update_date_for_user(self, date: str, user_id: int):
|
||||||
"""
|
"""
|
||||||
#TODO: Не возвращается ошибка sqlite3. Error. Тест не перехватывает. Возвращается no such table: our_users
|
#TODO: Не возвращается ошибка sqlite3. Error. Тест не перехватывает. Возвращается no such table: our_users
|
||||||
@@ -785,6 +841,7 @@ class BotDB:
|
|||||||
return None
|
return None
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
print(error)
|
print(error)
|
||||||
|
raise
|
||||||
finally:
|
finally:
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -106,7 +106,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"Выбран пользователь: {user_id}. Выбери причину бана из списка или напиши ее в чат",
|
text=f"Выбран пользователь:\nid: {user_id}\nusername:{user_name}. Выбери причину бана из списка или напиши ее в чат",
|
||||||
reply_markup=markup)
|
reply_markup=markup)
|
||||||
await state.set_state('BAN_2')
|
await state.set_state('BAN_2')
|
||||||
else:
|
else:
|
||||||
@@ -120,8 +120,9 @@ async def process_ban_user(call: CallbackQuery, state: FSMContext):
|
|||||||
)
|
)
|
||||||
async def process_unlock_user(call: CallbackQuery):
|
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)
|
||||||
delete_user_blacklist(user_id)
|
delete_user_blacklist(user_id)
|
||||||
logger.info(f"Разблокирован пользователь с ID: {user_id}")
|
logger.info(f"Разблокирован пользователь с ID: {user_id}\nusername:{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)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -16,7 +16,7 @@ from helper_bot.middlewares.text_middleware import AlbumMiddleware
|
|||||||
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
|
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
|
from database.db import BotDB
|
||||||
@@ -52,7 +52,16 @@ BotDB = BotDB('database/tg-bot-database')
|
|||||||
)
|
)
|
||||||
async def handle_start_message(message: types.Message, state: FSMContext):
|
async def handle_start_message(message: types.Message, state: FSMContext):
|
||||||
try:
|
try:
|
||||||
|
user_id = message.from_user.id
|
||||||
|
full_name = message.from_user.full_name
|
||||||
|
username = message.from_user.username
|
||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
|
is_need_update = check_username_and_full_name(user_id, username, full_name)
|
||||||
|
if is_need_update:
|
||||||
|
BotDB.update_username_and_full_name(user_id, username, full_name)
|
||||||
|
await message.answer(f"Давно не виделись! Вижу что ты изменился;) Теперь буду звать тебя: {full_name} и ник @{username}")
|
||||||
|
await message.bot.send_message(chat_id=GROUP_FOR_LOGS, text=f'Для пользователя: {user_id} обновлены данные в БД.\nНовое имя: {full_name}\nНовый ник:{username}')
|
||||||
|
sleep(2)
|
||||||
await state.set_state("START")
|
await state.set_state("START")
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} "
|
f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} "
|
||||||
@@ -64,18 +73,15 @@ async def handle_start_message(message: types.Message, state: FSMContext):
|
|||||||
await message.answer_sticker(random_stick_hello)
|
await message.answer_sticker(random_stick_hello)
|
||||||
sleep(0.3)
|
sleep(0.3)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Произошла ошибка handle_start_message. Ошибка:{str(e)}")
|
logger.error(f"Произошла ошибка handle_start_message при получении стикеров. Ошибка:{str(e)}")
|
||||||
await message.bot.send_message(chat_id=IMPORTANT_LOGS,
|
await message.bot.send_message(chat_id=IMPORTANT_LOGS,
|
||||||
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
|
text=f"Произошла ошибка при получении стикеров: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
|
||||||
try:
|
try:
|
||||||
current_state = await state.get_state()
|
|
||||||
logger.info(
|
|
||||||
f"Получение данных для приветственного сообщения пользователю. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name} State - {current_state}")
|
|
||||||
user_id = message.from_user.id
|
user_id = message.from_user.id
|
||||||
first_name = message.from_user.first_name
|
|
||||||
full_name = message.from_user.full_name
|
full_name = message.from_user.full_name
|
||||||
is_bot = message.from_user.is_bot
|
|
||||||
username = message.from_user.username
|
username = message.from_user.username
|
||||||
|
first_name = message.from_user.first_name
|
||||||
|
is_bot = message.from_user.is_bot
|
||||||
language_code = message.from_user.language_code
|
language_code = message.from_user.language_code
|
||||||
current_date = datetime.now()
|
current_date = datetime.now()
|
||||||
date = current_date.strftime("%Y-%m-%d %H:%M:%S")
|
date = current_date.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|||||||
Binary file not shown.
@@ -3,7 +3,6 @@ from datetime import datetime, timedelta
|
|||||||
from aiogram import types
|
from aiogram import types
|
||||||
from aiogram.types import InputMediaPhoto
|
from aiogram.types import InputMediaPhoto
|
||||||
|
|
||||||
from helper_bot.keyboards import get_reply_keyboard_for_post
|
|
||||||
from database.db import BotDB
|
from database.db import BotDB
|
||||||
|
|
||||||
BotDB = BotDB('database/tg-bot-database')
|
BotDB = BotDB('database/tg-bot-database')
|
||||||
@@ -176,6 +175,11 @@ def delete_user_blacklist(user_id: int):
|
|||||||
return BotDB.delete_user_blacklist(user_id=user_id)
|
return BotDB.delete_user_blacklist(user_id=user_id)
|
||||||
|
|
||||||
|
|
||||||
|
def check_username_and_full_name(user_id: int, username: str, full_name: str):
|
||||||
|
username_db, full_name_db = BotDB.get_username_and_full_name(user_id=user_id)
|
||||||
|
return not username == username_db and full_name == full_name_db
|
||||||
|
|
||||||
|
|
||||||
def unban_notifier(self):
|
def unban_notifier(self):
|
||||||
# Получение сегодняшней даты в формате DD-MM-YYYY
|
# Получение сегодняшней даты в формате DD-MM-YYYY
|
||||||
current_date = datetime.now()
|
current_date = datetime.now()
|
||||||
|
|||||||
Reference in New Issue
Block a user