add edit message
This commit is contained in:
parent
ab2b4a40de
commit
93e85f790e
|
@ -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
|
||||
|
|
|
@ -42,6 +42,7 @@ class TelegramBotConfig(BaseModel):
|
|||
token: str
|
||||
chat_id: int
|
||||
tread_id: int
|
||||
delete_msg: str
|
||||
|
||||
|
||||
class ZabbixConfig(BaseModel):
|
||||
|
|
12
main.py
12
main.py
|
@ -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():
|
||||
|
@ -56,6 +62,10 @@ async def dashboard():
|
|||
msg_id = await get_value(closed_alert)
|
||||
if msg_id:
|
||||
resp = await del_message(int(msg_id))
|
||||
if resp["status"] == 200:
|
||||
await del_value(closed_alert)
|
||||
if resp["status"] == 400:
|
||||
resp = await edit_message(int(msg_id), conf.tgbot.delete_msg)
|
||||
if resp["status"] == 200:
|
||||
await del_value(closed_alert)
|
||||
if resp["status"] == 400:
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue