mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-13 18:11:03 +08:00
fix: program api problem
This commit is contained in:
@@ -5,6 +5,8 @@ import signal
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from .response import u_response
|
||||
|
||||
from module.core import Program
|
||||
from module.models import APIResponse
|
||||
from module.conf import VERSION
|
||||
@@ -28,11 +30,8 @@ async def shutdown():
|
||||
@router.get("/restart", response_model=APIResponse, dependencies=[Depends(get_current_user)])
|
||||
async def restart():
|
||||
try:
|
||||
program.restart()
|
||||
return JSONResponse(
|
||||
status_code=200,
|
||||
content={"msg_en": "Restart program successfully.", "msg_zh": "重启程序成功。"},
|
||||
)
|
||||
resp = program.restart()
|
||||
return u_response(resp)
|
||||
except Exception as e:
|
||||
logger.debug(e)
|
||||
logger.warning("Failed to restart program")
|
||||
@@ -45,12 +44,11 @@ async def restart():
|
||||
)
|
||||
|
||||
|
||||
@router.get("/start", response_model=APIResponse)
|
||||
async def start(current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
@router.get("/start", response_model=APIResponse, dependencies=[Depends(get_current_user)])
|
||||
async def start():
|
||||
try:
|
||||
return program.start()
|
||||
resp = program.start()
|
||||
return u_response(resp)
|
||||
except Exception as e:
|
||||
logger.debug(e)
|
||||
logger.warning("Failed to start program")
|
||||
@@ -63,17 +61,13 @@ async def start(current_user=Depends(get_current_user)):
|
||||
)
|
||||
|
||||
|
||||
@router.get("/stop")
|
||||
async def stop(current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
return program.stop()
|
||||
@router.get("/stop", response_model=APIResponse, dependencies=[Depends(get_current_user)])
|
||||
async def stop():
|
||||
return u_response(program.stop())
|
||||
|
||||
|
||||
@router.get("/status")
|
||||
async def program_status(current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
@router.get("/status", response_model=dict, dependencies=[Depends(get_current_user)])
|
||||
async def program_status():
|
||||
if not program.is_running:
|
||||
return {
|
||||
"status": False,
|
||||
@@ -88,10 +82,8 @@ async def program_status(current_user=Depends(get_current_user)):
|
||||
}
|
||||
|
||||
|
||||
@router.get("/shutdown")
|
||||
async def shutdown_program(current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
@router.get("/shutdown", response_model=APIResponse, dependencies=[Depends(get_current_user)])
|
||||
async def shutdown_program():
|
||||
program.stop()
|
||||
logger.info("Shutting down program...")
|
||||
os.kill(os.getpid(), signal.SIGINT)
|
||||
@@ -102,8 +94,6 @@ async def shutdown_program(current_user=Depends(get_current_user)):
|
||||
|
||||
|
||||
# Check status
|
||||
@router.get("/check/downloader", tags=["check"], response_model=bool)
|
||||
async def check_downloader_status(current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
@router.get("/check/downloader", tags=["check"], response_model=bool, dependencies=[Depends(get_current_user)])
|
||||
async def check_downloader_status():
|
||||
return program.check_downloader()
|
||||
|
||||
@@ -2,6 +2,7 @@ import logging
|
||||
|
||||
from module.conf import VERSION, settings
|
||||
from module.update import data_migration, from_30_to_31, start_up, first_run
|
||||
from module.models import ResponseModel
|
||||
|
||||
from .sub_thread import RenameThread, RSSThread
|
||||
|
||||
@@ -56,24 +57,50 @@ class Program(RenameThread, RSSThread):
|
||||
if self.enable_rss:
|
||||
self.rss_start()
|
||||
logger.info("Program running.")
|
||||
return {"status": "Program started."}
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Program started.",
|
||||
msg_zh="程序启动成功。",
|
||||
)
|
||||
else:
|
||||
self.stop_event.set()
|
||||
return {"status": "Can't connect to downloader. Program not paused."}
|
||||
logger.warning("Program failed to start.")
|
||||
return ResponseModel(
|
||||
status=False,
|
||||
status_code=406,
|
||||
msg_en="Program failed to start.",
|
||||
msg_zh="程序启动失败。",
|
||||
)
|
||||
|
||||
def stop(self):
|
||||
if self.is_running:
|
||||
self.stop_event.set()
|
||||
self.rename_stop()
|
||||
self.rss_stop()
|
||||
return {"status": "Program stopped."}
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Program stopped.",
|
||||
msg_zh="程序停止成功。",
|
||||
)
|
||||
else:
|
||||
return {"status": "Program is not running."}
|
||||
return ResponseModel(
|
||||
status=False,
|
||||
status_code=406,
|
||||
msg_en="Program is not running.",
|
||||
msg_zh="程序未运行。",
|
||||
)
|
||||
|
||||
def restart(self):
|
||||
self.stop()
|
||||
self.start()
|
||||
return {"status": "Program restarted."}
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Program restarted.",
|
||||
msg_zh="程序重启成功。",
|
||||
)
|
||||
|
||||
def update_database(self):
|
||||
if not self.version_update:
|
||||
|
||||
@@ -67,7 +67,14 @@ defineEmits(['click']);
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="type === 'search'" w-480px rounded-12px p-4px shadow class="card-border">
|
||||
<div
|
||||
v-else-if="type === 'search'"
|
||||
w-480px rounded-12px p-4px
|
||||
shadow
|
||||
transition-opacity
|
||||
ease-in-out
|
||||
duration-300
|
||||
class="card-border">
|
||||
<div
|
||||
bg-white rounded-8px p-12px
|
||||
fx-cer justify-between
|
||||
@@ -123,4 +130,15 @@ defineEmits(['click']);
|
||||
.search-image {
|
||||
transform: translateY(-25%);
|
||||
}
|
||||
|
||||
.bangumi-enter-active,
|
||||
.bangumi-leave-active {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.bangumi-enter-from,
|
||||
.bangumi-leave-to {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
</style>
|
||||
@@ -4,6 +4,7 @@ import {vOnClickOutside} from "@vueuse/components";
|
||||
|
||||
defineEmits(['add-bangumi']);
|
||||
const showProvider = ref(false);
|
||||
const hasUpdate = ref(false);
|
||||
const {
|
||||
providers,
|
||||
getProviders,
|
||||
|
||||
Reference in New Issue
Block a user