HibiAPI / hibiapi /app /routes /__init__.py
DengFengLai's picture
DF.
0a1b571
raw
history blame contribute delete
1.14 kB
from typing import Protocol, cast
from hibiapi.app.routes import (
bika,
bilibili,
netease,
pixiv,
qrcode,
sauce,
tieba,
wallpaper,
)
from hibiapi.utils.config import APIConfig
from hibiapi.utils.exceptions import ExceptionReturn
from hibiapi.utils.log import logger
from hibiapi.utils.routing import SlashRouter
router = SlashRouter(
responses={
code: {
"model": ExceptionReturn,
}
for code in (400, 422, 500, 502)
}
)
class RouteInterface(Protocol):
router: SlashRouter
__mount__: str
__config__: APIConfig
modules = cast(
list[RouteInterface],
[bilibili, netease, pixiv, qrcode, sauce, tieba, wallpaper, bika],
)
for module in modules:
mount = (
mount_point
if (mount_point := module.__mount__).startswith("/")
else f"/{mount_point}"
)
if not module.__config__["enabled"].as_bool():
logger.warning(
f"API Route <y><b>{mount}</b></y> has been "
"<r><b>disabled</b></r> in config."
)
continue
router.include_router(module.router, prefix=mount)