@Denta

Помощь не знающему с async в python. Возможно ли убрать зависание дискорд бота с помощью asyncio?

Здраствуйте
Я начинающий программист по этому прошу не сильно орать на меня и мой говнокод (ну и простите за ошибки, я плохо знаю русский язык на письме).
Суть проблемы.
Я пишу discord бота используя discord py которая в свою очередь использует asyncio. До этого я не сильно задумывался как работает async/await и по этому писал код с async перед def и await перед действием бота, только потому что так надо.
Пример: KDWtNTQ.png

Но теперь в боте появился функционал который качает фотографии с инстаграмма с помощью библиотеки instaloader и на момент загрузки всего контента бот зависает до момента выполнения функции.

@tasks.loop(seconds=180)
async def parse_stories():

    for profile in insta.profiles:
        # функция get_new_downloaded возвращает список файлов либо False если нету изменений
        # в качестве аргументов принимает путь к папке с файлами, функцию и профиль человека
        new_stories = get_new_downloaded(f'./{profile} stories/',
                                         insta.download_all_stories_by_profile, insta.profiles[profile])
        print(profile)
        if new_stories != False:
            # сервер и канал куда будут отправляться все файлы
            guild = client.get_guild(693165230934458380)
            channel = guild.get_channel(729607318534225921)
            for story in new_stories:
                await channel.send(file=discord.File(f'./{profile} stories/{story}'))
                logger.info(f'Bot send stories success! ./{profile} stories/{story}')


Возможно ли это исправить с помощью асинхронности и какие статьи мне помогут для решения данной проблемы
  • Вопрос задан
  • 714 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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