Как сделать цикл for параллельным? Python
Писал код для скачивания постов с профиля инстаграм для телеграмм бота. Проблема с циклом for, я пытался сделать так, чтобы пользователь мог из телеграмма прервать цикл, но из-за того, что цикл в это время работает, обработка ответа не происходит. Как это исправить?
Код:
class Insta():
@dp.callback_query_handler(text='Да')
async def inline_kb_answer_callback_handler(query: types.CallbackQuery):
answer_data = query.data
await query.answer(f'Ты ответил: {answer_data!r}')
if answer_data == 'Да':
text = 'Цикл Остановлен'
else:
text = f'Unexpected callback data {answer_data!r}!'
await bot.send_message(query.from_user.id, text)
@dp.message_handler(commands=['grab'])
async def inst(message: types.Message):
Insta.messages_list = {}
Insta.messages_list.clear()
Insta.messages_list["messages"] = str(message.get_args())
keyboard_markup = types.InlineKeyboardMarkup(row_width=3)
text_and_data = (('Да!', 'Да'),)
row_btns = (types.InlineKeyboardButton(text, callback_data=data) for text, data in text_and_data)
keyboard_markup.row(*row_btns)
await message.reply("Остановить цикл?", reply_markup=keyboard_markup)
try:
profile = instaloader.Profile.from_username(bt.context, Insta.messages_list["messages"])
posts = profile.get_posts()
for index, post in enumerate(posts, 1):#цикл, который нужно остановить
bt.download_post(post, target=f"{profile.username}_{index}")
except:
await message.reply("Ошибка")