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 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
11
main.py
@@ -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:
|
||||||
"""获取所有预设代码"""
|
"""获取所有预设代码"""
|
||||||
|
|||||||
11
models.py
11
models.py
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user