Как редактировать бота в telegram
Перейти к содержимому

Как редактировать бота в telegram

  • автор:

Редактирование бота (канала) Telegram

Выберете бота для редактирования (если их несколько).

Нажмите Edit Bot

Дальше нажмите одну из кнопок, в зависимости от того, что вам нужно поменять:

Edit Name — изменить имя бота

Edit Description — изменить сообщение, которое видят подписчики, до запуска бота

Edit About — изменить описание бота

Edit Botpic — изменить аватар бота

Edit Commands — не используется в BotHelp

Прямые команды

Так же для редактирования можно пользоваться не кнопками, а прямыми командами:

/setdescription — изменить описание бота

/setabouttext — изменить информацию о боте

/setuserpic — изменить фото профиля бота

/setcommands — изменить список команд

/deletebot — удалить бота

После внесения изменений нужно обязательно переподключить канал в кабинете.

Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на hello@bothelp.io ��

Получите 14 дней полного функционала платформы для создания рассылок, автоворонок и чат-ботов BotHelp.

Подготовка рабочего места в Windows и Linux. Virtual Environment (venv). Ответы на вопросы

Весь текст ниже появился как попытка дать универсальный ответ на те вопросы, которые дорогие читатели присылали и продолжают присылать раз за разом. Здесь не будет кода, связанного с ботами напрямую, а лишь советы по организации процесса написания. И, конечно же, не нужно воспринимать это как истину в последней инстанции, напротив, выбирайте те инструменты и подходы к разработке, которые лично вам кажутся удобными. Важная деталь: текст написан в конце 2019 года. Достаточно вступительных слов, поехали!

Предположим, вы уже немного знаете язык Python 3 (забудьте про Python 2.7, он мёртв), умеете писать простенькие программы и хотите взяться за разработку ботов. Где это делать? В чём писать код? Как правило, у большинства начинающих программистов основной операционкой используется Microsoft Windows. С неё и начнём, но сперва…

Virtual environment

Вы когда-нибудь пользовались VirtualBox? Например, чтобы «пощупать» другие операционные системы или просто установить какой-нибудь подозрительный софт. Python Virtual environment (далее — venv) чем-то напоминает «виртуалку». При его использовании создаётся копия выбранного интерпретатора Питон, а все устанавливаемые модули хранятся изолированно от общесистемных, тем самым, упрощается их обновление, удаление или изменение. Часто venv позволяет избежать ошибок, связанных с обратной совместимостью некоторых библиотек, а также обойтись без конфликтов с системными модулями. Работа с venv будет подробнее описана ниже в разделе Linux, но использовать его мы будем везде.

Windows

Первым делом, разумеется, нужно скачать сам интерпретатор Python. На момент написания этого текста актуальной версией является Python 3.8.1. В качестве каталога установки я рекомендую использовать что-то простое, вроде C:\Python38. Где писать код — личное дело каждого, конечно, но я всё же рекомендую использовать специальную среду разработки под названием PyCharm Community Edition. Бесплатной версии (та самая Community) более чем достаточно. После установки и первичной настройки выберите пункт File -> New Project. Укажите имя вашего первого проекта, а ниже укажите «New environment using virtualenv», ниже в качестве интерпретатора путь к python.exe каталога с Питоном (например, C:\Python38\python.exe).

Создание нового проекта в PyCharm

После запуска откройте вкладку Terminal в левом нижнем углу и установите библиотеку pytelegrambotapi (не telebot!). Для любителей тыкать мышкой есть более запутанный вариант: File -> Settings -> Project -> Project Interpreter -> кнопка «+» в правой части экрана.

Установка библиотеки через терминал в PyCharm

Прекрасно, теперь начинайте творить! Создайте первый файл с исходником, нажав правой кнопкой мышки по имени проекта в списке файлов, затем New и Python File.

Создание нового файла кода в PyCharm

Запустить код можно, выбрав сверху пункт Run, затем снова Run…, но с многоточием, и затем выбрав созданный ранее файл.

Как залить файлы на сервер?

Для копирования файлов на удалённый сервер (обычно там стоит Linux), я использую замечательную бесплатную программу WinSCP, причём в ней присутствует режим автоматической синхронизации файлов, чтобы при любом изменении в локальном каталоге обновлялось содержимое на удалённой машине, избавляя вас от необходимости копировать всё вручную.

Скриншот программы WinSCP

При помощи WinSCP можно даже просто подключиться к серверу и подправить файл «на лету», не забудьте только потом перезапустить бота!

