Compare commits

...

3 Commits

Author SHA1 Message Date
Crystal
46fba104db get chat_id and thread_id from caller 2025-12-01 16:11:23 +01:00
Crystal
fd62653dce support threaded groups 2025-12-01 09:57:03 +01:00
andrea
1e2f715ff3 telegram bot to send msg to users 2025-11-29 23:34:26 +01:00
6 changed files with 81 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
local_settings.py

22
bot.py Normal file
View File

@@ -0,0 +1,22 @@
from telegram.ext import Application
from telegram.ext import CommandHandler
import syms as _bot_syms
async def bot_start(update, context):
chat_id = update.effective_chat.id
try: thread_id= update.message.message_thread_id
except: thread_id= None
txt= f'wb_alert bot: <code>{chat_id}</code>'
if thread_id: txt= f'wb_alert bot: <code>{chat_id}</code> thread: <code>{thread_id}</code>'
await update.message.reply_text(txt, parse_mode='HTML')
print(f'alert_bot bot_start: {chat_id}')
def main():
application = Application.builder().token(_bot_syms.TOKEN).build()
application.add_handler(CommandHandler('start', bot_start))
print('alert_bot main: Bot is running...')
application.run_polling()
if __name__ == '__main__':
main()

6
local_settings.py Normal file
View File

@@ -0,0 +1,6 @@
TOKEN= '8381960173:AAFfHKWUNu8WMAAf1dvTnrDraING_ZNTY8k'
USERS= [
('245431596', None), # cry
('-1003426627369', 2), # gruppo, kas
('-1003426627369', 16), # gruppo, woodoo
]

37
msg_sender.py Normal file
View File

@@ -0,0 +1,37 @@
import requests as _rqsts
import syms as _bot_syms
def _wb_telegram_send_alert(message, chat_id, thread_id= None):
print(f"wb_alert_bot _wb_telegram_send_alert: sending message to {chat_id}, {thread_id}...")
payload = {
'chat_id': chat_id,
'text': message,
'parse_mode': 'Markdown',
}
if thread_id: payload['message_thread_id']= thread_id
try:
res = _rqsts.post(_bot_syms.TELEGRAM_API_URL, data=payload, timeout=3)
res.raise_for_status()
jres = res.json()
if jres.get('ok'):
print(f"wb_alert_bot _wb_telegram_send_alert: message sent to {chat_id}, {thread_id}!")
else:
print(f"wb_alert_bot _wb_telegram_send_alert: Message not sent to {chat_id}, {thread_id}: {jres}")
except _rqsts.exceptions.RequestException as e:
print(f"wb_alert_bot _wb_telegram_send_alert: Connection error {chat_id}, {thread_id}: {e}")
def wb_telegram_send_alert(msg, chat_id, thread_id= None):
_wb_telegram_send_alert(msg, chat_id, thread_id)
def wb_telegram_send_alert_debug(msg):
users= _bot_syms.USERS
for user in users:
chat_id= user[0]
thread_id= user[1]
_wb_telegram_send_alert(msg, chat_id, thread_id)

View File

@@ -0,0 +1,2 @@
python-telegram-bot[job-queue]==22.5
requests==2.32.5

13
syms.py Normal file
View File

@@ -0,0 +1,13 @@
try:
from local_settings import TOKEN
except:
print('alert_bot FATAL: add bot token here: local_settings.py')
TOKEN= ''
try:
from local_settings import USERS
except:
print('alert_bot FATAL: add bot users here: local_settings.py')
USERS= []
TELEGRAM_API_URL = f'https://api.telegram.org/bot{TOKEN}/sendMessage'