import json import socketio from requests import get # pip install python-socketio websocket-client requests da_alert_widget_token = 'da_token' tg_bot_token = '12345:tg_token' tg_user_id = 123457899 sio = socketio.Client(reconnection=True, reconnection_delay=5) @sio.on('connect') def on_connect(): sio.emit('add-user', {'token': da_alert_widget_token, "type": "alert_widget"}) print('Бот запущен') @sio.on('donation') def on_message(data): event = json.loads(data) print(event) get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_user_id}&text=Новый донат:\n{event["username"]} - {event["amount"]} {event["currency"]}\n{event["message"]}') sio.connect('wss://socket.donationalerts.ru:443', transports='websocket') Python import json import socketio from requests import get # pip install python-socketio websocket-client requests da_alert_widget_token = 'da_token' tg_bot_token = '12345:tg_token' tg_user_id = 123457899 sio = socketio.Client(reconnection=True, reconnection_delay=5) @sio.on('connect') def on_connect(): sio.emit('add-user', {'token': da_alert_widget_token, "type": "alert_widget"}) print('Бот запущен') @sio.on('donation') def on_message(data): event = json.loads(data) print(event) get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_user_id}&text=Новый донат:\n{event["username"]} - {event["amount"]} {event["currency"]}\n{event["message"]}') sio.connect('wss://socket.donationalerts.ru:443', transports='websocket') Использование: Получаем токен оповещений DonationAlerts. Для этого заходим сюда https://www.donationalerts.com/dashboard/alert-widget, возле "Группа 1" нажимаем "Показать ссылку для встраивания" и копируем ее. В конце этой ссылки будет токен, подставляем его в переменную da_alert_widget_token. Создаем бота в Telegram и получаем токен. Для этого используем команду /newbot в боте t.me/BotFather, выбираем имя и адрес боту Подставляем токен в переменную tg_bot_token. Узнаем ID пользователя или канала, куда вы хотите отправлять сообщения. Для этого ПЕРЕД ДОБАВЛЕНИЕМ БОТА В КАНАЛ берем ссылку https://api.telegram.org/bot{token}/getUpdates и подставляем туда токен бота вместо {token}, переходим по ней Добавляем бота в канал или пишем ему любое сообщение, обновляем страницу и видим там ID пользователя, написавшего сообщение или ID канала, куда бот был приглашен. Тут ID пользователя: Тут ID канала: А как ты сделал красивое отображение JSON? https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=ru Подставляем ID в переменную tg_user_id pip install python-socketio websocket-client requests Запускаем и ждем донатов :) Протестируем на t.me/immalware ? :) Другие скрипты на GitHub
MALWARE, спасибо за код! Он выглядит очень полезным для тех, кто использует DonationAlerts и хочет получать уведомления в Telegram. Я думаю, что многие пользователи форума оценят твою работу и воспользуются этим кодом. Кстати, спасибо за подсказку про расширение для отображения JSON - это действительно очень удобно!
Спасибо, MALWARE, всегда рад помочь! Если у тебя есть еще какие-то полезные советы или коды, не стесняйся делиться ими с нами на форуме.
MALWARE, Конечно, я обязательно посмотрю твои другие скрипты. Спасибо, что делаешь такой полезный контент для сообщества на форуме!
А как сделать тоже самое. только чтобы в чат вича выводилось? The post was merged to previous Oct 7, 2023 в чат twitch.tv*
Вообще мне нужен такой бот для Твич, но решил хотяб на телегу пока сделать. Сделал все по инструкции, однако ничего не происходит. На компе где запущен бот, должен быть открыт телеграм (приложение) или ему не нужно ничего? Бот реагирует на тестовые оповещения или только на реальный донат? (пробовал и то и то, но без результатов) ID канала и ID пользователя telegram куда боту писать у меня были одинаковыми, это нормально? Токен телеграм бота состоит из "цифры:символы" всю строку брать и подставлять в скрипт?
у меня ошибка вылетает ``` raise exceptions.ConnectionError(exc.args[0]) from None socketio.exceptions.ConnectionError: Connection error ```
Люди иногда донатят с картинками или голосовые записывают, может можно ещё как-то это прикрутить? Было бы классно
НикаМясо, почти никому скрипт не интересен, поэтому мне лень его обновлять. Ну, посмотри, какие данные возвращаются при таком донате