# вот основной поток в котором происходит обработка
def sounndcloud_downdload (url, user_id):
#тут происходит проверка существования ссылки, если он есть - то идём дальше, если нет - то ошибка
sc_api = SoundcloudAPI(client_id='0BkysEEs4PncmjybpuEn3MHCx8nEnDUc')
track = sc_api.resolve(url)
# в этом моменте мне нужно запустить индикатор
sent_message = bot.send_message(user_id, 'Идёт конвертация . ') #вот отправка сообщения
status = True
thread_indicator = threading.Thread(target=indicator_edit, args=(sent_message.message_id, user_id, status))
thread_indicator.start()
# тут начинается сама обработка
assert type(track) is Track
filename = f'./{track.artist} - {track.title}.mp3'
with open(filename, 'wb+') as fp:
track.write_mp3_to(fp)
# это последняя часть, отправка файла
send_audio(filename, user_id)
<i># thread.kill() здесь мне нужно остановить мой индикатор</i>
# вот сам индикатор. Тут идёт изменение сообщения.
# Я не знаю как мне остановить этот цикл while в тот момент, когда обработка основной функцией # завершиться.
def indicator_edit (message_id, user_id, status, stop_event):
while status:
for i in range(1, 4):
text = f'Идёт конвертация ' + '. ' * i
bot.edit_message_text(chat_id=user_id, message_id=message_id, text=text)
#url = (сокращённая ссылка)
r = requests.head(url, allow_redirects=True)
print(r.url) # output: изначальная ссылка