All checks were successful
Build / build (push) Successful in 2m52s
Closes #1
82 lines
1.5 KiB
Go
82 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"flag"
|
|
"github.com/playwright-community/playwright-go"
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
var err error
|
|
var noInstall = flag.Bool("no-install", false, "skip browser installation")
|
|
var onlyInstall = flag.Bool("install", false, "install the required browser and do nothing else")
|
|
flag.Parse()
|
|
|
|
options := &playwright.RunOptions{
|
|
Browsers: []string{"firefox"},
|
|
}
|
|
if !*noInstall {
|
|
err = playwright.Install(options)
|
|
if err != nil {
|
|
log.Panicf("error installing playwright: %v", err)
|
|
}
|
|
}
|
|
|
|
if *onlyInstall {
|
|
return
|
|
}
|
|
|
|
db := openDatabase()
|
|
defer db.Close()
|
|
|
|
sleepTimeStr := os.Getenv("VIVAPLUS_SLEEPTIME")
|
|
sleepTime := 15
|
|
if sleepTimeStr != "" {
|
|
sleepTime, err = strconv.Atoi(sleepTimeStr)
|
|
if err != nil {
|
|
log.Fatalf("error parsing sleep time: %v", err)
|
|
}
|
|
}
|
|
|
|
w := NewWebClient(options)
|
|
username := os.Getenv("VIVAPLUS_USER")
|
|
password, err := base64.StdEncoding.DecodeString(os.Getenv("VIVAPLUS_PASS"))
|
|
if err != nil {
|
|
log.Fatalf("error decoding password: %v", err)
|
|
}
|
|
|
|
err = w.Login(username, string(password))
|
|
if err != nil {
|
|
log.Fatalf("error login in: %v", err)
|
|
}
|
|
|
|
for {
|
|
err = w.DiscoverAllVideos(db)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err = w.FetchVideoMetadata(db)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err = CalculateEpisodeNumbers(db)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err = DownloadAllVideos(db)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
log.Printf("Sleeping %d minutes until next run", sleepTime)
|
|
time.Sleep(time.Duration(sleepTime) * time.Minute)
|
|
}
|
|
}
|