fixed 404 error on NFO downlaod
This commit is contained in:
@@ -256,11 +256,10 @@ func parseSingleScnlog(db *sqlx.DB) ([]model.ExternalSources, error) {
|
||||
}
|
||||
onclick := dom.GetAttribute(a, "onclick")
|
||||
spew.Dump("NFO-ANCHOR", dom.TextContent(a), onclick)
|
||||
if m := regexp.MustCompile(`'([^']+)'`).FindStringSubmatch(onclick); len(m) > 1 {
|
||||
if m := regexp.MustCompile(`'([^']+)'`).FindStringSubmatch(dom.GetAttribute(a, "onclick")); len(m) > 1 {
|
||||
nfoURL := "https://scnlog.me" + m[1]
|
||||
spew.Dump("NFO-URL", nfoURL, "NFO_DIR", viper.GetString("nfo_dir"))
|
||||
if err := saveNfo(src.Title, nfoURL); err != nil {
|
||||
return nil, err
|
||||
if err := saveNfo(src.Title, nfoURL, src.ExSource); err != nil {
|
||||
slog.Warn("nfo not saved", "title", src.Title, "err", err)
|
||||
}
|
||||
}
|
||||
break
|
||||
@@ -323,7 +322,7 @@ func secondsToHMS(total int) string {
|
||||
}
|
||||
|
||||
// saveNfo пише NFO у <nfo_dir>/<перша літера title в lower>/<title>.nfo
|
||||
func saveNfo(title, nfoURL string) error {
|
||||
func saveNfo(title, nfoURL, referer string) error {
|
||||
dir := viper.GetString("nfo_dir")
|
||||
if dir == "" {
|
||||
return errors.New("nfo_dir is empty")
|
||||
@@ -335,7 +334,7 @@ func saveNfo(title, nfoURL string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
data, err := fetchNfoBytes(nfoURL)
|
||||
data, err := fetchNfoBytes(nfoURL, referer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -344,14 +343,19 @@ func saveNfo(title, nfoURL string) error {
|
||||
}
|
||||
|
||||
// fetchNfoBytes завантажує сирі байти NFO (не HTML) у []byte.
|
||||
func fetchNfoBytes(nfoURL string) ([]byte, error) {
|
||||
func fetchNfoBytes(nfoURL, referer string) ([]byte, error) {
|
||||
client := &http.Client{Timeout: 30 * time.Second}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, nfoURL, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (compatible; resource-scraper)")
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36")
|
||||
req.Header.Set("Accept", "*/*")
|
||||
req.Header.Set("Accept-Language", "en-US,en;q=0.9")
|
||||
if referer != "" {
|
||||
req.Header.Set("Referer", referer)
|
||||
}
|
||||
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user