directman

<<< Back

Сценарий для канала @MajorDoMo_feed

Пример использования бота, который отслеживает новостные ленты. После сообщения выводятся кнопки с подсчетом голосов.

Пример использования системы Мажордомо для ведения новостных лент. Следить будет за RSS потоком новостей.

Устанавливаем модуль "Каналы RSS". Прописываем необходимые новостные ленты.

Создаем сценарий rss_tlg

/*
$params['URL'] --link
$params['TITLE'] -- title
$params['BODY'] -- body
$params['CHANNEL_ID'] -- channel ID
$params['CHANNEL_TITLE'] -- channed title

*/

$chat_id='-1001484123774';     //канал majordomo_feed

$plus = json_decode('"'.'\ud83d\udc4d'.'"'); 
$minus = json_decode('"'.'\ud83d\udc4e'.'"'); 

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$texxt=$params['URL'];

$count_row = 2;

$option = array( array($telegram_module->buildInlineKeyboardButton("0 ".$plus,"","cb_vote_plus",""),
                       $telegram_module->buildInlineKeyboardButton("0 ".$minus,"","cb_vote_minus","")) );

$option = array_chunk($option, $count_row);
$keyb = $telegram_module->buildInlineKeyBoard($option);

$content = array('chat_id' => $chat_id, 'text' =>$texxt, 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
$telegram_module->sendContent($content); 

Прописываем вызов этого сценария в модуле "Каналы RSS" в нужным строках.

Для того, чтобы корректно учитывались голоса пользователей, в модуле Telegram создаем событие callback с именем vote

if (strpos($callback, 'cb_vote_') !== false) {
 $skip = true;
 $res = $data["callback_query"]["message"]["text"];
 $cmd = explode("_", $callback);
 $endpoint = "editMessageText";
 $content = array(
                'chat_id' => $data["callback_query"]["message"]["chat"]["id"],
                                'message_id' => $message_id,
                'parse_mode' => 'HTML'
            );
  $plus =intval($data["callback_query"]["message"]["reply_markup"]["inline_keyboard"][0][0]["text"]);
  $minus = intval($data["callback_query"]["message"]["reply_markup"]["inline_keyboard"][0][1]["text"]);
 if ($cmd[2] == 'plus')
 {
    $plus = $plus + 1;
 }
 if ($cmd[2] == 'minus')
 {
    $minus = $minus + 1;
 }

 $plus_i = json_decode('"'.'\ud83d\udc4d'.'"');
 $minus_i = json_decode('"'.'\ud83d\udc4e'.'"');
 $option = array( array($this->buildInlineKeyboardButton($text=$plus." ".$plus_i,"","cb_vote_plus",""),
                       $this->buildInlineKeyboardButton($text=$minus." ".$minus_i,"","cb_vote_minus","")) );
 $keyb = $this->buildInlineKeyBoard($option);

 $content['text'] = $res;
 $content['reply_markup'] = $keyb;
 $class='tlgvote';
 $user=str_replace('-','_',$data['callback_query']['from']['id']);

if (gg($class.'_'.$user.'.'.$content['message_id'])<>'1')
{
 $this->sendContent($content, $endpoint);
 $class='tlgvote';
 addClass($class); 
 addClassObject($class,$class.'_'.$user); 
 sg($class.'_'.$user.'.'.$content['message_id'],'1');
 debmes('голос учен','vote');
} 
}

Теперь у вас в системе будет создан класс tlgvote с пользователями, кто проголосовал за запись. Голос будет учет один раз.

Заметка создана при поддержке пользователя Eraser https://connect.smartliving.ru/profile/186/blog/go...

Канал, который собирает новости по MajorDoMo https://t.me/majordomo_feed

Discuss (0) (3)

See also:
2020-07-03 Получаем безопасный доступ к Web странице MajorDoMo
2020-04-24 Установка MajorDoMo на synology в 3 клика
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-01-25 Команды для настройки прав пользователей на папку с majordomo
2020-01-23 Отключаем строгий режим MYSQL штатными средствами
2019-10-12 Подключаем светодиодные ленты к контроллеру MegaD
2019-10-11 Варианты интеграции электроприводов
2019-09-30 Выбор источников сигнала телевизоров LG 2013
2019-09-29 Узнаем версию дистрибутива linux
2019-09-24 Установка необходимых пакетов в xpenology через docker
2019-09-16 Примеры разметки Markdown
2019-09-14 Краткий обзор выключателей, в том числе Sonoff T4EU1C
2020-03-26 Опыт установки Synology DSM
2019-09-09 Делаем majordroid лаунчером андройд по-умолчанию.
2019-09-04 Реализация сценария "кто-то пришел"
2019-09-02 Отправляем график hightcharts свойства любого объекта в телеграмм
2019-09-17 Автономная сигнализация на базе контроллера megad-2561
2019-08-27 Управление громкостью терминалов через телеграмм
2019-08-26 Полноценная консоль в браузере (wetty)
2019-08-16 Точечное регулирование радиаторов отопления
2019-08-18 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
2019-08-13 Общедоступная ссылка с закатом, рассветом и текущей погодой
2019-07-24 Самый дешевый вариант видеонаблюдения
2019-07-22 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
2019-07-22 Запуск Majordroid на старом железе
2019-07-15 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
2019-07-05 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
2019-07-04 О приборах учета и удаленном снятии показаний (вода и газ)
2019-07-04 О приборах учета и удаленном снятии показаний (электричество)
2019-07-03 Конвертируем rs-485 в TCP-IP
2019-06-24 Наблюдение за радиационной обстановкой в регионе
2019-06-06 Меню пылесоса Xiaomi в телеграмм
2019-06-06 Удобный просмотр данных сенсоров через телеграмм
2019-06-06 Просмотр камер через телеграмм
2019-06-06 Управление светом через телеграмм
2019-06-06 Колор-пикер для телеграм
2019-05-06 Список символов emoji
2019-04-17 Установка z-way на Ubuntu
2019-04-16 Решение проблемы ERROR 1040 (HY000): Too many connections
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66