Compare commits
No commits in common. "09a890a04a6e657fe9fc2494b4764a8b3abfb35d" and "6c1b0c68e5198afcfb28dfa9faf50ee3b2ef7ff6" have entirely different histories.
09a890a04a
...
6c1b0c68e5
|
@ -27,9 +27,4 @@
|
||||||
|
|
||||||
10. Адрес для подключения к redis
|
10. Адрес для подключения к redis
|
||||||
11. Порт для подключения к redis
|
11. Порт для подключения к redis
|
||||||
12. Пароль для подключения к redis (если нужен)
|
12. Пароль для подключения к redis (если нужен)
|
||||||
|
|
||||||
|
|
||||||
UPD
|
|
||||||
Добавлена проверка доступности апи заббикса и алерт в телегу, если не доступен.
|
|
||||||
Добавлено изменнеие алерта на произвольный текст, если сообщение нельзя удалить из-за срока давности.
|
|
|
@ -14,7 +14,6 @@ CFG__ZABBIX__ALERT_TEXT_DOWN=Zabbix service DOWN
|
||||||
CFG__TGBOT__TOKEN=string
|
CFG__TGBOT__TOKEN=string
|
||||||
CFG__TGBOT__CHAT_ID=00000000
|
CFG__TGBOT__CHAT_ID=00000000
|
||||||
CFG__TGBOT__TREAD_ID=0
|
CFG__TGBOT__TREAD_ID=0
|
||||||
CFG__TGBOT__DELETE_MSG=string
|
|
||||||
|
|
||||||
CFG__REDIS__HOST=localhost
|
CFG__REDIS__HOST=localhost
|
||||||
CFG__REDIS__PORT=6379
|
CFG__REDIS__PORT=6379
|
||||||
|
|
|
@ -42,7 +42,6 @@ class TelegramBotConfig(BaseModel):
|
||||||
token: str
|
token: str
|
||||||
chat_id: int
|
chat_id: int
|
||||||
tread_id: int
|
tread_id: int
|
||||||
delete_msg: str
|
|
||||||
|
|
||||||
|
|
||||||
class ZabbixConfig(BaseModel):
|
class ZabbixConfig(BaseModel):
|
||||||
|
|
|
@ -33,7 +33,6 @@ services:
|
||||||
- CFG__TGBOT__TOKEN=string
|
- CFG__TGBOT__TOKEN=string
|
||||||
- CFG__TGBOT__CHAT_ID=000000
|
- CFG__TGBOT__CHAT_ID=000000
|
||||||
- CFG__TGBOT__TREAD_ID=0
|
- CFG__TGBOT__TREAD_ID=0
|
||||||
- CFG__TGBOT__DELETE_MSG=Deleted
|
|
||||||
|
|
||||||
- CFG__REDIS__HOST=redis
|
- CFG__REDIS__HOST=redis
|
||||||
- CFG__REDIS__PORT=6379
|
- CFG__REDIS__PORT=6379
|
||||||
|
|
16
main.py
16
main.py
|
@ -8,13 +8,7 @@ from redis_db import (
|
||||||
del_value,
|
del_value,
|
||||||
)
|
)
|
||||||
import asyncio
|
import asyncio
|
||||||
from telegram import (
|
from telegram import del_message, send_message, start_bot, send_zabbix_api_alert
|
||||||
del_message,
|
|
||||||
send_message,
|
|
||||||
start_bot,
|
|
||||||
send_zabbix_api_alert,
|
|
||||||
edit_message,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def dashboard():
|
async def dashboard():
|
||||||
|
@ -65,12 +59,8 @@ async def dashboard():
|
||||||
if resp["status"] == 200:
|
if resp["status"] == 200:
|
||||||
await del_value(closed_alert)
|
await del_value(closed_alert)
|
||||||
if resp["status"] == 400:
|
if resp["status"] == 400:
|
||||||
resp = await edit_message(int(msg_id), conf.tgbot.delete_msg)
|
log.warning(f"remove olg message {msg_id} from reddis")
|
||||||
if resp["status"] == 200:
|
await del_value(closed_alert)
|
||||||
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():
|
async def dashboard_loop():
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from .message import (
|
from .message import (
|
||||||
send_message,
|
send_message,
|
||||||
edit_message,
|
|
||||||
del_message,
|
del_message,
|
||||||
send_zabbix_api_alert,
|
send_zabbix_api_alert,
|
||||||
)
|
)
|
||||||
|
@ -8,7 +7,6 @@ from .bot import start_bot
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"send_message",
|
"send_message",
|
||||||
"edit_message",
|
|
||||||
"del_message",
|
"del_message",
|
||||||
"start_bot",
|
"start_bot",
|
||||||
"send_zabbix_api_alert",
|
"send_zabbix_api_alert",
|
||||||
|
|
|
@ -45,35 +45,6 @@ async def send_message(message: str, event_id: int) -> dict:
|
||||||
return {"status": e}
|
return {"status": e}
|
||||||
|
|
||||||
|
|
||||||
async def edit_message(message_id: int, message: str) -> dict:
|
|
||||||
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(
|
async def del_message(
|
||||||
message_id: int,
|
message_id: int,
|
||||||
) -> dict:
|
) -> dict:
|
||||||
|
|
Loading…
Reference in New Issue