Files
tvqueue/utils.go

57 lines
1002 B
Go

package main
import (
"crypto/sha1"
"fmt"
"net/http"
"strconv"
"strings"
"github.com/PuerkitoBio/goquery"
)
func getLimeTorrentsDownloadUrl(url string) (string, error) {
resp, err := http.Get(url)
if err != nil {
return "", fmt.Errorf("couldn't fetch html: %v", err)
}
defer resp.Body.Close()
doc, err := goquery.NewDocumentFromReader(resp.Body)
if err != nil {
return "", fmt.Errorf("couldn't create document from response: %v", err)
}
href := ""
doc.Find("a.csprite_dltorrent").Each(func(i int, s *goquery.Selection) {
h, hasHref := s.Attr("href")
if !hasHref {
return
}
if strings.HasPrefix(h, "https://") {
href = h
}
})
if href == "" {
return "", fmt.Errorf("couldn't find download url")
}
return href, nil
}
func toSha1(b []byte) string {
hash := sha1.New()
hash.Write(b)
return fmt.Sprintf("%x", hash.Sum(nil))
}
func toIntOr(s string, defaultValue int) int {
v, err := strconv.Atoi(s)
if err != nil {
return defaultValue
}
return v
}