@robben_55

Одна функция блокирует работу другой?

Здраствуйте! Я учусь писать телеграм боты. Делаю это на aiogram. По моей задумке, есть база в которой хранятся даты выхода игр, и каждый день в 00-00 будет идти проверка базы и если дата выхода игры равна актуальной дате(сегодня),то сработает функция и оповестит об этом в групповом чате.

Триггер интеграции бота с групповым чатом слово "Соединить"

@dp.message_handler(text = ['Соединить'])
async def ttttttt(message: Message):
group_id = message.chat.id #узнает айди группового чата
await message.answer("OK") # тестовый текст чтобы знать сработал ли триггер
reply1 = await check_the_creator_db(group_id) #идет вызов функции чтобы узнать регистрировался ли этот юзер в моем боте
if reply1 != False: #функция возвращает не false,затем идет новый вызов функции и туда отправляется айди группового чата и юзера который хочет завершить интеграцию
await scheduller_f(group_id, reply1)

#ниже функция проверяет в базе айди юзеров, если этот юзер НЕ ПОКИНУЛ эту группу , вернется переменная с его айди
async def check_the_creator_db(group_id):
os.chdir(root_path)
db = await aiosqlite.connect('id.db')
cursor = await db.execute("SELECT * FROM id_list")
grab_data = await cursor.fetchall()
for item in grab_data:
member = await bot.get_chat_member(group_id, item[0])
if member.status != "LEFT":
return item[0]
else:
return False

#это планировщик, который каждый день в 00-01 будет выполнять функцию send_msg
async def scheduller_f(group_id, user_id):
aioschedule.every().day.at("00:01").do(send_msg,group_ids = group_id,user_ids=user_id )
while True:
await aioschedule.run_pending()
time.sleep(1

async def send_msg(group_ids, user_ids):
os.chdir(my_path+str(user_ids))
x = datetime.datetime.now()
db = await aiosqlite.connect(f'{user_ids}.db')
cursor = await db.execute("SELECT * FROM main_data")
grab_data = await cursor.fetchall()
for val in grab_data:
name = val[0]
temp = val[2]
split = temp.split(".")
date = split[0]
month = split[1]
if date == x.strftime("%d") and month == x.strftime("%m"):
await bot.send_photo(group_ids, open('C:\\Users\\User\\Desktop\\python\\telegram_bot\\photos\\14956466_5df3bb67c65f02eb2190c71c752fe5a4_800.jpg', 'rb'), caption=f'today will released that game {name}.')
else:
continue

#для админа чтобы видеть количество пользователей
@dp.message_handler(user_id = admin_id, commands=["user_count"])
async def count_users(message: Message):
os.chdir(root_path)
db = await aiosqlite.connect('id.db')
cursor = await db.execute("SELECT COUNT(*) from id_list")
num = await cursor.fetchone()
await message.answer(f'Общее количество зарегистрированных пользователей = {num[0]}')

Проблема появляется после того, как в группе написать слово "Соединить" выполнение других функций перестает работать. Где я совершил ошибку уважаемые ? Почему после слова соединить все блокируется и не работает. Дайте советы пожалуйста
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы