Как сделать оповещения о стриме в Телеграм

Если объём навыков слишком маленький, а задача слишком большая — время на решение будет стремиться к бесконечно большой величине.

10 янв 2019 в 6:56

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Как пример, можете использовать: https://github.com/eternnoir/pyTelegramBotAPI Получив ключ, создайте обычного бота и создайте обработчик для команды /start

Функция addToBD должна принимать один параметер — id. Создайте базу данных SQLite3 (db.db допустим) в папке с файлом .ру и сверяйте есть пользователь или его там нет (чтобы не забить БД дублями).

def addToDB(id): with sqlite3.connect(‘db.db’) as conn: cur = conn.cursor() cur.execute(f’SELECT COUNT(`id`) FROM `tgbot` WHERE `user_id` = ‘) if cur.fetchone()[0] == 0: cur.execute(f’INSERT INTO `tgbot` (`user_id`) VALUES ()’) conn.commit()
CREATE TABLE `tgbot` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `user_id` INTEGER );

И допустим создадим команду /alert которая будет оповещать всех пользователей из БД по ID что начался стрим

КАК НАСТРОИТЬ УВЕДОМЛЕНИЯ О НАЧАЛЕ СТРИМА НА ДИСКОРД СЕРВЕРЕ

ADMIN_ID — это ваш Chat ID. Ну и сама функция sendToAll():

def sendToAll(): with sqlite3.connect(‘db.db’) as conn: cur = conn.cursor() cur.execute(f’SELECT `user_id` FROM `tgbot`’) rows = cur.fetchall() for row in rows: bot.send_message(row[0], ‘Stream started!’)

И на финал, пример кода (я его не тестил, писал в Notepad++):

Отслеживать
ответ дан 9 янв 2019 в 22:32
404 2 2 серебряных знака 5 5 бронзовых знаков

Есть у меня скрипт, который проверяет наличие трансляции на Twitch и записывает видео, возьмем ее в качестве основы

client_id = «jzkbprff40iqj646a697cyrvl0zt2m6» # не изменять def check_user(): # 0: online, # 1: offline, # 2: not found, # 3: error url = ‘https://api.twitch.tv/kraken/streams/’ + username info = None status = 3 try: r = requests.get(url, headers = , timeout = 15) r.raise_for_status() info = r.json() if info[‘stream’] == None: status = 1 else: status = 0 except requests.exceptions.RequestException as e: if e.response: if e.response.reason == ‘Not Found’ or e.response.reason == ‘Unprocessable Entity’: status = 2 return status, info def loopcheck(): while True: status, info = self.check_user() if status == 0: #Отправляем сообщение в телеграм time.sleep(refresh)

В цикле каждые 15 секунд опрашиваем сервис о статусе трансляции, если она активна, то отправляем сообщение в телегу.

Еще по теме:  Если позвонил и сбросил на Телеграмм отобразится кому звонил и можно ли удалить

В качестве библиотеки можно использовать telethon. А дальше зависит уже от вас, куда отправлять сообщение и как.

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

Источник: ru.stackoverflow.com

Автоматическое оповещение в Telegram о начале стрима на Twitch

Twitch Telegram Alert bot

Оповещения о начале стрима на твиче в дискорд | Роль для стримов онлайн | Streamcord

Недавно задался вопросом, как добавить автоматические оповещения о начале стрима на Twitch в Telegram канал. Хотел сделать оповещение в виде сообщения с картинкой и кнопкой. Нашёл довольно простое решение. Можно воспользоваться сервисом для автоматизаций, например Make.com.

Итоговый результат будет выглядеть примерно так:

Рассмотрим как это сделать поэтапно.

Создаём Telegram-бота

Для начала нужно создать Telegram-бота и сделать его администратором нашего канала. Для этого в панели поиска Telegram вводим BotFather и переходим в чат с ним.

  • Пишем команду /start для запуска бота. В ответ получаем инструкцию и список доступных команд.
  • Используем команду для создания нового бота: /newbot
  • Следующим сообщением задаём название нашего бота латиницей.
  • Теперь задаём имя пользователя для бота. Оно обязательно должно содержать _bot в конце.

В ответ получаем сообщение о том что бот успешно создан, а также HTTP API токен. Он нам понадобится в дальнейшем.

Переходим в свой Telegram канал. Приглашаем в него созданного нами бота. Для этого нажимаем на название канала, Откроется окно Информация о канале. В нём нажимаем на значок Пригласить пользователя, как показано на следующей картинке. Вбиваем в поиске имя пользователя нашего бота и приглашаем его.

Снова открываем окно Информация о канале. Вызываем меню, как показано на картинке, и заходим в Управление каналом.

Выбираем пункт Администраторы. В нижней части нажимаем Добавить администратора и кликаем на нашего бота. Выставляем права как на картинке, оставляя только право публиковать сообщения.

Больше в Telegram делать ничего не нужно. переходим к настройке автоматизации. Для этого воспользуемся сервисом Make.com. Можно использовать и другой сервис, например IFTTT, но я давно используй Make, поэтому выбрал именно его. Бесплатный тариф в этом сервисе включает две автоматизации (мы сделаем только одну) и 1000 операций в месяц. Для нашей задумки этого хватит.

Еще по теме:  Как из Вайбера переслать голосовое сообщение в Телеграмм

Создаём сценарий в Make.com

Переходим по ссылке https://www.make.com/en/register. Указываем никнейм, почту, пароль, страну (РФ в списке нет. Я указывал Беларусь). Hosting Region – EU. Соглашаемся с Лицензионным соглашением и отказываемся от рассылки.

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

После этого попадаем на главный экран. Жмём справа вверху Create a new scenario.

Жмём на огромную кнопку с плюсом в центре экрана и пишем в поиске Twitch. Кликаем на него.

В выпадающем списке функций ищем Watch Streams. Эта функция запускает действие когда указанный Twitch канал начинает или заканчивает стрим.

В появившемся меню нас просят указать Webhook. нажимаем кнопку Add.

Заполняем всё в открывшемся меню.

  • В строке Webhook name указываем название вебхука (можно оставить стандартное).
  • В строке Connection нужно создать подключение. Жмём кнопку Add, задаём название (можно оставить стандартное). Нажимаем кнопку Save.
  • После этого откроется окно авторизации Twitch. Авторизуемся и нажимаем кнопку Разрешить. В строке User/Channel ID нажимаем кнопку Serach, вводим название Twitch канала (наш никнейм если делаем для своего канала), жмём кнопку Ok. После этого строка User/Channel ID автоматически заполнится цифрами.
  • В строке Event Type выбираем When the specified channel starts a stream.
  • Нажимаем кнопку Save.

По итогу, у меня это окно выглядит так:

В очередном окне нажимаем Ok. С Twitch мы закончили.

Наводим курсор на значок Twitch и нажимаем появившуюся кнопку Add another module. Пишем в поиске Telegram Bot и выбираем его.

В появившемся меню ищем Send a Photo и жмём на него.

Начинаем заполнять открывшееся окно.

Нажимаем кнопку Ok.

Теперь нажимаем кнопки в левом нижнем углу экрана. Иконку Scheduling переключаем в режим ON, жмём на кнопку Run once (в виде кнопки Play), Сохранить (в виде дискеты).

Готово. При следующем запуске стрима на указанном вами Twitch канале, в указанный Telegram канал придёт сообщение с картинкой, текстом и кнопкой ведущей на ваш стрим.

Еще по теме:  Звук Телеграмма уведомление на Айфоне

Источник: mrjovas.com

sinist3r’s thoughts

Продолжаем смотреть graylog и на этот раз будем делать уведомления с помощью телеграм бота. Для этого нужно будет создать отдельный stream, направить туда сообщения, установить в graylog новый плагин и создать алерт с уведомлением.
Ничего сложного.

Создание нового потока проблем уже не должно представлять, а работу с конвейерами мы рассмотрели в прошлый раз.
Поэтому сразу пример правила, которое будет маршрутизировать сообщения по наличию трех указанных полей (и определенного содержимого):

rule «route_ssh_failures»
when
has_field(«auditbeat_event_action») AND
to_string($message.auditbeat_event_action) == «user_login» AND
has_field(«auditbeat_event_outcome») AND
to_string($message.auditbeat_event_outcome) == «failure» AND
has_field(«auditbeat_user_terminal») AND
to_string($message.auditbeat_user_terminal) == «ssh:notty»
then
route_to_stream(«ssh_failures»);
end

Теперь нужно прикрутить новый плагин. Для этого можно сходить на https://github.com/irgendwr/TelegramAlert/releases и взять свежий релиз. Интересует только jar файл, который нужно будет разместить в /usr/share/graylog-server/plugin/ и перезапустить сервис graylog-server.

Так же, нужно создать нового бота, для этого как обычно используется BotFather.
Для настройки оповещений в дальнейшем потребуется ID и токен, тут тоже все стандартно.

После всех приготовлений можно переходить в Alerts / Conditions и добавлять новое условие. Сразу выбираем stream и тип условия.

В нашем примере оповещение сработает если в течении 5 минут будет более 5 сообщений о неудачном входе на сервер по ssh.

Важный нюанс — если оставить параметр «Message Backlog» по дефолту (на нуле), то мы не будем получать само тело сообщения (которое вызвало срабатывание алерта) в телеграм. Поэтому если такая информация будет полезна, лучше выставить этот параметр, например в единицу.

И теперь остается добавить новое оповещение (add new notificaiton).

Здесь нужно будет выбрать тип оповещения и можно переходить к непосредственной настройке.

Шаблон самого сообщения можно взять по образцу как в уведомлении на почту. И так как это телеграм, то вполне поддерживается синтаксис markdown. К слову, есть кнопка «Test» и оповещения можно сразу же проверить и отформатировать по вкусу.

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

Если перейти по ссылке, то попадем в поиск с выставленным фильтром на дату/время и stream, что дает возможность увидеть только те сообщения которые и привели к срабатыванию алерта.

Источник: unix0id.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...