From 41cff42d3a7f1fbf4bf39d51317289eab6a2ea27 Mon Sep 17 00:00:00 2001 From: Kenneth Jao Date: Fri, 9 Aug 2024 16:59:54 -0400 Subject: [PATCH] Fixes in CLI and added onloyHEVC option --- cli.go | 22 +++++++++++++++++----- main.go | 24 +++++++++++++++++++----- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/cli.go b/cli.go index 2075ef0..3448b08 100644 --- a/cli.go +++ b/cli.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "fmt" "net" "os" @@ -85,8 +86,12 @@ func (m *SubscriptionManager) Add() { fmt.Scan(&add) add = strings.ToLower(add) if add == "m" { + var err error fmt.Print("Name: ") - fmt.Scan(&name) + in := bufio.NewReader(os.Stdin) + name, err = in.ReadString('\n') + name = name[:len(name)-1] + e.Panic(err) newSubs = append(newSubs, name) } else { addSplit := strings.Split(add, ",") @@ -113,8 +118,18 @@ func (m *SubscriptionManager) Add() { break } + var hevc string + fmt.Print("Only HEVC? (Y/n): ") + fmt.Scan(&hevc) + hevc = strings.ToLower(hevc) + var data []byte + if hevc == "n" { + data = []byte{'A', '0'} + } else { + data = []byte{'A', '1'} + } + // Send addition update to socket - data := []byte{'A'} data = append(data, []byte(strings.Join(newSubs, "\n"))...) conn, err := net.Dial("unix", SocketPath) e.ExitIf(err, "Unable to open socket. Is the daemon running?") @@ -183,13 +198,10 @@ func userCLI() { switch action { case "v": manager.View() - break case "a": manager.Add() - break case "r": manager.Remove() - break case "q": os.Exit(1) default: diff --git a/main.go b/main.go index a0606e7..1828869 100644 --- a/main.go +++ b/main.go @@ -179,7 +179,7 @@ func GetRSS(rssURL string) ([]Anime, error) { }).End() } -func GetAllAvailable(name string) ([]Anime, error) { +func GetAllAvailable(name string, onlyHEVC bool) ([]Anime, error) { var animes []Anime var res *http.Response var doc *goquery.Document @@ -188,7 +188,12 @@ func GetAllAvailable(name string) ([]Anime, error) { return animes, e.If(err).ThenIf(func() error { q := req.URL.Query() - query := "[Erai-raws] " + name + " [HEVC]" + var query string + if onlyHEVC { + query = "[Erai-raws] " + name + " [HEVC]" + } else { + query = "[Erai-raws] " + name + " [1080p]" + } query = strings.Replace(query, ":", " ", -1) query = strings.Replace(query, ".", " ", -1) q.Add("q", query) @@ -209,9 +214,15 @@ func GetAllAvailable(name string) ([]Anime, error) { cols = cols.Next() // Filename title := cols.Text() - if !strings.Contains(title, "[HEVC]") || !strings.Contains(title, "[ENG]") { + if !strings.Contains(title, "[ENG]") { return } + + isHEVC := strings.Contains(title, "[HEVC]") + if onlyHEVC && !isHEVC { + return + } + title = strings.Split(title, "[Erai-raws] ")[1] if strings.Contains(title, "(AAC 2.0)") { title = strings.Split(title, " (AAC 2.0)")[0] @@ -380,11 +391,14 @@ func (d *Daemon) ReadSocket(conn net.Conn) { command := rawData[0] data := string(rawData[1:len(rawData)]) e.Log("Socket Command: " + string(command)) - newSubs := strings.Split(data, "\n") var write bool switch command { case 'A': + onlyHEVC, _ := strconv.ParseBool(string(data[0])) + data = data[1:] + newSubs := strings.Split(data, "\n") + // Add each subscription for _, sub := range newSubs { var s struct{} @@ -394,7 +408,7 @@ func (d *Daemon) ReadSocket(conn net.Conn) { for _, sub := range newSubs { // For each new subscription, get all available animes. - animes, err := GetAllAvailable(sub) + animes, err := GetAllAvailable(sub, onlyHEVC) if e.LogIf(err, d.LogOptions...) { continue }