0xSparked's picture
Upload folder using huggingface_hub
db14b86
import json
from pathlib import Path
from fastapi import FastAPI, Response, Request
from scripts.lib.config import LobeConfig
from scripts.lib.package import LobePackage
from scripts.lib.locale import LobeLocale
from scripts.lib.lobe_log import LobeLog
class LobeApi:
def __init__(self, config: LobeConfig, package: LobePackage, locale: LobeLocale):
self.package = package
self.config = config
self.locale = locale
pass
def create_api_route(self, app: FastAPI):
@app.get("/lobe/package")
async def lobe_package_get():
LobeLog.debug("lobe_package_get")
if self.package.is_empty():
return Response(content=self.package.json(), media_type="application/json", status_code=404)
return Response(content=self.package.json(), media_type="application/json", status_code=200)
@app.get("/lobe/locales/{lng}")
async def lobe_locale_get(lng: str):
LobeLog.debug(f"lobe_locale_get: {lng}")
language_data = self.locale.get_language_file(lng)
return Response(content=json.dumps(language_data), media_type="application/json", status_code=200)
@app.get("/lobe/config")
async def lobe_config_get():
LobeLog.debug("lobe_config_get")
if self.config.is_empty():
return Response(content=self.config.json(), media_type="application/json", status_code=404)
return Response(content=self.config.json(), media_type="application/json", status_code=200)
@app.post("/lobe/config")
async def lobe_config_save(request: Request):
LobeLog.debug("lobe_config_save")
data = await request.json()
self.config.save(data)
return Response(
content=json.dumps({"message": "Config saved successfully"}),
media_type="application/json", status_code=200
)
@app.delete("/lobe/config")
async def lobe_config_delete():
LobeLog.debug("lobe_config_delete")
self.config.delete()
return Response(
content=json.dumps({"message": "Config deleted successfully"}),
media_type="application/json", status_code=200
)