• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Python Создаём телеграмм бота на Python + [Source]

MaminBandit

Участник
Сообщения
32
Реакции
43
0 руб.
Привет, банда;).Как-то я стал замечать, что люди почему то пользуются ботами по типу @LivegramBot , для создания других ботов o_O (Для тех, кто не шарит, очень даже хорошо, но не для таких лёгких ботов, по типу приёма сообщение и переадресации их владельцу, других, сделанных этим ботов, я не видел). Сразу говорю, я кодил несколько лет на ++ без использования всяких супер-удобных библиотек, поэтому возможно в увидите много говнокода:pensive:. Итак, писать мы будем простейшего бота - принимателя сообщений с переадресацией на вас, тоесть вы сможете переписываться через бота. (Это полезно, когда к примеру вас начинает банить tg, или у вас куча пабликов, с которых идут клиенты, и вы не знаете с какого именно паблика они идут)
А, забыл сказать, писать мы будем как думаете на чём? ~минутная пауза~ Конечно на Python :rolleyes: т.к я его изучаю уже 2 неделю :joy:

Итак, начнём
1.
Зайдём на сайт Python - https://www.python.org/ скачаем 3 версию и установим
2. Создадим бота у @BotFather, ну я надеюсь вы там уже разберётесь ;). В итоге он даст нам Api вида 6952141248:AAFgdawd...
3. Дальше установим нужные библиотеки(или модули, я не знаю как правильно, я олдфаговый с++шник) для Python. Нажмём win+r дальше введём cmd и откроется командная строка. Туда вводим pip install telebot. А, забыл, если у вас будет ошибка, то сделайте сначала так
pip install --upgrade pip
4. Ну четвёртым пунктом уже будем кодить наверное ;) добавим import (#include, эх были времена:laughing:)
Код:
import telebot
from telebot.types import Message
Дальше инициализируем token бота и самого бота
Код:
TOKEN = "6952141248:AAFgdawd..."
bot = telebot.TeleBot(TOKEN)
Дальше я добавил несколько эмодзи, но это не обязательно
Код:
hello = "\U0001f91a"
like = "\U0001f60a"
palm = "\U0001f334"
strawberry = "\U0001f353"
applodisments = '\U0001f44f'
kaktus = '\U0001f335'
Дальше отработаем функцию, при приёме сообщение /start
Код:
@bot.message_handler(commands=['start', 'go'])
def start_handler(message):
    bot.send_message(message.chat.id, 'Привет'+ hello +', я бот @PapinBandit ' + palm + strawberry + 'Задай свой вопрос, а мой создатель ответит тебе'+like)
Тут всё интуитивно понятно, вместо @PapinBandit пишите ваш канал/ник
Дальше мы должны узнать ваш ChatId, это можно сделать многими способами(лучше вам не знать насколько костыльным способом делал это я) Напишем сообщенку боту и зайдём
https://api.telegram.org/botToken/getUpdates
Дальше надеюсь найдёте "chat":{"id":399289761 Этот id и будет вашим
5. А теперь готовьтесь топовые кодеры питона, такого лютого кода вы, наверное, ещё не видели


Код:
@bot.message_handler(content_types=['text'])
def echo_digits(message: Message):
    print(message.from_user.username,':',message.text)

    if message.chat.id != 399289761:
       chatid = str(message.chat.id)
       if message.from_user.username != None:
           chatid = chatid + '(' + message.from_user.username + ')'
       bot.send_message(399289761,applodisments+'Вам пришло сообщение! ' + like + ' ' + '{' + chatid + ': ' + message.text + '}. ' + 'Чтобы ответить - введите "ChatId:cообщение"')
       bot.send_message(message.chat.id,applodisments+'Ваше сообщение отправлено! Ожидайте ответа ' + like)
       bot.send_message(message.chat.id,hello + 'И не блокируйте бота!' + palm)
Тут мы отправляем сообщенку вам. Думаю тоже всё интуитивно понятно.:innocent:
ВНИМАНИЕ ТОПКОДЕРАМ НЕ ЧИТАТЬ

Код:
    else:
        answer = message.text
        otvet=''
        chatid=''
        i=0
        if len(answer)>9:
           if answer[9]==':' :
            while answer[i]!=':':
               chatid=chatid+answer[i]
               i=i+1
            print(chatid)
            i=i+1
            while i<len(answer):
               otvet=otvet+answer[i]
               i=i+1
            print(otvet)
            bot.send_message(chatid,'Вам пришло сообщение! '+kaktus)
            bot.send_message(chatid,'~'+otvet+'~')
Тут мы анализируем ответ, разделяем его на ChatId(ид человека, от которого пришло сообщение и на само сообщение(Это реализовано 2 while, да я знаю, что я очень жоский кодер :joy::joy::joy:))
Собственно вот и всё, бот готов. Итоговый код
Код:
import telebot
from telebot.types import Message
TOKEN = "561234115:AAHp96HQedwsD..."
bot = telebot.TeleBot(TOKEN)

#Ваш ID 399289761

hello = "\U0001f91a"
like = "\U0001f60a"
palm = "\U0001f334"
strawberry = "\U0001f353"
applodisments = '\U0001f44f'
kaktus = '\U0001f335'

@bot.message_handler(commands=['start', 'go'])
def start_handler(message):
    bot.send_message(message.chat.id, 'Привет'+ hello +', я бот канала @PapinBandit ' + palm + strawberry + 'Задай свой вопрос, а мой создатель ответит тебе'+like)

@bot.message_handler(content_types=['text'])
def echo_digits(message: Message):
    print(message.from_user.username,':',message.text)

    if message.chat.id != 399289761:
       chatid = str(message.chat.id)
       if message.from_user.username != None:
           chatid = chatid + '(' + message.from_user.username + ')'
       bot.send_message(399289761,applodisments+'Вам пришло сообщение! ' + like + ' ' + '{' + chatid + ': ' + message.text + '}. ' + 'Чтобы ответить - введите "ChatId:cообщение"')
       bot.send_message(message.chat.id,applodisments+'Ваше сообщение отправлено! Ожидайте ответа ' + like)
       bot.send_message(message.chat.id,hello + 'И не блокируйте бота!' + palm)
    else:
        answer = message.text
        otvet=''
        chatid=''
        i=0
        if len(answer)>9:
           if answer[9]==':' :
            while answer[i]!=':':
               chatid=chatid+answer[i]
               i=i+1
            print(chatid)
            i=i+1
            while i<len(answer):
               otvet=otvet+answer[i]
               i=i+1
            print(otvet)
            bot.send_message(chatid,'Вам пришло сообщение! '+kaktus)
            bot.send_message(chatid,'~'+otvet+'~')



bot.polling()
Я думаю вы знали, что это можно было писать в блокнот, после сохраняем блокнот, изменяем его расширение на .py
Нажимаем shift+лкм в папке с ним , открываем окно командной строки и пишем

Код:
pyinstaller -F bot.py
В итоге в папке dist у нас будет exe, который запускаете и бот работает
Так, в конце хочу сказать, видел у @danaforevr похожую статью, только с другой задачей, сразу указал, что я вдохновился тупостью людей(тем, что многие люди пользуются ботами для создания ботов), а также его темой по stealer'у с отстуком в tg.
Думаю эта статья будет полезной. В следующей статье, если захотите покажу, как залить бота на heroku(вместо платного хостинга). За ошибки не ругайте, в профиле прочитайте пост по этому поводу:yum
 

Вложения

  • SourcePythonTelegramBot.txt
    1,8 KB · Просмотры: 438
Последнее редактирование:

MaminBandit

Участник
Сообщения
32
Реакции
43
0 руб.
Если будут вопросы - tg @alienjesus, также, жду разумную критику.
 
Последнее редактирование:

BotHub

Разработчик ботов

BotHub

Разработчик ботов
Резидент
Сообщения
285
Реакции
420
0 руб.
Telegram
Некоторые элементы кода вызывают вопросы, ну да ладно)))
 

