some fix with emoji function
This commit is contained in:
@@ -726,7 +726,6 @@ class BotDB:
|
|||||||
(emoji, user_id,))
|
(emoji, user_id,))
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
self.logger.info(f"Эмоджи обновлен для пользователя: user_id={user_id}")
|
self.logger.info(f"Эмоджи обновлен для пользователя: user_id={user_id}")
|
||||||
return None
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
self.logger.error(f"Ошибка обновления эмодзи для пользователя: {error}")
|
self.logger.error(f"Ошибка обновления эмодзи для пользователя: {error}")
|
||||||
return error
|
return error
|
||||||
@@ -744,21 +743,19 @@ class BotDB:
|
|||||||
True, если эмодзи такого нет, иначе False.
|
True, если эмодзи такого нет, иначе False.
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
None: В случае ошибки возвращается None
|
error: В случае ошибки возвращается error
|
||||||
"""
|
"""
|
||||||
self.logger.info(f"Запуск функции check_emoji_for_user: user_id={user_id}")
|
self.logger.info(f"Запуск функции check_emoji_for_user: user_id={user_id}")
|
||||||
try:
|
try:
|
||||||
self.connect()
|
self.connect()
|
||||||
self.cursor.execute("SELECT emoji FROM our_users WHERE user_id = ?", (user_id,))
|
self.cursor.execute("SELECT emoji FROM our_users WHERE user_id = ?", (user_id,))
|
||||||
pre_result = self.cursor.fetchone()
|
pre_result = self.cursor.fetchone()
|
||||||
if pre_result is not None:
|
# Возвращаем "Смайл не определен", если pre_result или pre_result[0] is None
|
||||||
print(f'Результат функции check_emoji_for_user - {str(pre_result[0])}')
|
result = pre_result[0] if pre_result else None
|
||||||
return str(pre_result[0])
|
return str(result) if result is not None else "Смайл еще не определен"
|
||||||
else:
|
|
||||||
return None
|
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
self.logger.error(f"Ошибка проверки эмодзи в базе: {error}")
|
self.logger.error(f"Ошибка проверки эмодзи в базе: {error}")
|
||||||
return None
|
return error
|
||||||
finally:
|
finally:
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
@@ -1079,7 +1076,7 @@ class BotDB:
|
|||||||
self.logger.error(f"Ошибка в функции set_user_id_and_message_id_for_voice_bot {str(e)}")
|
self.logger.error(f"Ошибка в функции set_user_id_and_message_id_for_voice_bot {str(e)}")
|
||||||
|
|
||||||
def get_user_id_by_file_name(self, file_name: str):
|
def get_user_id_by_file_name(self, file_name: str):
|
||||||
self.logger.info(f"Запуск функции get_user_id_by_file_name, идентификатор поста "
|
self.logger.info(f"Запуск функции get_user_id_by_file_name, идентификатор файла "
|
||||||
f"{file_name}")
|
f"{file_name}")
|
||||||
try:
|
try:
|
||||||
self.connect()
|
self.connect()
|
||||||
@@ -1087,11 +1084,25 @@ class BotDB:
|
|||||||
"FROM audio_message_reference WHERE file_name = ?",
|
"FROM audio_message_reference WHERE file_name = ?",
|
||||||
(file_name,))
|
(file_name,))
|
||||||
user_id = result.fetchone()[0]
|
user_id = result.fetchone()[0]
|
||||||
self.logger.info(f"Функция get_user_id_by_file_name получила author_id {user_id}")
|
self.logger.info(f"Функция get_user_id_by_file_name получила user_id {user_id}")
|
||||||
return user_id
|
return user_id
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Ошибка в функции get_user_id_by_file_name {str(e)}")
|
self.logger.error(f"Ошибка в функции get_user_id_by_file_name {str(e)}")
|
||||||
|
|
||||||
|
def get_date_by_file_name(self, file_name: str):
|
||||||
|
self.logger.info(f"Запуск функции get_date_by_file_name, идентификатор файла "
|
||||||
|
f"{file_name}")
|
||||||
|
try:
|
||||||
|
self.connect()
|
||||||
|
result = self.cursor.execute("SELECT date_added "
|
||||||
|
"FROM audio_message_reference WHERE file_name = ?",
|
||||||
|
(file_name,))
|
||||||
|
date_added = result.fetchone()[0]
|
||||||
|
self.logger.info(f"Функция get_date_by_file_name получила date_added {date_added}")
|
||||||
|
return date_added
|
||||||
|
except Exception as e:
|
||||||
|
self.logger.error(f"Ошибка в функции get_date_by_file_name {str(e)}")
|
||||||
|
|
||||||
def add_post_content_in_db(self, post_id: int, message_id: int, content_name: str, type_content: str):
|
def add_post_content_in_db(self, post_id: int, message_id: int, content_name: str, type_content: str):
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f"Запуск функции add_post_content_in_db: post_id={post_id}, message_id={message_id}, "
|
f"Запуск функции add_post_content_in_db: post_id={post_id}, message_id={message_id}, "
|
||||||
@@ -1162,7 +1173,7 @@ class BotDB:
|
|||||||
f"date_added = {date_added}")
|
f"date_added = {date_added}")
|
||||||
return None
|
return None
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
print(error)
|
self.logger.error(f"Ошибка при добавлении войса в базу: {error}")
|
||||||
raise
|
raise
|
||||||
finally:
|
finally:
|
||||||
self.close()
|
self.close()
|
||||||
|
|||||||
@@ -40,6 +40,17 @@ TEST = bdf.settings['Settings']['test']
|
|||||||
BotDB = bdf.get_db()
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
|
@private_router.message(
|
||||||
|
ChatTypeFilter(chat_type=["private"]),
|
||||||
|
Command("emoji")
|
||||||
|
)
|
||||||
|
async def handle_emoji_message(message: types.Message, state: FSMContext):
|
||||||
|
user_emoji = check_user_emoji(message)
|
||||||
|
await state.set_state("START")
|
||||||
|
if user_emoji is not None:
|
||||||
|
await message.answer(f'Твоя эмодзя - {user_emoji}', parse_mode='HTML')
|
||||||
|
|
||||||
|
|
||||||
@private_router.message(
|
@private_router.message(
|
||||||
ChatTypeFilter(chat_type=["private"]),
|
ChatTypeFilter(chat_type=["private"]),
|
||||||
Command("restart")
|
Command("restart")
|
||||||
@@ -50,7 +61,7 @@ async def handle_restart_message(message: types.Message, state: FSMContext):
|
|||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await state.set_state("START")
|
await state.set_state("START")
|
||||||
await update_user_info('love', message)
|
await update_user_info('love', message)
|
||||||
check_user_emoji(message.from_user.id)
|
check_user_emoji(message)
|
||||||
await message.answer('Я перезапущен!', reply_markup=markup, parse_mode='HTML')
|
await message.answer('Я перезапущен!', reply_markup=markup, parse_mode='HTML')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Произошла ошибка handle_restart_message. Ошибка:{str(e)}")
|
logger.error(f"Произошла ошибка handle_restart_message. Ошибка:{str(e)}")
|
||||||
@@ -70,7 +81,7 @@ async def handle_start_message(message: types.Message, state: FSMContext):
|
|||||||
try:
|
try:
|
||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await update_user_info('love', message)
|
await update_user_info('love', message)
|
||||||
check_user_emoji(message.from_user.id)
|
check_user_emoji(message)
|
||||||
await state.set_state("START")
|
await state.set_state("START")
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} "
|
f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} "
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -424,19 +424,21 @@ async def update_user_info(source: str, message: types.Message):
|
|||||||
BotDB.update_date_for_user(date, user_id)
|
BotDB.update_date_for_user(date, user_id)
|
||||||
|
|
||||||
|
|
||||||
def check_user_emoji(user_id: int):
|
def check_user_emoji(message: types.Message):
|
||||||
if BotDB.check_emoji_for_user(user_id=user_id) is None:
|
user_id = message.from_user.id
|
||||||
|
user_emoji = BotDB.check_emoji_for_user(user_id=user_id)
|
||||||
|
if user_emoji is None:
|
||||||
user_emoji = get_random_emoji()
|
user_emoji = get_random_emoji()
|
||||||
BotDB.update_emoji_for_user(user_id=user_id, emoji=user_emoji)
|
BotDB.update_emoji_for_user(user_id=user_id, emoji=user_emoji)
|
||||||
|
return user_emoji
|
||||||
|
|
||||||
|
|
||||||
def get_random_emoji():
|
def get_random_emoji():
|
||||||
attempts = 0
|
attempts = 0
|
||||||
while attempts < 100:
|
while attempts < 100:
|
||||||
print(attempts)
|
|
||||||
user_emoji = random.choice(emoji_list)
|
user_emoji = random.choice(emoji_list)
|
||||||
if not BotDB.check_emoji(user_emoji):
|
if not BotDB.check_emoji(user_emoji):
|
||||||
return user_emoji
|
return user_emoji
|
||||||
attempts += 1
|
attempts += 1
|
||||||
logger.error("Не удалось найти уникальный эмодзи после нескольких попыток.")
|
logger.error("Не удалось найти уникальный эмодзи после нескольких попыток.")
|
||||||
return None
|
return "Эмоджи не определен"
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
def get_message(username: str, type_message: str):
|
def get_message(username: str, type_message: str):
|
||||||
constants = {
|
constants = {
|
||||||
'HELLO_MESSAGE': "Привет, username!👋🏼&Меня зовут Виби, я бот канала 'Влюбленный Бийск'❤🤖"
|
'HELLO_MESSAGE': "Привет, username!👋🏼&Меня зовут Виби, я бот канала 'Влюбленный Бийск'❤🤖"
|
||||||
@@ -25,7 +23,7 @@ def get_message(username: str, type_message: str):
|
|||||||
"&Мы рассмотрим и ответим тебе в ближайшее время☺️❤️",
|
"&Мы рассмотрим и ответим тебе в ближайшее время☺️❤️",
|
||||||
"DEL_MESSAGE": "username, напиши свое обращение или предложение✍"
|
"DEL_MESSAGE": "username, напиши свое обращение или предложение✍"
|
||||||
"&Мы рассмотрим и ответим тебе в ближайшее время☺❤",
|
"&Мы рассмотрим и ответим тебе в ближайшее время☺❤",
|
||||||
"BYE_MESSAGE": "Если позднее захочешь предложить еще один пост или обратиться к админам с вопросом, то просто пришли в чат команду 👉 /start"
|
"BYE_MESSAGE": "Если позднее захочешь предложить еще один пост или обратиться к админам с вопросом, то просто пришли в чат команду 👉 /restart"
|
||||||
"&&И тебе пока!👋🏼❤️",
|
"&&И тебе пока!👋🏼❤️",
|
||||||
"USER_ERROR": "Увы, я не понимаю тебя😐💔 Выбери один из пунктов в нижнем меню, а затем пиши.",
|
"USER_ERROR": "Увы, я не понимаю тебя😐💔 Выбери один из пунктов в нижнем меню, а затем пиши.",
|
||||||
"QUESTION": "Сообщение успешно отправлено❤️ Ответим, как только сможем😉",
|
"QUESTION": "Сообщение успешно отправлено❤️ Ответим, как только сможем😉",
|
||||||
|
|||||||
@@ -1,68 +1,68 @@
|
|||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from aiogram import Router, F
|
from aiogram import Router, F
|
||||||
from aiogram.types import CallbackQuery
|
from aiogram.types import CallbackQuery
|
||||||
|
|
||||||
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
from helper_bot.utils.base_dependency_factory import BaseDependencyFactory
|
||||||
|
|
||||||
callback_router = Router()
|
callback_router = Router()
|
||||||
|
|
||||||
bdf = BaseDependencyFactory()
|
bdf = BaseDependencyFactory()
|
||||||
|
|
||||||
GROUP_FOR_LOGS = bdf.settings['Telegram']['group_for_logs']
|
GROUP_FOR_LOGS = bdf.settings['Telegram']['group_for_logs']
|
||||||
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
GROUP_FOR_POST = bdf.settings['Telegram']['group_for_posts']
|
||||||
IMPORTANT_LOGS = bdf.settings['Telegram']['important_logs']
|
IMPORTANT_LOGS = bdf.settings['Telegram']['important_logs']
|
||||||
PREVIEW_LINK = bdf.settings['Telegram']['preview_link']
|
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 = bdf.get_db()
|
BotDB = bdf.get_db()
|
||||||
|
|
||||||
|
|
||||||
@callback_router.callback_query(
|
@callback_router.callback_query(
|
||||||
F.data == "save"
|
F.data == "save"
|
||||||
)
|
)
|
||||||
async def save_voice_message(call: CallbackQuery):
|
async def save_voice_message(call: CallbackQuery):
|
||||||
file_name = ''
|
file_name = ''
|
||||||
file_id = 1
|
file_id = 1
|
||||||
user_id = BotDB.get_user_id_by_message_id_for_voice_bot(call.message.message_id)
|
user_id = BotDB.get_user_id_by_message_id_for_voice_bot(call.message.message_id)
|
||||||
# Проверяем что запись о файле есть в базе данных
|
# Проверяем что запись о файле есть в базе данных
|
||||||
is_having_audio_from_user = BotDB.get_last_user_audio_record(user_id=user_id)
|
is_having_audio_from_user = BotDB.get_last_user_audio_record(user_id=user_id)
|
||||||
if is_having_audio_from_user is False:
|
if is_having_audio_from_user is False:
|
||||||
# Если нет, то генерируем имя файла
|
# Если нет, то генерируем имя файла
|
||||||
file_name = f'message_from_{user_id}_number_{file_id}'
|
file_name = f'message_from_{user_id}_number_{file_id}'
|
||||||
else:
|
else:
|
||||||
# Иначе берем последнюю запись из БД, добавляем к ней 1, и создаем новую запись
|
# Иначе берем последнюю запись из БД, добавляем к ней 1, и создаем новую запись
|
||||||
file_name = BotDB.get_path_for_audio_record(user_id=user_id)
|
file_name = BotDB.get_path_for_audio_record(user_id=user_id)
|
||||||
file_id = BotDB.get_id_for_audio_record(user_id) + 1
|
file_id = BotDB.get_id_for_audio_record(user_id) + 1
|
||||||
path = Path(f'voice_users/{file_name}.ogg')
|
path = Path(f'voice_users/{file_name}.ogg')
|
||||||
if path.exists():
|
if path.exists():
|
||||||
file_name = f'message_from_{user_id}_number_{file_id}'
|
file_name = f'message_from_{user_id}_number_{file_id}'
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
# Собираем инфо о сообщении
|
# Собираем инфо о сообщении
|
||||||
time_UTC = int(time.time())
|
time_UTC = int(time.time())
|
||||||
date_added = datetime.fromtimestamp(time_UTC)
|
date_added = datetime.fromtimestamp(time_UTC)
|
||||||
|
|
||||||
# Сохраняем в базку
|
# Сохраняем в базку
|
||||||
BotDB.add_audio_record(file_name, user_id, date_added, 0, file_id)
|
BotDB.add_audio_record(file_name, user_id, date_added, 0, file_id)
|
||||||
|
|
||||||
file_info = await call.message.bot.get_file(file_id=call.message.voice.file_id)
|
file_info = await call.message.bot.get_file(file_id=call.message.voice.file_id)
|
||||||
downloaded_file = await call.message.bot.download_file(file_path=file_info.file_path)
|
downloaded_file = await call.message.bot.download_file(file_path=file_info.file_path)
|
||||||
with open(f'voice_users/{file_name}.ogg', 'wb') as new_file:
|
with open(f'voice_users/{file_name}.ogg', 'wb') as new_file:
|
||||||
new_file.write(downloaded_file.read())
|
new_file.write(downloaded_file.read())
|
||||||
|
|
||||||
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)
|
||||||
await call.answer(text='Сохранено!', cache_time=3)
|
await call.answer(text='Сохранено!', cache_time=3)
|
||||||
|
|
||||||
|
|
||||||
@callback_router.callback_query(
|
@callback_router.callback_query(
|
||||||
F.data == "delete"
|
F.data == "delete"
|
||||||
)
|
)
|
||||||
async def delete_voice_message(call: CallbackQuery):
|
async def delete_voice_message(call: CallbackQuery):
|
||||||
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
# Получаем из базы автора + отправляем сообщение + удаляем сообщение из предложки
|
||||||
|
|
||||||
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)
|
||||||
await call.answer(text='Удалено!', cache_time=3)
|
await call.answer(text='Удалено!', cache_time=3)
|
||||||
|
|||||||
@@ -37,13 +37,24 @@ voice_router.message.middleware(BlacklistMiddleware())
|
|||||||
async def restart_function(message: types.Message, state: FSMContext):
|
async def restart_function(message: types.Message, state: FSMContext):
|
||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await update_user_info('voice', message)
|
await update_user_info('voice', message)
|
||||||
check_user_emoji(message.from_user.id)
|
check_user_emoji(message)
|
||||||
markup = get_main_keyboard()
|
markup = get_main_keyboard()
|
||||||
await message.answer(text='Я перезапущен!',
|
await message.answer(text='Я перезапущен!',
|
||||||
reply_markup=markup)
|
reply_markup=markup)
|
||||||
await state.set_state('START')
|
await state.set_state('START')
|
||||||
|
|
||||||
|
|
||||||
|
@voice_router.message(
|
||||||
|
ChatTypeFilter(chat_type=["private"]),
|
||||||
|
Command("emoji")
|
||||||
|
)
|
||||||
|
async def handle_emoji_message(message: types.Message, state: FSMContext):
|
||||||
|
user_emoji = check_user_emoji(message)
|
||||||
|
await state.set_state("START")
|
||||||
|
if user_emoji is not None:
|
||||||
|
await message.answer(f'Твоя эмодзя - {user_emoji}', parse_mode='HTML')
|
||||||
|
|
||||||
|
|
||||||
@voice_router.message(
|
@voice_router.message(
|
||||||
ChatTypeFilter(chat_type=["private"]),
|
ChatTypeFilter(chat_type=["private"]),
|
||||||
Command("help")
|
Command("help")
|
||||||
@@ -51,7 +62,6 @@ async def restart_function(message: types.Message, state: FSMContext):
|
|||||||
async def help_function(message: types.Message, state: FSMContext):
|
async def help_function(message: types.Message, state: FSMContext):
|
||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await update_user_info('voice', message)
|
await update_user_info('voice', message)
|
||||||
check_user_emoji(message.from_user.id)
|
|
||||||
await message.answer(
|
await message.answer(
|
||||||
text='Скорее всего ответы на твои вопросы есть здесь, ознакомься: https://telegra.ph/Instrukciya-k-botu-Golosa-Bijsk-10-11-2'
|
text='Скорее всего ответы на твои вопросы есть здесь, ознакомься: https://telegra.ph/Instrukciya-k-botu-Golosa-Bijsk-10-11-2'
|
||||||
'\nЕсли это не поможет, пиши в личку: @Kerrad1', disable_web_page_preview=not PREVIEW_LINK)
|
'\nЕсли это не поможет, пиши в личку: @Kerrad1', disable_web_page_preview=not PREVIEW_LINK)
|
||||||
@@ -66,7 +76,7 @@ async def start(message: types.Message, state: FSMContext):
|
|||||||
await state.set_state("START")
|
await state.set_state("START")
|
||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await update_user_info('voice', message)
|
await update_user_info('voice', message)
|
||||||
check_user_emoji(message.from_user.id)
|
user_emoji = check_user_emoji(message)
|
||||||
try:
|
try:
|
||||||
name_stick_hello = list(Path('Stick').rglob('Hello_*'))
|
name_stick_hello = list(Path('Stick').rglob('Hello_*'))
|
||||||
random_stick_hello = random.choice(name_stick_hello)
|
random_stick_hello = random.choice(name_stick_hello)
|
||||||
@@ -107,11 +117,17 @@ async def start(message: types.Message, state: FSMContext):
|
|||||||
parse_mode='html', reply_markup=markup,
|
parse_mode='html', reply_markup=markup,
|
||||||
disable_web_page_preview=not PREVIEW_LINK)
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
time.sleep(0.8)
|
time.sleep(0.8)
|
||||||
|
await message.answer(text=f"Любые войсы будут помечены эмоджи. <b>Твой эмоджи - </b>{user_emoji}"
|
||||||
|
f"Таким эмоджи будут помечены твои сообщения для других "
|
||||||
|
f"Но другие люди не узнают кто за каким эмоджи скрывается:)",
|
||||||
|
parse_mode='html', reply_markup=markup,
|
||||||
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
|
time.sleep(0.8)
|
||||||
await message.answer(text="Так же можешь ознакомиться с инструкцией к боту по команде /help",
|
await message.answer(text="Так же можешь ознакомиться с инструкцией к боту по команде /help",
|
||||||
parse_mode='html', reply_markup=markup,
|
parse_mode='html', reply_markup=markup,
|
||||||
disable_web_page_preview=not PREVIEW_LINK)
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
time.sleep(0.8)
|
time.sleep(0.8)
|
||||||
await message.answer(text="<b>ну всё, достаточно инструкций. записывайся! Микрофон твой - </b> 🎤",
|
await message.answer(text="<b>Ну всё, достаточно инструкций. записывайся! Микрофон твой - </b> 🎤",
|
||||||
parse_mode='html', reply_markup=markup,
|
parse_mode='html', reply_markup=markup,
|
||||||
disable_web_page_preview=not PREVIEW_LINK)
|
disable_web_page_preview=not PREVIEW_LINK)
|
||||||
|
|
||||||
@@ -124,7 +140,6 @@ async def refresh_listen_function(message: types.Message, state: FSMContext):
|
|||||||
await message.forward(chat_id=GROUP_FOR_LOGS)
|
await message.forward(chat_id=GROUP_FOR_LOGS)
|
||||||
await update_user_info('voice', message)
|
await update_user_info('voice', message)
|
||||||
markup = get_main_keyboard()
|
markup = get_main_keyboard()
|
||||||
check_user_emoji(message.from_user.id)
|
|
||||||
BotDB.delete_listen_count_for_user(message.from_user.id)
|
BotDB.delete_listen_count_for_user(message.from_user.id)
|
||||||
await message.answer(
|
await message.answer(
|
||||||
text='Прослушивания очищены. Можешь начать слушать заново🤗', disable_web_page_preview=not PREVIEW_LINK,
|
text='Прослушивания очищены. Можешь начать слушать заново🤗', disable_web_page_preview=not PREVIEW_LINK,
|
||||||
@@ -195,20 +210,27 @@ async def standup_listen_audio(message: types.Message):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'Не удалось получить последнюю дату {e}')
|
logger.error(f'Не удалось получить последнюю дату {e}')
|
||||||
else:
|
else:
|
||||||
# Получаем эмоджи пользователя
|
# Получаем ссылку на аудио сообщение пользователя
|
||||||
number_element = random.randint(0, len(list_audio) - 1)
|
number_element = random.randint(0, len(list_audio) - 1)
|
||||||
audio_for_user = check_audio[number_element]
|
audio_for_user = check_audio[number_element]
|
||||||
|
|
||||||
# Получаем автора записи + эмодзи по нему
|
# Получаем автора записи + эмодзи по нему
|
||||||
user_id = BotDB.get_user_id_by_file_name(audio_for_user)
|
user_id = BotDB.get_user_id_by_file_name(audio_for_user)
|
||||||
|
date_added = BotDB.get_date_by_file_name(audio_for_user)
|
||||||
|
# TODO: Мейби не напрямую ходить?
|
||||||
|
# user_emoji = BotDB.check_emoji_for_user(user_id)
|
||||||
user_emoji = BotDB.check_emoji_for_user(user_id)
|
user_emoji = BotDB.check_emoji_for_user(user_id)
|
||||||
|
|
||||||
path = Path(f'voice_users/{audio_for_user}.ogg')
|
path = Path(f'voice_users/{audio_for_user}.ogg')
|
||||||
# voice = open(path, 'rb')
|
|
||||||
voice = FSInputFile(path)
|
voice = FSInputFile(path)
|
||||||
|
|
||||||
# Маркируем сообщение как прослушанное
|
# Маркируем сообщение как прослушанное
|
||||||
BotDB.mark_listened_audio(audio_for_user, user_id=message.from_user.id)
|
BotDB.mark_listened_audio(audio_for_user, user_id=message.from_user.id)
|
||||||
|
|
||||||
|
# Формируем подпись
|
||||||
if user_emoji:
|
if user_emoji:
|
||||||
await message.bot.send_voice(chat_id=message.chat.id, voice=voice, caption=user_emoji, reply_markup=markup)
|
caption = f'{user_emoji}\nДата записи: {date_added}'
|
||||||
else:
|
else:
|
||||||
await message.bot.send_voice(chat_id=message.chat.id, voice=voice, reply_markup=markup)
|
caption = f'Дата записи: {date_added}'
|
||||||
|
await message.bot.send_voice(chat_id=message.chat.id, voice=voice, caption=caption, reply_markup=markup)
|
||||||
await message.answer(text=f'Осталось непрослушанных: <b>{len(check_audio) - 1}</b>', reply_markup=markup)
|
await message.answer(text=f'Осталось непрослушанных: <b>{len(check_audio) - 1}</b>', reply_markup=markup)
|
||||||
|
|||||||
Reference in New Issue
Block a user