Проблема в Telethon совместно с Flask
Суть проблемы: есть простенькое приложение на фласке, в другом файле лежит скрипт с использованием telethon, при вводе в приложении текста, этот текст отправляется определённому пользователю, но в моём коде оно отправляет только один раз, при попытке ввести ещё раз вылетает RuntimeError: The asyncio event loop must not change after connection (see the FAQ for details)
Нужно, чтобы при каждом получении данных функция отрабатывала
Вот код самого приложения на flask:
from flask import Flask, render_template, request, url_for, redirect
from message_to_user import main
import asyncio
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def redirectFor():
return redirect(url_for('getData'))
@app.route('/contact', methods=['GET', 'POST'])
def getData() -> str:
if request.method == 'POST':
text = request.form['text']
asyncio.run(main(text))
return render_template('base.html')
if __name__ == '__main__':
app.run(debug=True)
А вот функция на telethon:
import configparser
from telethon import TelegramClient
from telethon.tl.functions.users import GetFullUserRequest
config = configparser.ConfigParser()
config.read('config.ini')
API_ID = int(config['Telegram']['API_ID'])
API_HASH = config['Telegram']['API_HASH']
bot_token = config['Telegram']['bot_token']
client = TelegramClient('bot', API_ID, API_HASH)
async def get_user(username):
user = await client(GetFullUserRequest(username))
return user
async def main(text):
await client.start(bot_token=bot_token)
user = await get_user('username')
user_id = user.full_user.id
await client.send_message(user_id, text)
await client.disconnect()