add "refresh" link, change CDN
Marco Andronaco andronacomarco@gmail.com
Thu, 21 Nov 2024 14:13:14 +0100
5 files changed,
29 insertions(+),
5 deletions(-)
M
src/app/handlers.go
→
src/app/handlers.go
@@ -15,9 +15,10 @@ )
const ( fmtYouTubeURL = "https://www.youtube.com/watch?v=%s" + err400 = "Bad Request" + err401 = "Unauthorized" err404 = "Not Found" err500 = "Internal Server Error" - err401 = "Unauthorized" heading = `<!-- .d8888b. 8888888b. d8b d88P Y88b 888 Y88b Y8P@@ -203,3 +204,23 @@ http.Error(w, err500, http.StatusInternalServerError)
return } } + +func refreshHandler(w http.ResponseWriter, r *http.Request) { + videoID := r.PathValue("videoID") + if videoID == "" { + http.Error(w, err400, http.StatusBadRequest) + return + } + + if !videoRegex.MatchString(videoID) { + http.Error(w, err400, http.StatusBadRequest) + return + } + + video, err := g.KS.Get(videoID) + if err == nil && video != nil { + g.KS.Delete(videoID) + } + + http.Redirect(w, r, "/"+videoID, http.StatusFound) +}
M
src/app/main.go
→
src/app/main.go
@@ -65,9 +65,10 @@ r.HandleFunc("GET /proxy/{videoID}", proxyHandler)
r.HandleFunc("GET /proxy/{videoID}/{formatID}", proxyHandler) r.HandleFunc("GET /sub/{videoID}/{language}", subHandler) + r.HandleFunc("GET /cache", cacheHandler) + r.HandleFunc("GET /refresh/{videoID}", refreshHandler) + r.HandleFunc("POST /download", downloadHandler) - - r.HandleFunc("GET /cache", cacheHandler) log.Println("Serving on port " + g.Port) log.Fatal(http.ListenAndServe(":"+g.Port, serveMux))
M
src/globals/globals.go
→
src/globals/globals.go
@@ -20,7 +20,7 @@ Proxy bool
Port string C = http.DefaultClient - YT = youtube.Client{} + YT = youtube.Client{HTTPClient: C} XT = extemplate.New().Funcs(funcMap) KS = myks.New[youtube.Video](3 * time.Hour)
M
templates/base.tmpl
→
templates/base.tmpl
@@ -7,7 +7,7 @@ <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> {{block "meta" .}}{{end}} <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text fill=%22white%22 y=%22.9em%22 font-size=%2290%22>🛠</text></svg>"> - <link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css"> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"> </head> <body>
M
templates/video.tmpl
→
templates/video.tmpl
@@ -63,4 +63,6 @@ </form>
<a href="https://www.youtube.com/watch?v={{ .VideoID }}">Watch on YouTube</a> <br /> <a href="/">What is this?</a> + <br /> + <a href="/refresh/{{ .VideoID }}">Refresh</a> {{end}}