RuntimeError: There is no current event loop in thread 'WorkerThread1'

пишу бот спамер для для телеграм россылки по чатам спамер на telethon написан а вот бот на telebot я чутка код изменил под капотом в auth.py (telethon) вот первое изменение: phone: typing.Callable[[], str] = lambda: api_namber1,

вот второе:

 if code_callback is None:

            def code_callback():
                time.sleep(32)
                return codee

вот код бота:

import telebot








API_TOKEN = ('5089550155:AAHPB2Ud-WrDKKwb7FiPOphSVuNH41LvATw')


bot = telebot.TeleBot(API_TOKEN)

@bot.message_handler(commands=["start"])
def start(message):
    bot.send_message(message.chat.id, f'<b>тебя зовут {message.from_user.first_name} З</b>', parse_mode='html')



@bot.message_handler()
def info(message):
    if message.text == 'привет':
        msg = bot.send_message(message.chat.id, 'Введите api_id:')
        bot.register_next_step_handler(msg, input_promocod)

def input_promocod(message):
    s = message.text
    with open("sdf.py", "a+") as f:
        f.write(f"api_id1 ='{s}'\n")
        msg1 = bot.send_message(message.chat.id, 'Введите api_hash:')
        f.close()
        bot.register_next_step_handler(msg1, input_promocod1)

def input_promocod1(message):
    s = message.text
    with open("sdf.py", "a+") as f:
        f.write(f"api_hash1 ='{s}'\n")
    msg1 = bot.send_message(message.chat.id, 'Введите namber:')
    f.close()
    bot.register_next_step_handler(msg1, input_promocod2)

def input_promocod2(message):
    s = message.text
    with open("sdf.py", "a+") as f:
        f.write(f"api_namber1 = '{s}'\n")
        f.close()
        msg1 = bot.send_message(message.chat.id, 'bpbp[bpbb')


        import sd
        print('успешно')

вот код спамера:

from telethon.sync import TelegramClient, errors
from time import sleep
from telethon.errors.rpcerrorlist import MessageTooLongError, PeerIdInvalidError
import dbm
from colorama import init, Fore, Back, Style
from sdf import api_id1, api_hash1

print('Наш telegram канал - https://t.me/slivmenss')

init(autoreset=True)



def dbm_base():
    file = dbm.open( 'api.dbm' ,'c')
    try:
        file['api_id']
    except:
        file['api_id'] = (api_id1)
        file['api_hash'] = (api_hash1)
    file.close()
    return dbm.open( 'api.dbm' ,'r')
file = dbm_base()
api_id = int(file['api_id'].decode())
api_hash = file['api_hash'].decode()
print(api_id1, api_hash)
client = TelegramClient('client', api_id, api_hash)



def dialog_sort(dialog):
    return dialog.unread_count
    
    
def spammer(client):
    def create_groups_list(groups=[]):
        for dialog in client.iter_dialogs():
            if dialog.is_group:
                if dialog.unread_count >= 5:
                    groups.append(dialog) 
        return groups

    with client:
        try:
            timer = int(input('@slivmenss - Введите время сна между циклами сообщений(в секундах): '))
        except:
            print(Fore.RED + '@slivmenss - Вводите цифрами, время должно быть в секундах!')
        for m in client.iter_messages('me', 1):
            msg = m
        print(Fore.GREEN + '@slivmenss - Сообщение выбрано:\n', msg)
        while True:
            groups = create_groups_list()
            groups.sort(key=dialog_sort, reverse=True)
            for g in groups[:90]:
                try:
                    client.forward_messages(g, msg, 'me')
                    print(Fore.GREEN + g.name + ' сообщение отправлено! - @slivmenss')
                    
                except errors.ForbiddenError as o:
                    client.delete_dialog(g)
                    if g.entity.username != None:
                        print(Fore.RED + f'Error: {o.message} Аккаунт покинул @{g.entity.username}')
                    else:
                        print(Fore.RED + f'Error: {o.message} Аккаунт покинул {g.name}')
                except errors.FloodError as e:
                    print(Fore.RED + f'Error: {e.message} Ожидание {e.seconds} секунд')
                    sleep(e.seconds)
                except PeerIdInvalidError:
                    client.delete_dialog(g)
                except MessageTooLongError:
                    print(Fore.RED + f'Message was too long ==> {g.name}')                                     
                except errors.BadRequestError as i:
                    print(Fore.RED + f'Error: {i.message}')
                except errors.RPCError as a:
                    print(Fore.RED + f'Error: {a.message}')
            print(Fore.GREEN + 'Рассылка закончена!')
            print(Fore.GREEN + 'Следущая рассылка через: ' + str(timer) + 'сек.' )
            sleep(timer)
            groups.clear()
if __name__ == '__main__':
    spammer(client)

вот ошибка

 File "C:\Users\Рома\Desktop\pythonProject6\venv\lib\site-packages\telethon\client\telegrambaseclient.py", line 474, in loop    
    return asyncio.get_event_loop()
  File "C:\Users\Рома\AppData\Local\Programs\Python\Python39\lib\asyncio\events.py", line 642, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'WorkerThread1'.

Process finished with exit code 1

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