1

Fix linter warnings

This commit is contained in:
2020-02-22 18:33:33 +04:00
parent f30fb4dc67
commit fd184225f1
9 changed files with 35 additions and 3 deletions

View File

@@ -64,9 +64,11 @@ func New(cc *context.Context) {
func Process() {
uberDebug, _ = c.Flagger.GetBoolValue("fetcherDebug")
forumID, _ := c.Flagger.GetIntValue("forum")
if forumID == 0 {
dlog.Fatal().Msg("Номер форума не указан. Используйте ключ -forum XXX, чтобы указать номер форума")
}
outputDirPathPrefix, _ := c.Flagger.GetStringValue("outputDir")
dlog.Info().Int("forum ID", forumID).Msg("Получен ID форума, начинаем работу...")

View File

@@ -29,6 +29,7 @@ func download(topic *forumTopic) {
dlog.Info().Str("название топика", topic.Name).Int("количество топиков", len(forumTopics)).
Int("номер топика", forumTopicInProgress).Msg("Скачивается топик")
fileName, err := downloadFile(topic.Link, true)
if err != nil {
dlog.Error().Err(err).Str("название топика", topic.Name).Msg("Не удалось загрузить страницу топика. Пропуск")

View File

@@ -22,21 +22,26 @@ func moveFile(sourcePath, destPath string) error {
if err != nil {
return fmt.Errorf("couldn't open source file: %s", err)
}
outputFile, err := os.Create(destPath)
if err != nil {
inputFile.Close()
return fmt.Errorf("couldn't open destination file: %s", err)
}
defer outputFile.Close()
_, err = io.Copy(outputFile, inputFile)
inputFile.Close()
if err != nil {
return fmt.Errorf("writing to output file failed: %s", err)
}
// The copy was successful, so now delete the original file
err = os.Remove(sourcePath)
if err != nil {
return fmt.Errorf("failed removing original file: %s", err)
}
return nil
}

View File

@@ -32,6 +32,7 @@ var (
// checkLoginness checks if downloaded page belongs to user
func checkLoginness(querier *goquery.Document) bool {
authorized := false
querier.Find(".mainmenu").Each(func(i int, sel *goquery.Selection) {
if strings.Contains(sel.Text(), "Выход") {
if strings.Contains(sel.Text(), c.Config.Username) {
@@ -39,11 +40,13 @@ func checkLoginness(querier *goquery.Document) bool {
}
}
})
return authorized
}
func getDownloadLink(querier *goquery.Document) string {
var downloadLink string
querier.Find("a[rel=nofollow]").Each(func(i int, sel *goquery.Selection) {
if strings.Contains(sel.Text(), "Скачать") {
href, _ := sel.Attr("href")
@@ -61,7 +64,9 @@ func getForumName(querier *goquery.Document) string {
func getLastModeratedDate(querier *goquery.Document) string {
var dateValue time.Time
var err error
haveDate := false
querier.Find("table.btTbl td.genmed").Each(func(i int, sel *goquery.Selection) {
if strings.Contains(sel.Text(), "модератором") {
date := strings.TrimPrefix(sel.Text(), " Оформление проверено модератором ")

View File

@@ -37,7 +37,9 @@ func setQuerier(pageFile string, pageType string, page int) error {
if !checkLoginness(querier) {
return errors.New("получена анонимная страница")
}
forumPages[page] = querier
default:
return errors.New("неизвестный тип страницы")
}

View File

@@ -19,6 +19,7 @@ func downloadAdditionalPages() {
for i := range forumPagesLinks {
forumPage, _ := strconv.Atoi(i)
dlog.Info().Int("номер страницы", forumPage).Msg("Скачивается ещё одна страница форума")
pageFile, err := downloadFile("https://"+c.Config.URL+"/forum/"+forumPagesLinks[i], true)
if err != nil {
dlog.Fatal().Err(err).Msg("Не удалось загрузить страницу форума")
@@ -33,12 +34,14 @@ func downloadFile(url string, transformEncoding bool) (string, error) {
if err != nil {
return "", err
}
for i := range c.Cookies {
req.AddCookie(c.Cookies[i])
}
var resp *http.Response
retryCount := 0
var retryCount int = 0
for {
if retryCount < 5 {
resp, err = dclient.Do(req)
@@ -46,6 +49,7 @@ func downloadFile(url string, transformEncoding bool) (string, error) {
if uberDebug {
dlog.Debug().Err(err).Int("попытка", retryCount+1).Msg("Не удалось получить данные, пытаемся ещё раз")
}
time.Sleep(time.Second)
retryCount++
} else {
@@ -55,6 +59,7 @@ func downloadFile(url string, transformEncoding bool) (string, error) {
return "", err
}
}
defer resp.Body.Close()
tempF, err := ioutil.TempFile("", "massdl-*")
@@ -65,6 +70,7 @@ func downloadFile(url string, transformEncoding bool) (string, error) {
if transformEncoding {
respInUTF8 := transform.NewReader(resp.Body, charmap.Windows1251.NewDecoder())
_, err = io.Copy(tempF, respInUTF8)
if err != nil {
return "", err