add maxkb toggle

This commit is contained in:
2026-04-27 08:57:18 -06:00
parent c2549cf3cc
commit e1af34a986
3 changed files with 32 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
from tortoise.contrib.fastapi import register_tortoise from tortoise.contrib.fastapi import register_tortoise
from models import PresetCode from models import PresetCode, Setting
from schemas import PresetCodeCreate, PresetCodeResponse from schemas import PresetCodeCreate, PresetCodeResponse
from typing import List, Optional from typing import List, Optional
@@ -38,10 +38,20 @@ class DatabaseService:
@staticmethod @staticmethod
async def delete_code(code_id: int) -> bool: async def delete_code(code_id: int) -> bool:
"""删除指定 ID 的代码"""
code = await PresetCode.get_or_none(id=code_id) code = await PresetCode.get_or_none(id=code_id)
if not code: if not code:
return False return False
await code.delete() await code.delete()
return True 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
View File

@@ -1,4 +1,3 @@
from io import StringIO
from fastapi import FastAPI, HTTPException from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse from fastapi.responses import StreamingResponse
@@ -36,6 +35,16 @@ DATABASE_URL = "sqlite://database.db"
DatabaseService.init_database(app, DATABASE_URL) 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("/") @app.get("/")
async def get_all_codes() -> dict: async def get_all_codes() -> dict:
"""获取所有预设代码""" """获取所有预设代码"""

View File

@@ -2,10 +2,17 @@ from tortoise.models import Model
from tortoise import fields from tortoise import fields
class PresetCode(Model): class PresetCode(Model):
"""预设代码数据库模型"""
id = fields.IntField(pk=True) id = fields.IntField(pk=True)
query = fields.CharField(max_length=255, unique=True) query = fields.CharField(max_length=255, unique=True)
code = fields.TextField() code = fields.TextField()
class Meta: class Meta:
table = "preset_codes" table = "preset_codes"
class Setting(Model):
key = fields.CharField(max_length=100, pk=True)
value = fields.BooleanField()
class Meta:
table = "settings"