Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию своим коллегам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andrease? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

[Python] Пишем бота для подсчета символов | Telegram Bot

unreal.

Специалист
Пользователь
Регистрация
15 Окт 2015
Сообщения
914
Реакции
544
Адрес
Ростов-на-Дону
  • Помощник
TelegramBot


Привет, давайте разберем как написать Telegram бота на языке Python.

1. Нам потребуется дистрибутив python (3.7 - 3.8) возьмем 3.7 -
Урок по установке -

2. Далее, через командную строку установим библиотеку aiogram
(в командной строку 'WIN + R' прописываем:
pip install aiogram )

2.1 Создадим бота:
Находим в телеграмме бота @BotFather
Прописываем ему команду: /newbot
Далее он скажет задать имя боту, следом username.
После чего он даст вам ссылку на бота и TOKEN
пример: 1186494148:AAHthiyN5-AdasrhO08w0U9JcIJgPrvXqO50

3. Далее создаем папку в любом месте, в ней создаем файл bot.py (название любое).

В нее вставляем код:


Python:
import logging
from aiogram import Bot, Dispatcher, executor, types

API_BOT = 'Вставить token' # взятый у botfather
#Выглядит в таком формате: 1186494148:AAHthiyN5-AdasrhO08w0U9JcIJgPrvXqO50

bot = Bot(token=API_BOT)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])#Приветствие по первой команде /start
async def send_welcome_message(message: types.message):
    await message.answer('Привет, {0}!'.format(message.from_user.first_name)) #отправляем меседж с вашим именем


@dp.message_handler(content_types=['text']) #сообщение в чат
async def onPlayerText(msg: types.message):
    if msg.text.find('@') != -1:#пользователь ввел
        await msg.answer('{0}\nСимволов: {1}'.format(msg.text, len(msg.text) - 1))#бот ответил. Считаем кол-во символов без 1 '@'
    else:
        await msg.answer('Не понимаю что ты сказал 😢!') #если послал текст без '@'

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)
4. Далее:

Заходим в папку через командную строку (WIN + R)
Допустим я создал папку firstProject на рабочем столе, в командой строке я зайду в нее через команду cd:
cd C:\Users\unreal\Desktop\firstProject
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
(<< легкий способ скопировать путь)
И запускаем наш файл .py через команду


python bot.py


Заходим в Telegram и находим нашего бота по username, что указал в botfather

Итог:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Вот вам представлен код в ~25 строк который будет считать вам количество символов

Автор: unreal.
 
Последнее редактирование:

unreal.

Специалист
Пользователь
Регистрация
15 Окт 2015
Сообщения
914
Реакции
544
Адрес
Ростов-на-Дону
  • Помощник
2 вариант, с окологотовым кодом формата.
Убраны проверки на @, теперь отправив текст -> получаем шаблон.
Подсчитает количество символов + удалит %s %d %f %i и создаст шаблон fomat`a

Пример:


Python:
import logging
from aiogram import Bot, Dispatcher, executor, types

TOKEN_BOT = '1186494248:AAHthiyN5-A6ZrhO08w0U9JcIJgPrvXqO50' #API взятый у botfather

STRING_FORMATTED = '\
Ваш текст: {0}\n\n\
Количество символов:   {1}\n\n\
new string[{1} /*+ константы*/];\n\n\
format(string, sizeof string,  "{0}"\n\
, /*переменные,массивы*/);';

bot = Bot(token=TOKEN_BOT)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])#Приветствие по первой команде /start
async def send_welcome_message(message: types.message):
        await message.answer('Привет, {0}!'.format(message.from_user.first_name)) #отправляем меседж с вашим именем


@dp.message_handler(content_types=['text']) #сообщения в чат
async def onPlayerText(msg: types.message):
        strlen = msg.text.replace('%d','').replace('%s','').replace('%f','').replace('%i','')#убирает автоматически 2 символа
        await msg.answer(STRING_FORMATTED.format(msg.text, len(strlen) + 1)) #бот ответил.

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)
 

Вложения

Последнее редактирование:

Icy Narco

Участник форума
Пользователь
Регистрация
14 Май 2018
Сообщения
370
Реакции
18
Веб-сайт
vk.com

Waii

• Зарегистрированный •
Регистрация
13 Июл 2020
Сообщения
8
Реакции
0

Пользователи онлайн

shape1
shape2
shape3
shape4
shape7
shape8
Сверху