127 lines
3.1 KiB
Go
127 lines
3.1 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"net"
|
|
"os"
|
|
)
|
|
|
|
type Race struct {
|
|
Id int `json:"id"`
|
|
Hash string `json:"hash"`
|
|
Name string `json:"name"`
|
|
Category string `json:"category"`
|
|
Indexer string `json:"indexer"`
|
|
Type string `json:"type"`
|
|
Title string `json:"title"`
|
|
Size string `json:"size"`
|
|
Files string `json:"files"`
|
|
}
|
|
|
|
type PreRace struct {
|
|
Id int `json:"id"`
|
|
Hash string `json:"hash"`
|
|
Name string `json:"name"`
|
|
Category string `json:"category"`
|
|
Indexer string `json:"indexer"`
|
|
Type string `json:"type"`
|
|
Title string `json:"title"`
|
|
Season string `json:"season"`
|
|
Episode string `json:"episode"`
|
|
Year string `json:"year"`
|
|
Resolution string `json:"resolution"`
|
|
Source string `json:"source"`
|
|
HDR string `json:"hdr"`
|
|
TorrentURL string `json:"torrenturl"`
|
|
}
|
|
|
|
func main() {
|
|
|
|
file, err := os.OpenFile("/opt/RaceNotifier/racer.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.SetOutput(file)
|
|
defer file.Close()
|
|
|
|
log.Println("Starting Program")
|
|
if os.Args[1] == "PreRace" || os.Args[1] == "Prerace" || os.Args[1] == "prerace" {
|
|
|
|
// This is a pre race, need to find all the details of the release
|
|
log.Printf("[PreRace] Prerace launched with details %v, %v, %v", os.Args[1], os.Args[2], os.Args[3])
|
|
r, _ := json.Marshal(PreRace{Hash: os.Args[2],
|
|
Name: os.Args[3],
|
|
Category: os.Args[4],
|
|
Indexer: os.Args[5],
|
|
Type: os.Args[6],
|
|
Title: os.Args[7],
|
|
Season: os.Args[8],
|
|
Episode: os.Args[9],
|
|
Year: os.Args[10],
|
|
Resolution: os.Args[11],
|
|
Source: os.Args[12],
|
|
HDR: os.Args[13],
|
|
TorrentURL: os.Args[14],
|
|
})
|
|
|
|
tcpAddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:3000")
|
|
if err != nil {
|
|
log.Fatal("Could not parse IP address:", err)
|
|
}
|
|
conn, err := net.DialTCP("tcp", nil, tcpAddr)
|
|
if err != nil {
|
|
log.Fatal("Could not connect:", err)
|
|
}
|
|
|
|
defer conn.Close()
|
|
|
|
_, err = conn.Write([]byte(r))
|
|
if err != nil {
|
|
log.Fatal("Could not send message: ", err)
|
|
}
|
|
log.Println("Message sent...")
|
|
|
|
os.Exit(0)
|
|
|
|
} else if os.Args[1] == "test" {
|
|
for n, args := range os.Args {
|
|
log.Println("Arg", n, "->", args)
|
|
}
|
|
|
|
// } else {
|
|
// // This is the race thus the torrent has finished downloading.
|
|
// r := Race{Name: os.Args[1], Category: os.Args[2], Content_Path: os.Args[3], Root_Path: os.Args[4], Save_Path: os.Args[5], Hash: os.Args[6], Size: os.Args[7], Files: os.Args[8]}
|
|
// data, err := json.Marshal(r)
|
|
|
|
// if err != nil {
|
|
// fmt.Println(err)
|
|
// }
|
|
|
|
// err = os.WriteFile("test.json", data, 0644)
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
|
|
// tcpAddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:3000")
|
|
// if err != nil {
|
|
// log.Fatal("Could not parse IP address:", err)
|
|
// }
|
|
// conn, err := net.DialTCP("tcp", nil, tcpAddr)
|
|
// if err != nil {
|
|
// log.Fatal("Could not connect:", err)
|
|
// }
|
|
|
|
// defer conn.Close()
|
|
|
|
// _, err = conn.Write([]byte(data))
|
|
// if err != nil {
|
|
// log.Fatal("Could not send message: ", err)
|
|
// }
|
|
|
|
// os.Exit(0)
|
|
|
|
}
|
|
}
|