async def scheduled(wait_for): while True: await asyncio.sleep(wait_for) print("scheduled") # проверяем наличие новых игр new_games = sg.new_games() if (new_games): # если игры есть, переворачиваем список и итерируем print("New Game") new_games.reverse() for ng in new_games: # парсим инфу о новой игре nfo = sg.game_info(ng) print("Game Info:", nfo) await asyncio.sleep(2) # получаем список подписчиков бота subscriptions = get_users_sub("StopGame") print("subs:", subscriptions) # отправляем всем новость #with open(sg.download_image(nfo['image']), 'rb') as photo: #a = urlparse(nfo['image']) #print("link a:", a) #filename = + os.path.basename(a.path) photo = InputFile.from_url(nfo['image']) print("Open Photo") for s in subscriptions: print("Send to user_id:", s) await asyncio.sleep(1) await bot.send_photo( s[0], photo, caption= f"{nfo['title']}\nОценка: {nfo['score']}\n{nfo['excerpt']}\n\n{nfo['link']}", disable_notification=True) # обновляем ключ sg.update_lastkey(nfo['id'])
RANDOM_KITTEN_JPG = 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Red_Kitten_01.jpg/' \ '320px-Red_Kitten_01.jpg' def get_media_obj(enroll_complete, file_type, file_id, caption): if enroll_complete: if file_type == 'photo': obj = InputMediaPhoto(file_id, caption=caption) else: obj = InputMediaDocument(file_id, caption=caption) else: obj = InputMediaDocument(kitty, caption=caption) return obj kitty = InputFile.from_url(RANDOM_KITTEN_JPG, 'Ой! Ещё нет информации о платеже!.jpg') async def show_events_task_admin(message: types.Message, archived=False): with session_scope() as session: events_q = session.query(Event) if archived: m_text = MESSAGES['admin_archive'] events_q = events_q.filter(Event.status == 10) else: m_text = MESSAGES['admin_events'] events_q = events_q.filter(Event.status <= 9) events_q = events_q.order_by(Event.edit_datetime.desc()) events_keyboard = events_reply_keyboard(events_q.all(), admin_mode=True,