refactor: remove shutdown button for Docker deployment
Docker 容器化部署是长期运行的服务,移除关闭服务按钮: - 删除前端 header.ts 中的关闭按钮 - 删除 main.go 中的 /api/shutdown 接口 - 删除 router.go 中的 quit 路由和处理函数 Co-Authored-By: AI
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
|||||||
"io/fs"
|
"io/fs"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
|
||||||
|
|
||||||
"bilidown/internal/router"
|
"bilidown/internal/router"
|
||||||
"bilidown/internal/util"
|
"bilidown/internal/util"
|
||||||
@@ -59,13 +58,6 @@ func mustRunServer() {
|
|||||||
http.HandleFunc("/api/checkFFmpeg", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/api/checkFFmpeg", func(w http.ResponseWriter, r *http.Request) {
|
||||||
util.Res{Success: true, Data: map[string]bool{"available": ffmpegAvailable}}.Write(w)
|
util.Res{Success: true, Data: map[string]bool{"available": ffmpegAvailable}}.Write(w)
|
||||||
})
|
})
|
||||||
// 添加关闭服务接口
|
|
||||||
http.HandleFunc("/api/shutdown", func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
util.Res{Success: true, Message: "Shutting down..."}.Write(w)
|
|
||||||
go func() {
|
|
||||||
os.Exit(0)
|
|
||||||
}()
|
|
||||||
})
|
|
||||||
http.Handle("/api/", http.StripPrefix("/api", apiRouter))
|
http.Handle("/api/", http.StripPrefix("/api", apiRouter))
|
||||||
// 启动 HTTP 服务器
|
// 启动 HTTP 服务器
|
||||||
go func() {
|
go func() {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ func API() *http.ServeMux {
|
|||||||
router.HandleFunc("/getFields", getFields)
|
router.HandleFunc("/getFields", getFields)
|
||||||
router.HandleFunc("/saveFields", saveFields)
|
router.HandleFunc("/saveFields", saveFields)
|
||||||
router.HandleFunc("/logout", logout)
|
router.HandleFunc("/logout", logout)
|
||||||
router.HandleFunc("/quit", quit)
|
|
||||||
router.HandleFunc("/getPopularVideos", getPopularVideos)
|
router.HandleFunc("/getPopularVideos", getPopularVideos)
|
||||||
router.HandleFunc("/deleteTask", deleteTask)
|
router.HandleFunc("/deleteTask", deleteTask)
|
||||||
router.HandleFunc("/cancelTask", cancelTask)
|
router.HandleFunc("/cancelTask", cancelTask)
|
||||||
@@ -55,13 +54,6 @@ func getRedirectedLocation(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func quit(w http.ResponseWriter, r *http.Request) {
|
|
||||||
util.Res{Success: true, Message: "退出成功"}.Write(w)
|
|
||||||
go func() {
|
|
||||||
os.Exit(0)
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getFields(w http.ResponseWriter, r *http.Request) {
|
func getFields(w http.ResponseWriter, r *http.Request) {
|
||||||
db := util.MustGetDB()
|
db := util.MustGetDB()
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|||||||
+2
-10
@@ -2,7 +2,7 @@ import van from 'vanjs-core'
|
|||||||
import { now } from 'vanjs-router'
|
import { now } from 'vanjs-router'
|
||||||
import { GLOBAL_HAS_LOGIN, getApi } from './mixin'
|
import { GLOBAL_HAS_LOGIN, getApi } from './mixin'
|
||||||
|
|
||||||
const { a, div, button, span } = van.tags
|
const { a, div, span } = van.tags
|
||||||
|
|
||||||
export const FFmpegAvailable = van.state<boolean | null>(null)
|
export const FFmpegAvailable = van.state<boolean | null>(null)
|
||||||
|
|
||||||
@@ -18,12 +18,6 @@ export const checkFFmpeg = async () => {
|
|||||||
export default () => {
|
export default () => {
|
||||||
const classStr = (name: string) => van.derive(() => `text-nowrap nav-link ${now.val.split('/')[0] == name ? 'active' : ''}`)
|
const classStr = (name: string) => van.derive(() => `text-nowrap nav-link ${now.val.split('/')[0] == name ? 'active' : ''}`)
|
||||||
|
|
||||||
const shutdown = async () => {
|
|
||||||
if (confirm('确定要关闭服务吗?')) {
|
|
||||||
await getApi('/shutdown')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return div({ class: 'hstack gap-4' },
|
return div({ class: 'hstack gap-4' },
|
||||||
div({ class: 'fs-4 fw-bold text-nowrap' }, 'Bilidown'),
|
div({ class: 'fs-4 fw-bold text-nowrap' }, 'Bilidown'),
|
||||||
div({ class: 'nav nav-underline flex-nowrap overflow-auto' },
|
div({ class: 'nav nav-underline flex-nowrap overflow-auto' },
|
||||||
@@ -46,9 +40,7 @@ export default () => {
|
|||||||
span({ class: () => `badge ${FFmpegAvailable.val === true ? 'bg-success' : FFmpegAvailable.val === false ? 'bg-danger' : 'bg-secondary'}` },
|
span({ class: () => `badge ${FFmpegAvailable.val === true ? 'bg-success' : FFmpegAvailable.val === false ? 'bg-danger' : 'bg-secondary'}` },
|
||||||
() => FFmpegAvailable.val === true ? 'FFmpeg ✓' : FFmpegAvailable.val === false ? 'FFmpeg ✗' : '检查中...'
|
() => FFmpegAvailable.val === true ? 'FFmpeg ✓' : FFmpegAvailable.val === false ? 'FFmpeg ✗' : '检查中...'
|
||||||
)
|
)
|
||||||
),
|
)
|
||||||
// 关闭按钮
|
|
||||||
button({ class: 'btn btn-outline-danger btn-sm', onclick: shutdown }, '关闭服务')
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user