extractor small improvements and refactoring
This commit is contained in:
parent
a9ee50d722
commit
0d787c90cb
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"flag"
|
"flag"
|
||||||
|
"fmt"
|
||||||
"github.com/egor3f/rssalchemy/internal/config"
|
"github.com/egor3f/rssalchemy/internal/config"
|
||||||
dummycookies "github.com/egor3f/rssalchemy/internal/cookiemgr/dummy"
|
dummycookies "github.com/egor3f/rssalchemy/internal/cookiemgr/dummy"
|
||||||
"github.com/egor3f/rssalchemy/internal/dateparser"
|
"github.com/egor3f/rssalchemy/internal/dateparser"
|
||||||
@ -20,6 +21,7 @@ func main() {
|
|||||||
log.SetHeader(`${time_rfc3339_nano} ${level}`)
|
log.SetHeader(`${time_rfc3339_nano} ${level}`)
|
||||||
|
|
||||||
outFile := flag.String("o", "", "Output file name")
|
outFile := flag.String("o", "", "Output file name")
|
||||||
|
skipOutput := flag.Bool("s", false, "Skip json output; show just logs")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
taskFileName := "task.json"
|
taskFileName := "task.json"
|
||||||
@ -38,19 +40,9 @@ func main() {
|
|||||||
defer out.Close()
|
defer out.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
taskFile, err := os.Open(taskFileName)
|
task, err := loadTask(taskFileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panicf("open task file: %v", err)
|
log.Panicf("load task: %v", err)
|
||||||
}
|
|
||||||
//goland:noinspection GoUnhandledErrorResult
|
|
||||||
defer taskFile.Close()
|
|
||||||
fileContents, err := io.ReadAll(taskFile)
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("read file: %v", err)
|
|
||||||
}
|
|
||||||
var task models.Task
|
|
||||||
if err := json.Unmarshal(fileContents, &task); err != nil {
|
|
||||||
log.Panicf("unmarshal task: %v", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := config.Read()
|
cfg, err := config.Read()
|
||||||
@ -94,6 +86,7 @@ func main() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !*skipOutput {
|
||||||
resultStr, err := json.MarshalIndent(result, "", "\t")
|
resultStr, err := json.MarshalIndent(result, "", "\t")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panicf("marshal result: %v", err)
|
log.Panicf("marshal result: %v", err)
|
||||||
@ -103,4 +96,25 @@ func main() {
|
|||||||
log.Panicf("write output: %v", err)
|
log.Panicf("write output: %v", err)
|
||||||
}
|
}
|
||||||
log.Infof("Result written (%d bytes)", n)
|
log.Infof("Result written (%d bytes)", n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadTask(taskFileName string) (models.Task, error) {
|
||||||
|
taskFile, err := os.Open(taskFileName)
|
||||||
|
if err != nil {
|
||||||
|
return models.Task{}, fmt.Errorf("open task file: %w", err)
|
||||||
|
}
|
||||||
|
defer taskFile.Close()
|
||||||
|
|
||||||
|
fileContents, err := io.ReadAll(taskFile)
|
||||||
|
if err != nil {
|
||||||
|
return models.Task{}, fmt.Errorf("read file: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var task models.Task
|
||||||
|
if err := json.Unmarshal(fileContents, &task); err != nil {
|
||||||
|
return models.Task{}, fmt.Errorf("unmarshal task: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return task, err
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user