Files
youtube-downloader/main.go

55 lines
1.3 KiB
Go

package main
import (
"encoding/json"
"io"
"log"
"net/http"
"time"
)
const POCKETBASE_URL = `https://pocketbase-scratch.site.quack-lab.dev/api/collections`
const POCKETBASE_REALTIME = `https://pocketbase-scratch.site.quack-lab.dev/api/realtime`
const COLLECTION_NAME = "youtubedownload"
const FULL_URL = POCKETBASE_URL + "/" + COLLECTION_NAME + "/records"
func main() {
log.SetFlags(log.Lmicroseconds)
log.Println(FULL_URL)
res, err := http.Get(FULL_URL)
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
log.Printf("Error reading response body: %+v\n", err)
return
}
if res.StatusCode != http.StatusOK {
log.Printf("Non-OK HTTP status: %d\nResponse body: %s\n", res.StatusCode, body)
return
}
var data APIResponse
err = json.Unmarshal(body, &data)
if err != nil {
log.Printf("Error unmarshaling JSON: %+v\n", err)
return
}
// log.Printf("Data: %+v\n", data)
listener := new(RealtimeListener)
listener.Url = POCKETBASE_REALTIME
listener.Collections = []string{COLLECTION_NAME}
listener.initialize()
for event := range listener.Create {
log.Printf("Create event: %+v\n", event)
go Download(event)
}
time.Sleep(1 * time.Hour)
}