Add dl module

This commit is contained in:
2024-06-17 21:11:23 +02:00
parent eb43976857
commit 6e5dc31856
2 changed files with 79 additions and 0 deletions

76
dl/dl.go Normal file
View File

@@ -0,0 +1,76 @@
package main
import (
"bytes"
"context"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
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"
type Item struct {
Link string `json:"link"`
}
func main() {
log.SetFlags(log.Lmicroseconds)
for _, url := range os.Args[1:] {
log.Printf("Downloading %s", url)
go Download(url)
}
}
func Download(url string) {
req, err := http.NewRequestWithContext(context.Background(), "POST", FULL_URL, nil)
if err != nil {
log.Printf("Error creating PATCH request: %++v", err)
return
}
req.Header.Set("Content-Type", "application/json")
item := new(Item)
item.Link = url
body, err := json.Marshal(item)
if err != nil {
log.Printf("Error marshalling subscription body: %++v", err)
return
}
req.Body = io.NopCloser(bytes.NewReader(body))
client := http.Client{}
res, err := client.Do(req)
if err != nil {
log.Printf("Error sending PATCH request: %++v", err)
return
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
log.Printf("Non-OK HTTP status: %d", res.StatusCode)
body, err = io.ReadAll(res.Body)
if err != nil {
log.Printf("Error reading response body: %++v", err)
return
}
var data APIError
err = json.Unmarshal(body, &data)
if err != nil {
log.Printf("Error unmarshaling JSON: %++v", err)
return
}
log.Printf("API error: %++v", data)
return
}
}

3
dl/go.mod Normal file
View File

@@ -0,0 +1,3 @@
module main
go 1.22.4