0b7fc29ac4
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com> Co-authored-by: Soulter <905617992@qq.com>
27 lines
708 B
Python
27 lines
708 B
Python
from quart import abort, send_file
|
|
|
|
from astrbot import logger
|
|
from astrbot.core import file_token_service
|
|
|
|
from .route import Route, RouteContext
|
|
|
|
|
|
class FileRoute(Route):
|
|
def __init__(
|
|
self,
|
|
context: RouteContext,
|
|
) -> None:
|
|
super().__init__(context)
|
|
self.routes = {
|
|
"/file/<file_token>": ("GET", self.serve_file),
|
|
}
|
|
self.register_routes()
|
|
|
|
async def serve_file(self, file_token: str):
|
|
try:
|
|
file_path = await file_token_service.handle_file(file_token)
|
|
return await send_file(file_path)
|
|
except (FileNotFoundError, KeyError) as e:
|
|
logger.warning(str(e))
|
|
return abort(404)
|