• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Юзербот для телеграма на основе GPT4free, Telethon

rand

CooL-Lamer
Эксперт
Регистрация
24.05.2023
Сообщения
581
Реакции
1 152
Депозит
0.07 Ł и др.
Всем привет, решил тут недавно порофлить в каналах политических срачей, и написал простенького бота на основе 4GPTfree, отвечает в грубой форме, но Prompt вы всегда сможете изменить на ваше усмотрение. Также если в будущем провайдер который прописан в коде будет не работать, нужно будет изменить переменную:
Код:
provider=g4f.Provider.Blackbox
Актуальный список фришных провайдеров которые находятся в активе здесь (но из России очень много не работают, придется использовать VPN или прокси который нужно дописать в код):

Устанавливаем:
pip install telethon
pip install g4f

Python:
import asyncio
from telethon import TelegramClient, events, sync, utils
from telethon.errors import SessionPasswordNeededError
import g4f
import random as rand

# Получаем параметры для подключения к API по адресу:
# api_hash from https://my.telegram.org, under API Development, данные в переменных ниже указаны левые для понимания что нужно вписывать.
api_id = 24555512
api_hash = '1eabd55555d2977fc66894e3a1373e91'
chat = -1001455572595 # Чат айди сами загуглите как искать (или с клиента Telegram на PC заходите в продвинутые настройки-экспериментальные настройки-включаете отображение ID в профиле и прибавляете -100 в начале, если не сработает прописываете айди которое указано в профиле)

client = TelegramClient('komandos_kolya', api_id, api_hash, device_model="AMD B550", system_version="Windows 10")
client.connect()
phone = input("Enter phone: ")
client.send_code_request(phone, force_sms=False)
value = input("Enter login code: ")
try:
    me = client.sign_in(phone, code=value)
#Если на акке выставленно 2Ф, будет запрос на авторизацию
except SessionPasswordNeededError:
    password = input("Enter password: ")
    me = client.sign_in(password=password)


@client.on(events.NewMessage(chats=[chat]))
async def handler(event):
    user_text = event.raw_text
    print(event.raw_text) # Выводим все что пишут в чат
    try:
        response = await g4f.ChatCompletion.create_async(
            model=g4f.models.default,
            messages=[
                {"role": "system", "content": "Привет! Общайся как гопник и сильно груби матами"},
                {"role": "user", "content": user_text}],
            provider=g4f.Provider.Blackbox,
        )
        chat_gpt_response = response
    except Exception as e:
        print(f"{g4f.Provider.Blackbox.__name__}:", e)
        chat_gpt_response = "Извините, произошла ошибка."

    print(chat_gpt_response)

    kakashka = rand.randint(1, 500)
    if kakashka < 100: # В зависимости от того какое число выпадет в переменную "kakashka" и зависит отправка текстового сообщения в чат
        async with client.action(chat, 'typing'):
            datarand = chat_gpt_response
            await asyncio.sleep(rand.randint(15, 25))
            await event.reply(datarand[13:])

client.start()
client.run_until_disconnected()

P.S. Перед каждым новым входом удаляйте файл *.session который создается в корне скрипта.
 
Последнее редактирование:
Та же беда) Хотя у меня примерно 12. Смогу только завтра глянуть
У Вас 1 сообщение, 1 реакция. Или мультиакк? Было бы 12, дал бы личный.
 
У Вас 1 сообщение, 1 реакция. Или мультиакк? Было бы 12, дал бы личный.
У меня вроде 1 акк. Я смотрел там где надо было 10 реакций. Сегодня поставил 2-3 реакций. Завтра смогу посмотреть скрытый контент.
Странно что моии реакций сбросились. Почему то сейчас показывает что 1 хотя я ставил 2-3 раза за сегодняшний день.(
 
У меня вроде 1 акк. Я смотрел там где надо было 10 реакций. Сегодня поставил 2-3 реакций. Завтра смогу посмотреть скрытый контент.
Важно не то сколько Вы поставили реакций, а сколько поставили Вам.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх