Цитатник на Автопилоте в Telegram

В данной инструкции мы покажем как реализовать цитатник в Telegram. Все просто: повторяйте шаги в инструкции и все получится.

Лирическое отступление… Интеграция с Telegram, создание бота и привязка аккаунта ВК должны быть сделаны по соответствующим инструкциям.

План инструкции:

Для чистоты эксперимента я покажу вариант на полях профиля игрока, но также дополню условиями в видео.

Полетели.

Команда для выдачи цитаты

Видеодемонстрация

События:

1) Событие: «Написал сообщение в Telegram» с текстом умная мысль

Важно! Ключевик может быть любым нужным вам. В примере цитата выдается в боте. И повторный запуск никак не блокируется, вы можете это сделать самостоятельно по аналогии, как показано в видео и конспекте ниже. Если у вас списываются мили, то проверяйте привязку TG к VK. Ограничение можно настроить на полях игрока, пример как настроить с привязкой показан в видео. Обращайте внимание на название поля игрока.
Пример запуска команды
Пример запуска команды

Опционально добавить условие:

1) Числовая переменная %chat_id% больше 0, т.е. сообщение написано в ЛС боту.

Сообщение только в ЛС бота
Сообщение только в ЛС бота

Опционально (если используется в группах каналах) вы можете вместе условия выше использовать условие: переменная %chat_id% совпадает с ID группы (как получить показано в видео)

Опциональное условие для групп (для получения chat_id запускаем команду без условия)
Опциональное условие для групп (для получения chat_id запускаем команду без условия)

Опционально:

2) Чтобы ограничить количество попыток добавляем условие: числовая переменная %player.citaty% меньше 3, иначе в реакциях на невыполнение пишем текст, что попытки кончились. Реакции на невыполнение тратят мили.

Пример условия на полях игрока
Пример условия на полях игрока

3) Опционально (для привязки TG к VK) можете делать другое условие для примера выше. Условие: «Выполнена команда»0 выполнена меньше 3 раз.

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

4) Для того, чтобы выдавать цитаты нечасто (например раз в сутки), рекомендуется привязать VK к TG и использовать условие «После выполнения прошло» в примере ниже ограничена частота раз в 5 секунд.

Пример условия для ограничения частоты (реакции на невыполнения +1 миля)
Пример условия для ограничения частоты (реакции на невыполнения +1 миля)

Действия:

1) Опционально (если делаете только на полях игрока) добавляете условие «Изменить поле профиля игрока» с названием citaty(оно должно быть уникальным) и значением увеличенным на 1.

Увеличиваем количество попыток
Увеличиваем количество попыток

2) Для запроса цитаты добавляем действие «Отправить GET/POST запрос» на адрес

https://andreyscripts.skyjoom.com/quotes.php
Пример запроса
Пример запроса

Важно! Так же в запросе можно передать параметр typeс числовым значением типа цитаты. По умолчанию: если параметр не задан, то используется цитата из всех источников. Пример в конце статьи.

Важно! Автор скрипта и сервис «Автопилот» не несет ответственность за качество цитат, так что используйте на свой страх и риск.

Следующим действием надо добавить сообщение с переменной: %response% (или %request_response%). В ней будет полный ответ стороннего сайта (например его JSON структура).

3) Временной переменной %success% через JSON PATH достаем cтатус цитаты

%response.success%
Получаем ответ сервера
Получаем ответ сервера

Если %success% вернул true, то цитата получена успешно, в противном случае может придумать адекватный текст для пользователя в духе: «Я устал»

4) Временной переменной %text% через JSON PATH достаем текст цитаты

%response.quoteText%
Получаем цитату
Получаем цитату

5) Чтобы сформировать адекватный текст в случае ошибки временной переменной %error% c помощью функции случайный текст пишем несколько вариантов текста. Например:

{rand}Я устал|Не хочу говорить|Я сплю|Что нужно?{/rand}
Случайный текст для ошибки
Случайный текст для ошибки

6) Временной переменной %author% через JSON PATH достаем автора цитаты.

%response.quoteAuthor%
Достаем автора
Достаем автора

7) Чтобы выдать цитату только если она получена с сайта делаем условную переменную %text% со значением:

  • Если числовая переменная %success% равна 1, то текст:
{text}%text%|cut|4096{/text}
  • Иначе текст: %error%, так как ошибка на сайте и мы выдаем удобочитаемый текст ошибки.
Важно! В видео показаны все дополнительные моменты, но конспект уже содержит все улучшения.
Обрезаем текст до 4096 символов в Telegram
Обрезаем текст до 4096 символов в Telegram

8) Чтобы выдать цитату только если она получена с сайта делаем условную переменную %author% со значением:

  • Если числовая переменная %success% равна 1, то текст:
%author%
  • Иначе ничего, так как ошибка на сайте
Формируем автора, либо не указываем его
Формируем автора, либо не указываем его

9) Для отправки сообщения игроку используем действие: «Отправить сообщение в Telegram» c текстом:

%text%
%author%
Пример сообщения пользователю
Пример сообщения пользователю

Важно! Для того чтобы сделать ответное сообщение или комментарий в действии «Отправить сообщение в Telegram» добавьте параметр:

  • reply_to_message_idсо значением %object_id%
Пример ответного сообщение (дано в качестве примера)
Пример ответного сообщение (дано в качестве примера)

10) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) делаем отмену таймера этим действием с уникальным названием %club_id%Цитаты (+1 миля к запуску команды).

Обнуление таймера
Обнуление таймера

11) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) делаем запуск таймер этим действием с уникальным названием %club_id%Цитаты (+1 миля к запуску команды) в универсальном режиме по наступлению:

23:59
Запуск таймера
Запуск таймера

12) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) после сработки таймера добавляем поле профиля игрока с названием citatyи переключателем очистить

Чистим попытки
Чистим попытки

13) Опционально: для отправки сообщения игроку в личку (будет отправлено только если есть разрешение от бота Telegram) используем действие: «Отправить сообщение в Telegram» игроку %player.tg_id% c текстом:

Попытки очищены
Опциональное сообщение в личку
Опциональное сообщение в личку

Команда для обнуления (в случае привязки ВК)

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

События:

1) Чтобы обнулить выполнение команды добавляем событие: «Написал сообщение в Telegram» с любым ключевиком. В примере: 123

Пример события
Пример события

Рекомендую добавить условие:

1) Числовая переменная %chat_id% больше 0, т.е. сообщение написано в ЛС боту.

Сообщение в ЛС Боту
Сообщение в ЛС Боту

2) Числовая переменная %player.tg_id% содержит ID вашего аккаунта Telegram

Пример условия, достаточно запустить команду без условия и вывести %chat_id%
Пример условия, достаточно запустить команду без условия и вывести %chat_id%

Действия:

1) Для отмены добавляем действие «Исключить из списка» с переключателем команды и указываем нужные номера команд через запятую. В примере: 1040781

Пример действия
Пример действия

2) Опционально: для отправки выводим себе сообщение действием: «Отправить сообщение в Telegram» c текстом:

Команды обнулены
Пример сообщения
Пример сообщения

Тип цитаты (опциональный параметр)

Для того чтобы получать цитаты определенного типа в запросе добавляем одно из следующих значений:

 0 - все источники (по умолчанию)
1 - цитаты из книг
2 - цитаты из фильмов
3 - цитаты из сериалов
4 - цитаты известных и великих людей
5 - цитаты из песен
6 - цитаты из телепередач /шоу
7 - цитаты из компьютерных игр
8 - цитаты из мультфильмов
9 - цитаты из аниме
10 - цитаты из стихотворений
11 -цитаты из спектаклей
12 - цитаты из комиксов
13 - цитаты из самиздата
14 - пословицы и поговорки
15 - притчи
Пример запроса цитаты из мультфильмов
Пример запроса цитаты из мультфильмов
Цитата из «Рапунцель»
Цитата из «Рапунцель»

Бонус

Еще один скрипт, который берет цитаты со стороннего сайта

https://andreyscripts.skyjoom.com/quotes_great_people.php
Цитатник на Автопилоте в Telegram, image #28

который также возвращает JSON (достаточно заменить только адрес в запросе):

{
"success&qu
ot;: true, "quoteText": "Любовь это соревнование в том, кто принесет друг другу больше радости."
, "quoteAuthor": "Стендаль"}

Все просто. Тестируем.

Прекрасно работает
Прекрасно работает

Как мы видим все отлично работает.

Творческих взлётов и успешного внедрения!

Вернуться на главную страницу инструкций
254 views·2 shares