2021-12-20 16:53:38 +04:00
|
|
|
// NNM-Club torrent files mass downloader
|
2019-09-28 19:59:02 +04:00
|
|
|
// Created for Uploaders group
|
2021-12-20 16:53:38 +04:00
|
|
|
// Copyright (c) 2012-2022 Vladimir "fat0troll" Hodakov
|
2019-09-28 19:59:02 +04:00
|
|
|
|
2021-12-20 16:53:38 +04:00
|
|
|
package fetcher
|
2019-09-28 19:59:02 +04:00
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/PuerkitoBio/goquery"
|
|
|
|
)
|
|
|
|
|
2019-09-28 22:51:10 +04:00
|
|
|
func obtainQuerier(pageFile string) (*goquery.Document, error) {
|
2019-09-28 19:59:02 +04:00
|
|
|
f, err := os.Open(pageFile)
|
|
|
|
if err != nil {
|
2019-09-28 22:51:10 +04:00
|
|
|
return nil, err
|
2019-09-28 19:59:02 +04:00
|
|
|
}
|
|
|
|
defer f.Close()
|
|
|
|
|
|
|
|
querier, err := goquery.NewDocumentFromReader(f)
|
2019-09-28 22:51:10 +04:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return querier, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func setQuerier(pageFile string, pageType string, page int) error {
|
|
|
|
querier, err := obtainQuerier(pageFile)
|
2019-09-28 19:59:02 +04:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
switch pageType {
|
|
|
|
case "forumPage":
|
|
|
|
if !checkLoginness(querier) {
|
|
|
|
return errors.New("получена анонимная страница")
|
|
|
|
}
|
2020-02-22 18:33:33 +04:00
|
|
|
|
2021-12-20 17:45:05 +04:00
|
|
|
if isForumPageEmpty(querier) {
|
|
|
|
return errors.New("получена пустая страница")
|
|
|
|
}
|
|
|
|
|
2019-09-28 19:59:02 +04:00
|
|
|
forumPages[page] = querier
|
2020-02-22 18:33:33 +04:00
|
|
|
|
2019-09-28 19:59:02 +04:00
|
|
|
default:
|
|
|
|
return errors.New("неизвестный тип страницы")
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|