Fixes in CLI and added onloyHEVC option

This commit is contained in:
Kenneth Jao 2024-08-09 16:59:54 -04:00
parent 3306a9f1ab
commit 41cff42d3a
2 changed files with 36 additions and 10 deletions

22
cli.go
View File

@ -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:

24
main.go
View File

@ -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
}