Гайд Python telegram bot

Новичок
Статус
Оффлайн
Регистрация
17 Апр 2019
Сообщения
1
Реакции[?]
4
Поинты[?]
0
Приветствую всех, писать бота будем с помощью "Путшона" и библиотеки Python-telegram-bot (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).

Для начала нужно скачать библиотеку. Открыв консоль пишем: pip install python-telegram-bot

Будем писать простой генератор паролей
1. Нам необходимо подключить библиотеки:
Python:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import random
2. Нужно ввести токен бота(
Пожалуйста, авторизуйтесь для просмотра ссылки.
): updater = Updater('XXXXXXX')
3. Нужно сделать словарь используемых символов.
Python:
Slovar = []
for i in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#№$;%:^?&*()-+=/<>/.,[]{}":
    Slovar.append(i)
print(Slovar) #
4. Пишем функцию старт.
Python:
def start(bot, update): #Создание функции
    bot.send_message(chat_id=update.message.chat_id, text="Напиши длину пароля!") # Вывод сообщения
5. Нужен хендлер что бы в при команде /start пользователь попадал в функцию (Хендлеры всегда пишем после всех классов, функций и т.д.). updater.dispatcher.add_handler(CommandHandler('start', start)).
Также нужно будет добавить ещё один хендлер, который бы считывал, текст написанный пользователем. updater.dispatcher.add_handler(MessageHandler(Filters.text, generator))
6. Напишем функцию для последнего хендлера.
Python:
def generator(bot, update): #Создаём функцию
    if update.message.text.isdigit(): #Приверяем сообщение пользователя число?
        num = int(update.message.text) # Закладываем в переменную "num", сообщение пользователя переведённое в число
        password = "" #Переменная с нашим рандомным паролем
        for i in range(1, num+1): #Начинаем цикл For
            password += random.choice(Slovar) #Добовляем по символу из нашего массива в пароль
        bot.send_message(chat_id=update.message.chat_id, text=f"Ваш пароль: {password}\nНапишите длину пароля!")# Вывод сообщения пользователю, с сгенерированным паролем
    else: #Если текст пользователя не число
        bot.send_message(chat_id=update.message.chat_id, text="Длина пароля - это число)") #Выводим сообщение пользователю о том, что он дебил)
7. И последний пункт, это добавить ниже хендлером две строки:
Python:
updater.start_polling()
updater.idle()
Python:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import random


updater = Updater('XXXXX') #token


Slovar = []
for i in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#№$;%:^?&*()-+=/<>/.,[]{}":
    Slovar.append(i)
print(slovar)


def start(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text="Напиши длину пороля!")


def generator(bot, update):
    if update.message.text.isdigit():
        num = int(update.message.text)
        password = ""
        for i in range(1, num+1):
            password += random.choice(Slovar)
        bot.send_message(chat_id=update.message.chat_id, text=f"Ваш пороль: {password}\nНапишите длину пороля!")
    else:
        bot.send_message(chat_id=update.message.chat_id, text="Длина пороля - это число)")


updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(MessageHandler(Filters.text, generator))
# Exit
updater.start_polling()
updater.idle()

Если хотите продолжение, покажите активность.
Если, что первый раз писал статью на этом форуме. Так что если, что то коряво сделал, извините...
 
Сверху Снизу