Telethon ошибка RuntimeError: There is no current event loop in thread 'Thread-2 (process_request_thread)'
Всем привет! Есть файл с классом парсера, который использует телетон. При вызове сталкиваюсь с ошибкой. Плохо понимаю асинхронность и телетон. Прошу помочь исправить.
Код ошибки
RuntimeError: There is no current event loop in thread 'Thread-2 (process_request_thread)'.
Код вызова
@app.route('/Home/Сustomization', methods=['GET', 'POST'])
def customization():
msg = ''
if 'loggedin' in session:
if request.method == 'POST':
ArticlesTg = TgParse.TgParse.Parse()
return redirect(url_for('login'))
Код файла
import asyncio
import configparser
from datetime import datetime
from time import sleep
from telethon.sync import TelegramClient
# класс для работы с сообщениями
from telethon.tl.functions.messages import GetHistoryRequest
# Считываем учетные данные
config = configparser.ConfigParser()
config.read("config.ini")
# Присваиваем значения внутренним переменным
class TgParse:
def Parse(self):
api_id = config['Telegram']['api_id']
api_hash = config['Telegram']['api_hash']
username = config['Telegram']['username']
#loop = asyncio.loop = asyncio.new_event_loop(TelegramClient(username, api_id, api_hash))
#client = asyncio.set_event_loop(loop)
client = TelegramClient(username, api_id, api_hash)
client.start()
offset_msg = 0 # номер записи, с которой начинается считывание
limit_msg = 10 # максимальное число записей, передаваемых за один раз
channel = 'https://t.me/SecLabNews'
all_messages = [] # список всех сообщений
total_count_limit = 100 # поменяйте это значение, если вам нужны не все сообщения
while True:
history = client(GetHistoryRequest(
peer=channel,
offset_id=offset_msg,
offset_date=datetime(2023, 1, 3), # До какой даты не включительно
# offset_date=None,
add_offset=0,
limit=limit_msg, max_id=0, min_id=0,
hash=0))
if not history.messages:
break
messages = history.messages
print('1234')
for message in messages:
# print(message.to_dict()['date'].strftime('%Y-%m-%d'))
if message.to_dict()['date'].strftime('%Y-%m-%d') > ('2022-12-31'): # Сюда дату начальную
print(message.to_dict()['date'])
print(message.to_dict())
all_messages.append(message.to_dict())
sleep(1000)
# else: print('12341234')
offset_msg = messages[len(messages) - 1].id
total_messages = len(all_messages)
if total_count_limit != 0 and total_messages >= total_count_limit:
break
return 1
TgParse = TgParse()