67 lines
1.9 KiB
Go
67 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/egor3f/rssalchemy/internal/config"
|
|
"github.com/egor3f/rssalchemy/internal/extractors/pwextractor"
|
|
"github.com/egor3f/rssalchemy/internal/models"
|
|
"github.com/labstack/gommon/log"
|
|
"github.com/yassinebenaid/godump"
|
|
)
|
|
|
|
func main() {
|
|
log.SetLevel(log.DEBUG)
|
|
log.SetHeader(`${time_rfc3339_nano} ${level}`)
|
|
|
|
// this code is temporary!
|
|
// todo: rewrite not to use hardcoded tasks
|
|
|
|
task := models.Task{
|
|
URL: "https://2ip.ru",
|
|
SelectorPost: "div.ip",
|
|
SelectorTitle: "span",
|
|
SelectorLink: "h1 a",
|
|
SelectorDescription: "div.post-content-block p",
|
|
SelectorAuthor: "a:has(> span.post-author)",
|
|
SelectorCreated: "div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2)",
|
|
SelectorContent: "div.post-content-block",
|
|
SelectorEnclosure: "article img.object-contain",
|
|
}
|
|
|
|
cfg, err := config.Read()
|
|
if err != nil {
|
|
log.Panicf("read config: %v", err)
|
|
}
|
|
|
|
pwe, err := pwextractor.New(cfg)
|
|
if err != nil {
|
|
log.Panicf("create pw extractor: %v", err)
|
|
}
|
|
defer func() {
|
|
if err := pwe.Stop(); err != nil {
|
|
log.Errorf("stop pw extractor: %v", err)
|
|
}
|
|
}()
|
|
|
|
result, err := pwe.Extract(task)
|
|
if err != nil {
|
|
log.Panicf("extract: %v", err)
|
|
}
|
|
|
|
dumper := godump.Dumper{Theme: godump.Theme{
|
|
String: godump.RGB{117, 54, 217},
|
|
Quotes: godump.RGB{143, 41, 0},
|
|
Bool: godump.RGB{6, 168, 199},
|
|
Number: godump.RGB{245, 77, 13},
|
|
Types: godump.RGB{255, 105, 56},
|
|
Address: godump.RGB{50, 162, 255},
|
|
PointerTag: godump.RGB{145, 145, 145},
|
|
Nil: godump.RGB{36, 198, 229},
|
|
Func: godump.RGB{95, 165, 35},
|
|
Fields: godump.RGB{66, 79, 61},
|
|
Chan: godump.RGB{60, 101, 179},
|
|
UnsafePointer: godump.RGB{166, 62, 75},
|
|
Braces: godump.RGB{70, 169, 169},
|
|
}}
|
|
_ = dumper.Println(result)
|
|
}
|