Linux

Если Linux у вас используется вместо Windows, то работа с PyCharm будет точно такой же, поэтому второй раз писать не имеет смысла. Далее рассмотрен процесс запуска в терминале на удалённом сервере. Прекрасно, вы написали бота и хотите где-то его запустить. Например, арендовали сервер у Scaleway/DigitalOcean/AWS/etc. Запустили сервер, подключились к нему по SSH, а там чёрный экран и терминальная Linux-сессия. Во-первых, давайте посмотрим, какой интерпретатор у нас выбран по умолчанию, введя команду python3 .

Хорошим правилом будет иметь на сервере ровно ту же версию Python, что и на своей локальной машине, во избежание различных неприятностей. Если версия на сервере ниже 3.7 и/или ниже той, что установлена локально, лучше всего будет установить её отдельно. Очень рекомендую вот эту статью, по которой я для себя написал простой скрипт для автоматизации рутинных действий. Итак, интерпретатор установлен, теперь пора создать каталог, куда положим файлы бота. Выполните по очереди следующие команды:

mkdir mybot cd mybot python3.7 -m venv venv source venv/bin/activate pip install pytelegrambotapi deactivate 

В результате должно получиться примерно то же самое, что на скриншоте ниже, с той лишь разницей, что я прервал процесс установки библиотеки для читабельности. Обратите внимание, что после подгрузки файла venv/bin/activate, перед названием пользователя и текущего каталога появится приписка (venv), означающая, что мы «вошли» в виртуальное окружение и устанавливаем библиотеки именно в него.

Создание venv в Linux-терминале

Что произошло выше? Во-первых, мы создали каталог с названием mybot и перешли в него. Во-вторых, мы использовали Python версии 3.7 (в вашем случае это может быть не так), чтобы создать виртуальное окружение в подкаталоге venv. В-третьих, мы «активировали» venv и выполнили в нём нужную нам команду. Внутри venv команды pip и python точно знают, к какому именно интерпретатору они относятся, поэтому путаницы вроде «я установил библиотеку для Python 3.5, а запускаю из-под Python 3.7» попросту не будет. Наконец, в-четвёртых, мы деактивировали venv, поскольку он напрямую нам больше не нужен. Чтобы сделать жизнь ещё приятнее, давайте настроим автозагрузку бота, чтобы при возникновении ошибок или при перезапуске сервера он вновь запускался, избавляя нас от необходимости постоянно проверять всё вручную. Для этого мы воспользуемся подсистемой инициализации systemd, которая всё больше распространена в современных Linux-дистрибутивах. Прежде, чем описать службу systemd, откройте главный файл с ботом, в котором прописан его запуск и добавьте в качестве первой строки следующий код: #!venv/bin/python

Сохраните файл, закройте его и выполните команду chmod +x имяфайласботом.py , чтобы сделать его исполняемым. Теперь создайте файл mybot.service, и скопируйте туда следующий текст:

[Unit] Description=MY BOT After=network.target [Service] Type=simple WorkingDirectory=/home/user/mybot ExecStart=/home/user/mybot/bot.py KillMode=process Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 

Отредактируйте поля Description , WorkingDirectory и ExecStart , сохраните и закройте файл. Далее скопируйте его в каталог /etc/systemd/system , введя свой пароль при необходимости (если сидите не из-под рута, что правильно, то ваш юзер должен иметь возможность выполнять команды от имени sudo). Затем выполните следующие команды для включения автозагрузки и запуска бота (опять-таки, требуются права суперпользователя):

systemctl enable mybot.service systemctl restart mybot 

Наконец, проверьте состояние вашего бота командой systemctl status mybot . Его статус должен быть Active (running) зелёного цвета (если поддерживается разноцветный режим).

Проверка статуса бота через systemd

Как редактировать файлы на сервере?

