mirror of
https://github.com/catspace-dev/unicheckbot.git
synced 2025-06-22 14:33:04 +03:00
base rewrite
This commit is contained in:
parent
d9b4423672
commit
ea40f85d63
|
@ -6,7 +6,7 @@ from httpx import Response
|
||||||
from aiogram.bot import Bot
|
from aiogram.bot import Bot
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from core.coretypes import APINodeInfo
|
from core.coretypes import APINodeInfo
|
||||||
from .helpers import send_api_requests, check_int
|
from .helpers import send_api_requests, check_int, validate_local
|
||||||
|
|
||||||
header = "Отчет о проверке хоста:" \
|
header = "Отчет о проверке хоста:" \
|
||||||
"\n\n— Хост: {target_fq}"\
|
"\n\n— Хост: {target_fq}"\
|
||||||
|
@ -21,9 +21,16 @@ class InvalidPort(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class LocalhostForbidden(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class CheckerBaseHandler:
|
class CheckerBaseHandler:
|
||||||
help_message = "Set help message in class!"
|
help_message = "Set help message in class!"
|
||||||
header_message = header
|
header_message = header
|
||||||
|
localhost_forbidden_message = "❗ Локальные адреса запрещены"
|
||||||
|
invalid_port_message = "Invalid port!"
|
||||||
|
|
||||||
api_endpoint = "Set api endpoint in class!"
|
api_endpoint = "Set api endpoint in class!"
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -31,7 +38,24 @@ class CheckerBaseHandler:
|
||||||
|
|
||||||
async def handler(self, message: Message):
|
async def handler(self, message: Message):
|
||||||
"""Always should call check at end"""
|
"""Always should call check at end"""
|
||||||
raise NotImplemented
|
|
||||||
|
async def target_port_handler(self, message: Message):
|
||||||
|
"""This hanler can be used if you need target port args"""
|
||||||
|
try:
|
||||||
|
args = await self.process_args(message.text)
|
||||||
|
except NotEnoughArgs:
|
||||||
|
return await message.answer(self.help_message, parse_mode="Markdown")
|
||||||
|
except InvalidPort:
|
||||||
|
return await message.answer(self.invalid_port_message, parse_mode="Markdown")
|
||||||
|
try:
|
||||||
|
await self.validate_target(args[0])
|
||||||
|
except LocalhostForbidden:
|
||||||
|
return await message.answer(self.localhost_forbidden_message, parse_mode="Markdown")
|
||||||
|
await self.check(
|
||||||
|
message.chat.id,
|
||||||
|
message.bot,
|
||||||
|
dict(target=args[0], port=args[1], target_fq=f"{args[0]}:{args[1]}")
|
||||||
|
)
|
||||||
|
|
||||||
async def check(self, chat_id: int, bot: Bot, data: dict):
|
async def check(self, chat_id: int, bot: Bot, data: dict):
|
||||||
rsp_msg = await bot.send_message(chat_id, header.format(**data))
|
rsp_msg = await bot.send_message(chat_id, header.format(**data))
|
||||||
|
@ -47,6 +71,10 @@ class CheckerBaseHandler:
|
||||||
iter_keys = iter_keys + 1
|
iter_keys = iter_keys + 1
|
||||||
await rsp_msg.edit_text(rsp_msg.text + f"\n\nПроверка завершена❗")
|
await rsp_msg.edit_text(rsp_msg.text + f"\n\nПроверка завершена❗")
|
||||||
|
|
||||||
|
async def validate_target(self, target: str):
|
||||||
|
if validate_local(target):
|
||||||
|
raise LocalhostForbidden()
|
||||||
|
|
||||||
async def process_args(self, text: str) -> list:
|
async def process_args(self, text: str) -> list:
|
||||||
raise NotImplemented
|
raise NotImplemented
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user