Skip to content

Commit 521db25

Browse files
refactor: ♻️ Organize code and implement adding missing album songs when checking album information
1 parent 72fd033 commit 521db25

20 files changed

Lines changed: 1118 additions & 848 deletions

File tree

.air.toml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
root = "."
2+
testdata_dir = "testdata"
3+
tmp_dir = "tmp"
4+
5+
[build]
6+
args_bin = []
7+
bin = "./tmp/main"
8+
cmd = "go build -o ./tmp/main ./cmd/navitube/main.go"
9+
delay = 1000
10+
exclude_dir = ["assets", "tmp", "vendor", "testdata", "music"]
11+
exclude_file = []
12+
exclude_regex = ["_test.go"]
13+
exclude_unchanged = false
14+
follow_symlink = false
15+
full_bin = ""
16+
include_dir = []
17+
include_ext = ["go", "tpl", "tmpl", "html"]
18+
include_file = []
19+
kill_delay = "0s"
20+
log = "build-errors.log"
21+
poll = false
22+
poll_interval = 0
23+
post_cmd = []
24+
pre_cmd = []
25+
rerun = false
26+
rerun_delay = 500
27+
send_interrupt = false
28+
stop_on_error = false
29+
30+
[color]
31+
app = ""
32+
build = "yellow"
33+
main = "magenta"
34+
runner = "green"
35+
watcher = "cyan"
36+
37+
[log]
38+
main_only = false
39+
silent = false
40+
time = false
41+
42+
[misc]
43+
clean_on_exit = false
44+
45+
[proxy]
46+
app_port = 0
47+
enabled = false
48+
proxy_port = 0
49+
50+
[screen]
51+
clear_on_rebuild = false
52+
keep_scroll = true

cmd/navitube/main.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package main
2+
3+
import (
4+
"log"
5+
"net/http"
6+
"time"
7+
8+
"github.com/GerardPolloRebozado/navitube/src/api"
9+
"github.com/GerardPolloRebozado/navitube/src/client"
10+
"github.com/GerardPolloRebozado/navitube/src/config"
11+
"github.com/GerardPolloRebozado/navitube/src/service"
12+
)
13+
14+
func main() {
15+
cfg, err := config.LoadConfig()
16+
if err != nil {
17+
log.Fatalf("config load error: %v", err)
18+
}
19+
20+
rp, err := client.NewReverseProxy(cfg.NavidromeBase)
21+
if err != nil {
22+
log.Fatalf("proxy creation error: %v", err)
23+
}
24+
25+
h := api.NewHandler(cfg, rp)
26+
mux := http.NewServeMux()
27+
28+
api.RegisterRoutes(mux, h)
29+
30+
// Middleware
31+
handler := api.LoggingMiddleware(mux)
32+
handler = api.CORSMiddleware(handler)
33+
34+
srv := &http.Server{
35+
Addr: ":" + cfg.Port,
36+
Handler: handler,
37+
ReadTimeout: 15 * time.Second,
38+
ReadHeaderTimeout: 15 * time.Second,
39+
WriteTimeout: 60 * time.Second,
40+
IdleTimeout: 60 * time.Second,
41+
}
42+
43+
// Start background services
44+
service.StartCleanupCron(cfg)
45+
46+
log.Printf("Proxy listening on :%s, forwarding to %s", cfg.Port, cfg.NavidromeBase)
47+
if err := srv.ListenAndServe(); err != nil {
48+
log.Fatalf("server error: %v", err)
49+
}
50+
}

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ module github.com/GerardPolloRebozado/navitube
33
go 1.25.5
44

55
require github.com/joho/godotenv v1.5.1
6+
7+
require github.com/torabit/itunes v0.0.0-20230702053550-80ae037e7f4f // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
22
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
3+
github.com/torabit/itunes v0.0.0-20230702053550-80ae037e7f4f h1:xMCVryBmnnZP14qap4kDHrE7c7YmvhVDaDMCMMT7Pdw=
4+
github.com/torabit/itunes v0.0.0-20230702053550-80ae037e7f4f/go.mod h1:Hm4MVfhzwIYmI8+6Az10Gh8VEEM+LTw2TfP8QZJ/G34=

handlers.go

Lines changed: 0 additions & 185 deletions
This file was deleted.

0 commit comments

Comments
 (0)