Если что-то нужно подправить небольшое, то неплохим вариантом остаётся старое доброе подключение по SSH и использование редакторов вроде micro, nano или даже vim с emacs. Но если вдруг у вас в качестве локальной машины применяется Linux, то крайне рекомендую редактор Visual Studio Code (https://code.visualstudio.com) с дополнением Remote-SSH. В этом случае, вы сможете прямо в VS Code открывать каталоги на сервере и редактировать файлы в удобном окружении и с подсветкой синтаксиса. К сожалению, насколько мне известно, расширение Remote-SSH не работает в Windows, но впоследствии этот недочёт будет устранён.

Ответы на часто задаваемые вопросы (FAQ)

Хочу научиться писать ботов. С чего мне начать?
Прежде всего, пожалуйста, изучите хотя бы немного сам язык Python. Он довольно простой, но перед созданием ботов стоит понять азы. Конкретнее: переменные, циклы, функции, классы, обработка исключений, работа с файлами и файловой системой.

Можно ли писать ботов на телефоне?
Да кто ж вам запретит-то? Но лучше от этого никому не будет, поверьте. Будет трудно, неудобно и контрпродуктивно. Используйте нормальный компьютер.

[pyTelegramBotAPI] Ошибка AttributeError: module ‘telebot’ has no attribute ‘TeleBot’!
На 99% уверен, что вы установили библиотеку telebot вместо pytelegrambotapi. С учётом всего вышесказанного проще создать новое окружение venv, перенести туда нужные файлы и установить именно pytelegrambotapi, при этом в исходниках должно остаться import telebot.

Как мне держать бота запущеным в Windows?
Запустите бота в PyCharm, не закрывайте приложение и не выключайте комп. Почти шутка. По-моему, Windows — не самая лучшая операционка для подобных вещей, проще арендовать сервер у европейских провайдеров, заодно не будет геморроя с варварами из Российского Консорциума Неадекватов.

Библиотека pyTelegramBotAPI не поддерживает новые фичи Bot API!
К сожалению, упомянутая библиотека в 2019 году развивалась гораздо медленнее, чем хотелось. Если вы уже чувствуете себя уверенным ботописателем, подумайте о переходе на альтернативы вроде aiogram.

В завершение хочется напомнить, что если у вас возникли замечания, предложения или вопросы, вы всегда можете открыть issue на Github или прийти к нам в чатик.

Как отредактировать сообщение бота?

Потому что это сообщение юзера, а мне нужно сообщение бота. Вот код самой функции:

@bot.message_handler(commands=['hack']) def hack(message): try: mes = split(r' ', message.text, maxsplit=1) bot.send_message(message.chat.id, 'ВЗЛОМ ' + str(mes[1])) bot.send_message(message.chat.id, '1%') for i in range(2, 101): bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text=str(i) + '%') bot.send_message(message.chat.id, 'УСПЕШНО ВЗЛОМАНО ' + str(mes[1]) + """. ВАМ ДОСТУПНЫ ПРАВА АДМИНИСТРАТОРА/МОДЕРАТОРА""") except IndexError: bot.send_message(message.chat.id, """Что бы симулировать влом чего-то, вам нужно ввести обьект для взлома после команды.""")

Она должна симулировать процесс взлома Object при вводе команды /hack Object P.S. Редактировать нужно сообщение бота, в коде в функции указан код, которым я пытался это сделать но оказалось, что так редактируется сообщение юзера

Фоторедактор Telegram

Помимо функции передачи медиафайлов в Телеграм есть достаточно неплохой фоторедактор. Мы подробно расскажем о всех возможностях редактора и покажем как их применять.

Итак, в чате нажмите на значок «Прикрепить», выберите фото из списка и откройте его. Внизу появятся иконки редактирования и поле «добавить подпись».

Кадрирование

Первая иконка позволяет кадрировать рисунок. В данном меню можно обрезать фото или выбрать один из готовых шаблонов соотношения сторон (2х3, 3х5, 3х4, 4х5, 5х7, 9х16), а также поменять угол поворота изображения.

Добавление элементов

Вторая иконка в виде кисточки дает возможность добавить разные элементы на изображение, например, — текст, маску или произвольный рисунок.

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

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

Нажмите на иконку с буквой Т, чтобы написать текст на изображении. Вы сможете выбрать вид текста – контур или обычный (кнопка «Т» слева), цвет и установить нужный размер и поворот текста.

Коррекция

Третья иконка отвечает за цветокоррекцию, размытие (капля) и другие улучшения качества изображения. Например — контрастность, экспозиция, насыщенность, теплота, свет, резкость и т.д.

Для того, чтобы быстро улучшить изображение, не разбираясь во всех настройках, можно нажать «автоулучшение». Капля позволяет размыть фон фото, а кнопка «кривые» скорректировать свет и тени с помощью диагонали на графике.

После того, как редактирование закончено, нажимаем «Готово» и отправляем фото.

Подписывайтесь на канал Вам Телеграм — актуальные новости, полезные статьи и советы по работе с Telegram.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *