コード例 #1
0
ファイル: stopgame.py プロジェクト: alex13sh/telegrambot_habr
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'])
コード例 #2
0
ファイル: util.py プロジェクト: edementyev/regbot
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,