ID: 131

Предложка бот и обратная связь в Телеграмм с автопубликаций контента из диалога с ботом (многоботовый)

46
Это картинка
Язык: Python, Библиотека: Telethon
Категории: source
Цена: 900

Подробное описание

Если вы владеете Telegram каналами, данный бот может быть полезен вам в случаях:
1. В качестве предложки канала.
2. В качестве обратной связи с админами канала.
3. Вы не хотите светить своими контактными данными на канале, например чтобы вам не стали писать в личку всякие спамеры и мошенники или просто засорять свои диалоги.
4. Все сообщения бота присланные людьми будут сохранены и доступны в чате с ботом, даже если они их удалят в диалоге с ботом (и вместе с чатом тоже).

Основной функционал бота заключается в пересыле админам сообщений также умеет и пересылать обратно пользователям сообщения админов (и вложения), что позволит обеспечить диалог через бота. Также бот задаваемой пользовательсокй команде умеет публиковать посты в телеграм каналах из данного диалога, что экономит ваше время на лишних рутинных действиях по сохранению/загрузке вложений. Бот умеет по специальной команде публиковать инлайн кнопки в публикуемых записях на канале с ссылками (например для рекламы может пригодиться). Также бот имеет функцию дописывания любого текста в публикуемых постах, например с просьбой подписаться на канал со ссылкой на него. Публиковать посты один предложкобот может и в нескольких каналах, со своим уникальным дописыванием текста. Помимо этого бот умеет писать event и except логи для значительного упрощения отладки бота и хранить id написавших пользователей, например для использования в рассылке уведомлений другими скриптами.

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

Скрипт имеется в трех версиях: текущей, наиболее расширенной многоботовой версии (v1.3), упрощённой многоботовой версии без части функционала по публикации в каналах (v1.2), и одноботовой версии без части функционала (v1.2). Многоботовые версии позволяют в одном скрипте обеспечивать одновременную работу неограниченного количества предложкоботов. Одноботовая версия рассчитана только на одного бота предложки, но никто не ограничивает держать и несколько одновременно запущенных таких одноботовых скриптов, правда по части оперативной памяти они будут в сумме значительно больше потреблять.


Бот настраивается довольно просто:


1. Для его работы потребуется vps/vds/hosting или другая машина с поддержкой Python3.

2. На данную машину устанавливаются нужные для работы бота библиотеки, такие как: configparser и Telethon. Команды для установки их могут отличаться в зависимости от дистрибутива, здесь они будут приведены на примере Ubuntu и python3.7. Вбиваются они в Bash консоли:
python3.7 -m pip install configparser
python3.7 -m pip install telethon

3. В любую папку пользователя закидываете файлы скрипта бота.

4. Теперь вам необходимо получить api_id и api_hash и установить их в файл config-sample.ini без кавычек и других дополнительных символов.

Вид файла config-sample.ini

Вид файла config-sample.ini. Вместо 1 и hash_token указываются полученные значения api_id и api_hash



5. В самом скрипте бота любым текстовым редактором в переменной BOTS_DATA указываете нужные параметры от бота.
Пример конфига для бота

Пример переменной BOTS_DATA


username - никнейм бота без @ и https://t.me/.
bot_token - токен от бота, получается через @bot_father, там же и регистрируется бот, если вы этого не делали ранее.
akkid - целочисленное id бота (идентично числу из токена)
user_ids - список ид админов, которым бот будет присылать сообщения (Важно, из-за ограничений Телеграма указанные админы сперва должны начать диалог с этим ботом по команде /start).
start_message - приветственное сообщение команды /start.
show_keyboard - флаг показа клавиатуры, принимает True или False
keyboard - клавиатура у бота, изменять и трогать ее не стоит, если вы только не планируете глубоко модифицировать скрипт бота и добавить собственные команды.
advertising_message - рекламное сообщение (для тех кто интересуется рекламой).
posting_commands - программируемый python словарь команд по части публикации, ключем является командное слово, ЗАДАЕТСЯ ТОЛЬКО МАЛЕНЬКИМИ БУКВАМИ, значением является текстовая ссылка вашего канала без @ или целое число (если канал, например, приватный). Можно задавать несколько командных слов на один канал.
additional_text - программируемый python словарь по части дописывания фраз в публикуемых каналах. Можно его оставить пустым {}. Ключем задается идентичное командное слово нужного канала. Значением задается строка, возможна и с текстовой ссылкой на канал. Т.е. для одного канал можно прописать несколько разных строк, для каждого командного слова свою.
additional_text_flag - флаг автоматического дописывания добавочной строки в публикуемых через бота постах. Принимает значения True или False.

В случае если у вас версия скрипта для неограниченного числа ботов, словарь (обозначается {} скобками), представленный на картинке, дублируете в списке (обозначается [] скобками) переменной BOTSDATA через запятую на нужное количество ботов и в них указываете свои параметры дополнительных ботов.

6. Запускаете данный скрипт. В случае изменения параметров скрипта, для вступления их в силу, ранее запущенный данный скрипт требуется перезапустить.

7.Чтобы публиковать публикации на канале через бота, сперва надо через @bot_father открыть возможность его добавлять в чаты и каналы. После чего добавляете бота в каналы с правами публикаций записей. Рекомендуем сразу после добавления в нужные каналы через @bot_father обратно закрыть возможность добавлять бота в чаты и каналы, дабы кто-то потом не стал его добавлять в другие каналы и чаты и из-за обработки "шума" которых пойдет повышенная нагрузка на ваш хостинг.

Примеры взаимодействия с ботом (основные сценарии перечислены на картинках):


Пример взаимодействия администратора с ботом

Пример взаимодействия администратора с ботом по части публикации на канале. Первое слово "Тест" является заданной пользовательской командой (ключом) в posting_commands


Вид данных опубликованных записей на канале

Вид данных опубликованных записей на канале


Публикация на канале с отключением добавочного текста по флагу -ссылка

Публикация на канале с отключением добавочного текста по флагу -ссылка


Как она выглядит на канале

Как она выглядит на канале


Вывод списка команд у бота

Вывод списка команд у бота. Подчеркнутые - пользовательские команды, заданные в posting_commands


Взаимодействие обычного подписчика канала с ботом

Взаимодействие обычного подписчика канала с ботом. Отправка админам сообщений и получение от них ответа


Как выглядят присланные сообщения от подписчика у админа

Как выглядят присланные сообщения от подписчика у админа


Как выглядит ответ на сообщения подписчика

Как выглядит ответ на сообщения подписчика. Можно отвечать и по старому, альтернативному варианту по команде Сбщ ид_юзера любой_текст


Публикация присланного контента

Публикация присланного контента. В 1 и 3 случае текст от подписчика сохранятеся, если админ не указал свой текст (командные и служебные слова удаляются и не учитываются).


Как выглядят посты после публикации

Как выглядят посты после публикации



Особенности и ограничения бота и Telegram'а:

* У бота ограничен режим работы в чатах. Он не будет пересылать сообщения от не админов из чатов и групп, но будет отвечать админам и публиковать в него и из него (например в сценарии админского чатика канала).
* Бот может публиковать кнопки только в публикациях без вложений или с одним (Ограничение ТГ).
* Самое важное, ботам Телеграм не позволяет добавлять посты в отложку. Реализация отложки возможна в следующей, более продвинутой версии, под заказ. Для этого потребуется к боту подвязвать и страничный аккаунт, который и будет постить в отложку. Разумеется никаких кнопок в отложке быть не может.

Данный скрипт бота может называться как: Бот предложка для Телеграм. Бот обратной связи в Telegram. Бот для сообщений в Телеграмм.