feat: Add /city and /deb command handlers for weather data and historical weather queries.
This commit is contained in:
@@ -11,6 +11,11 @@ from src.bot.services.city_command_service import CityCommandService
|
|||||||
from src.bot.settings import CITY_QUERY_COST
|
from src.bot.settings import CITY_QUERY_COST
|
||||||
|
|
||||||
|
|
||||||
|
def _is_city_command_text(text: str | None) -> bool:
|
||||||
|
head = str(text or "").strip().split(maxsplit=1)[0].lower()
|
||||||
|
return head == "/city" or head.startswith("/city@")
|
||||||
|
|
||||||
|
|
||||||
class CityCommandHandler:
|
class CityCommandHandler:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -25,7 +30,10 @@ class CityCommandHandler:
|
|||||||
self.io_layer = io_layer
|
self.io_layer = io_layer
|
||||||
|
|
||||||
def register(self) -> None:
|
def register(self) -> None:
|
||||||
@self.bot.message_handler(commands=["city"])
|
@self.bot.message_handler(
|
||||||
|
func=lambda message: _is_city_command_text(getattr(message, "text", None)),
|
||||||
|
content_types=["text"],
|
||||||
|
)
|
||||||
def _city(message):
|
def _city(message):
|
||||||
self.handle(message)
|
self.handle(message)
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ from src.bot.services.deb_command_service import DebCommandService
|
|||||||
from src.bot.settings import DEB_QUERY_COST
|
from src.bot.settings import DEB_QUERY_COST
|
||||||
|
|
||||||
|
|
||||||
|
def _is_deb_command_text(text: str | None) -> bool:
|
||||||
|
head = str(text or "").strip().split(maxsplit=1)[0].lower()
|
||||||
|
return head == "/deb" or head.startswith("/deb@")
|
||||||
|
|
||||||
|
|
||||||
class DebCommandHandler:
|
class DebCommandHandler:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -25,7 +30,10 @@ class DebCommandHandler:
|
|||||||
self.io_layer = io_layer
|
self.io_layer = io_layer
|
||||||
|
|
||||||
def register(self) -> None:
|
def register(self) -> None:
|
||||||
@self.bot.message_handler(commands=["deb"])
|
@self.bot.message_handler(
|
||||||
|
func=lambda message: _is_deb_command_text(getattr(message, "text", None)),
|
||||||
|
content_types=["text"],
|
||||||
|
)
|
||||||
def _deb(message):
|
def _deb(message):
|
||||||
self.handle(message)
|
self.handle(message)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user