| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package main
- import (
- "fmt"
- "log"
- "os"
- "time"
- "git.aetherial.dev/aeth/gluetun-qbitt-sidecar/pkg/gluetun"
- "git.aetherial.dev/aeth/gluetun-qbitt-sidecar/pkg/qbitt"
- "github.com/joho/godotenv"
- )
- func main() {
- godotenv.Load()
- gluetunAddress := os.Getenv("GLUETUN_ADDRESS")
- // gluetunApikey := os.Getenv("GLUETUN_API_KEY")
- qbitAddress := os.Getenv("QBITTORRENT_ADDRESS")
- qbitUsername := os.Getenv("QBITTORRENT_USERNAME")
- qbitPassword := os.Getenv("QBITTORRENT_PASSWORD")
- qbitClient, err := qbitt.NewQbittorrentClient(qbitUsername, qbitPassword, qbitAddress)
- if err != nil {
- log.Fatal(err)
- }
- for {
- auth, err := gluetun.GetAuthentication("./config.toml")
- if err != nil {
- log.Fatal(err)
- }
- port, err := gluetun.GetForwardedPort(gluetunAddress, auth.Apikey)
- if err != nil {
- log.Fatal(err)
- }
- cfg, err := qbitClient.GetRunningConfiguration()
- if err != nil {
- log.Fatal(err)
- }
- if cfg.ListenPort != port.Port { // if the port in qbittorrent is not the same as the forwarded port from gluetun, update it in following block
- err = qbitClient.UpdateIncomingPort(port.Port)
- if err != nil {
- log.Fatal(err)
- }
- updated, err := qbitClient.VerifyPortChange(port.Port)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Updated qbittorrent incoming port: %t\n", updated)
- } else {
- fmt.Printf("Qbittorrent incoming port: %v\nGluetun forwarded port: %v\nNo update.\n", cfg.ListenPort, port.Port)
- }
- time.Sleep(time.Second * 30)
- }
- }
|