MaminBandit

Участник
Сообщения
32
Реакции
43
0 руб.
Некоторые элементы кода вызывают вопросы, ну да ладно)))
Я ж говорю, с ++ даёт о себе знать, то, что тут делается в одну строчку, я делаю в 10, потому что привычка :\
[automerge]1541319311[/automerge]
Хоть там в конце и есть весь сурс, но я прикрепил ;)
 
Последнее редактирование:

Shyravi

Местный
Сообщения
62
Реакции
77
0 руб.
Эххх , печально только одно. Это делается ради статы , какой-то... Когда же люди поймут, что эти циферки под аватаркой не решают Н И Ч Е Г О... Может тогда наступит новая эра?
 

MaminBandit

Участник
Сообщения
32
Реакции
43
0 руб.
Эххх , печально только одно. Это делается ради статы , какой-то... Когда же люди поймут, что эти циферки под аватаркой не решают Н И Ч Е Г О... Может тогда наступит новая эра?
Что?:neutral::no_mouth::confused:В начале темы я написал про симпу, потому что в прошлой теме было что-то похожее. Почему ты решил, что это делается только ради этого? Я не копипастил это ради того, чтобы получить больше лайков, я писал сам..:expressionless:
 

Shyravi

Местный
Сообщения
62
Реакции
77
0 руб.
Что?:neutral::no_mouth::confused:В начале темы я написал про симпу, потому что в прошлой теме было что-то похожее. Почему ты решил, что это делается только ради этого? Я не копипастил это ради того, чтобы получить больше лайков, я писал сам..:expressionless:
Когда ты пишешь хоть одно предложение в стиле "поднятие симпы пошло , не забываем лайкнуть и тд" , то сразу становится ясно зачем ты вообще делал статью
Так сказать , сам себя детектишь.
 
Сверху Снизу