add maxkb toggle
This commit is contained in:
16
database.py
16
database.py
@@ -1,5 +1,5 @@
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
from models import PresetCode
|
||||
from models import PresetCode, Setting
|
||||
from schemas import PresetCodeCreate, PresetCodeResponse
|
||||
from typing import List, Optional
|
||||
|
||||
@@ -38,10 +38,20 @@ class DatabaseService:
|
||||
|
||||
@staticmethod
|
||||
async def delete_code(code_id: int) -> bool:
|
||||
"""删除指定 ID 的代码"""
|
||||
code = await PresetCode.get_or_none(id=code_id)
|
||||
if not code:
|
||||
return False
|
||||
|
||||
await code.delete()
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
async def get_maxkb_enabled() -> bool:
|
||||
setting, _ = await Setting.get_or_create(key="maxkb_enabled", defaults={"value": True})
|
||||
return setting.value
|
||||
|
||||
@staticmethod
|
||||
async def toggle_maxkb_enabled() -> bool:
|
||||
setting, _ = await Setting.get_or_create(key="maxkb_enabled", defaults={"value": True})
|
||||
setting.value = not setting.value
|
||||
await setting.save()
|
||||
return setting.value
|
||||
|
||||
11
main.py
11
main.py
@@ -1,4 +1,3 @@
|
||||
from io import StringIO
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import StreamingResponse
|
||||
@@ -36,6 +35,16 @@ DATABASE_URL = "sqlite://database.db"
|
||||
DatabaseService.init_database(app, DATABASE_URL)
|
||||
|
||||
|
||||
@app.get("/maxkb")
|
||||
async def get_maxkb():
|
||||
return {"enabled": await DatabaseService.get_maxkb_enabled()}
|
||||
|
||||
|
||||
@app.post("/maxkb")
|
||||
async def toggle_maxkb():
|
||||
return {"enabled": await DatabaseService.toggle_maxkb_enabled()}
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def get_all_codes() -> dict:
|
||||
"""获取所有预设代码"""
|
||||
|
||||
11
models.py
11
models.py
@@ -2,10 +2,17 @@ from tortoise.models import Model
|
||||
from tortoise import fields
|
||||
|
||||
class PresetCode(Model):
|
||||
"""预设代码数据库模型"""
|
||||
id = fields.IntField(pk=True)
|
||||
query = fields.CharField(max_length=255, unique=True)
|
||||
code = fields.TextField()
|
||||
|
||||
|
||||
class Meta:
|
||||
table = "preset_codes"
|
||||
|
||||
|
||||
class Setting(Model):
|
||||
key = fields.CharField(max_length=100, pk=True)
|
||||
value = fields.BooleanField()
|
||||
|
||||
class Meta:
|
||||
table = "settings"
|
||||
|
||||
Reference in New Issue
Block a user