This repository was archived by the owner on Nov 3, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 57
Expand file tree
/
Copy pathmain.go
More file actions
75 lines (62 loc) · 2.26 KB
/
main.go
File metadata and controls
75 lines (62 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package main
import (
"fmt"
"log"
"net/http"
"os"
"helios/handlers"
"helios/scheduler"
)
func validateEnvironment() {
username := os.Getenv("USERNAME")
password := os.Getenv("PASSWORD")
subscriptionURL := os.Getenv("SUBSCRIPTION_URL")
if username == "" {
log.Fatal("Error: USERNAME environment variable is not set")
}
if username == "your_username" {
log.Fatal("Error: Please change your USERNAME environment variable")
}
if password == "" {
log.Fatal("Error: PASSWORD environment variable is not set")
}
if password == "your_password" {
log.Fatal("Error: Please change your PASSWORD environment variable")
}
if subscriptionURL == "" {
log.Fatal("Error: SUBSCRIPTION_URL environment variable is not set")
}
if subscriptionURL == "https://your_subscription_url.com" {
log.Fatal("Error: Please change your SUBSCRIPTION_URL environment variable")
}
}
func main() {
validateEnvironment()
initAll()
// 启动定时任务调度器
go startScheduler()
// 登录接口不需要认证
http.HandleFunc("/api/login", handlers.LoginHandler)
// 其他接口都需要认证中间件
http.HandleFunc("/api/search", handlers.AuthMiddleware(handlers.SearchHandler))
http.HandleFunc("/api/search/ws", handlers.AuthMiddleware(handlers.SSESearchHandler))
http.HandleFunc("/api/search/resources", handlers.AuthMiddleware(handlers.ResourcesHandler))
http.HandleFunc("/api/search/suggestions", handlers.AuthMiddleware(handlers.SuggestionsHandler))
http.HandleFunc("/api/detail", handlers.AuthMiddleware(handlers.DetailHandler))
http.HandleFunc("/api/favorites", handlers.AuthMiddleware(handlers.FavoritesHandler))
http.HandleFunc("/api/searchhistory", handlers.AuthMiddleware(handlers.SearchHistoryHandler))
http.HandleFunc("/api/playrecords", handlers.AuthMiddleware(handlers.PlayRecordsHandler))
http.HandleFunc("/api/live/sources", handlers.AuthMiddleware(handlers.LiveSourcesHandler))
port := ":8080"
fmt.Printf("Server starting on port %s\n", port)
log.Fatal(http.ListenAndServe(port, nil))
}
// startScheduler 启动定时任务调度器
func startScheduler() {
sched := scheduler.NewScheduler()
// 添加每小时执行的任务
hourlyTask := scheduler.NewHourlyTask("每小时数据清理任务")
sched.AddTask(hourlyTask)
// 启动调度器
sched.Start()
}