From 83f16161a7089d2c849ca89fca76c73a4c385fc0 Mon Sep 17 00:00:00 2001 From: Egor Aristov Date: Sat, 25 Jan 2025 09:12:33 +0300 Subject: [PATCH] Revert "remove temp extractor from git" This reverts commit db7fa4eab09f955aa818e452c3926cdfb1c8be27. --- .gitignore | 1 - cmd/extractor/extractor.go | 66 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 cmd/extractor/extractor.go diff --git a/.gitignore b/.gitignore index 5d8095c..1703b2c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ /trash/ /todo.md /.env.dev -/cmd/extractor/extractor.go diff --git a/cmd/extractor/extractor.go b/cmd/extractor/extractor.go new file mode 100644 index 0000000..d7f9890 --- /dev/null +++ b/cmd/extractor/extractor.go @@ -0,0 +1,66 @@ +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://vombat.su", + SelectorPost: "div.post-body", + SelectorTitle: "h1 a", + 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) +}