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()


Ответы (0 шт):