add edit message

This commit is contained in:
sergey 2025-04-15 14:58:09 +03:00
parent ab2b4a40de
commit 93e85f790e
5 changed files with 43 additions and 4 deletions

View File

@ -14,6 +14,7 @@ CFG__ZABBIX__ALERT_TEXT_DOWN=Zabbix service DOWN
CFG__TGBOT__TOKEN=string
CFG__TGBOT__CHAT_ID=00000000
CFG__TGBOT__TREAD_ID=0
CFG__TGBOT__DELETE_MSG=string
CFG__REDIS__HOST=localhost
CFG__REDIS__PORT=6379

View File

@ -42,6 +42,7 @@ class TelegramBotConfig(BaseModel):
token: str
chat_id: int
tread_id: int
delete_msg: str
class ZabbixConfig(BaseModel):

16
main.py
View File

@ -8,7 +8,13 @@ from redis_db import (
del_value,
)
import asyncio
from telegram import del_message, send_message, start_bot, send_zabbix_api_alert
from telegram import (
del_message,
send_message,
start_bot,
send_zabbix_api_alert,
edit_message,
)
async def dashboard():
@ -59,8 +65,12 @@ async def dashboard():
if resp["status"] == 200:
await del_value(closed_alert)
if resp["status"] == 400:
log.warning(f"remove olg message {msg_id} from reddis")
await del_value(closed_alert)
resp = await edit_message(int(msg_id), conf.tgbot.delete_msg)
if resp["status"] == 200:
await del_value(closed_alert)
if resp["status"] == 400:
log.warning(f"remove olg message {msg_id} from reddis")
await del_value(closed_alert)
async def dashboard_loop():

View File

@ -1,5 +1,6 @@
from .message import (
send_message,
edit_message,
del_message,
send_zabbix_api_alert,
)
@ -7,6 +8,7 @@ from .bot import start_bot
__all__ = [
"send_message",
"edit_message",
"del_message",
"start_bot",
"send_zabbix_api_alert",

View File

@ -46,7 +46,32 @@ async def send_message(message: str, event_id: int) -> dict:
async def edit_message(message_id: int, message: str) -> dict:
pass
url = f"https://api.telegram.org/bot{conf.tgbot.token}/editMessageText"
async with aiohttp.ClientSession() as session:
try:
async with session.post(
url,
json={
"chat_id": conf.tgbot.chat_id,
"message_id": message_id,
"text": message,
},
) as response:
if response.status == 200:
log.info(f"Message ID {message_id} edited")
return {
"status": response.status,
}
else:
log.warning(
f"Message ID {message_id} NOT edit. Response status: {response.status}"
)
return {
"status": response.status,
}
except Exception as e:
log.warning(f"Exception: {e}")
return {"status": e}
async def del_message(