From 47242e54319fcf59b8c2489691836b78c8bcd541 Mon Sep 17 00:00:00 2001 From: B4D_US3R Date: Wed, 30 Apr 2025 15:59:44 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9C=D1=83=D0=BB=D1=8C=D1=82=D0=B8=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0,=20=D1=82=D0=B5=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D1=83=D0=B5=D1=82=D1=81=D1=8F.=20=D0=9F=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.go | 10 ++++++---- service/kiki.go | 30 ++++++++++++++++-------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/config/config.go b/config/config.go index b84cd21..dd8b353 100644 --- a/config/config.go +++ b/config/config.go @@ -9,10 +9,12 @@ import ( ) type KikiSettings struct { - Instance string `yaml:"instance,omitempty"` - RSSUri string `yaml:"rss_url,omitempty"` - Sensitive bool `yaml:"sensitive,omitempty"` - Redis struct { + Instance string `yaml:"instance,omitempty"` + RSSURLs []struct { + Url string `yaml:"url,omitempty"` + Sensitive bool `yaml:"sensitive,omitempty"` + } `yaml:"rss_urls,omitempty"` + Redis struct { Address string `yaml:"address"` } `yaml:"redis"` } diff --git a/service/kiki.go b/service/kiki.go index bb462ce..52901a9 100644 --- a/service/kiki.go +++ b/service/kiki.go @@ -74,28 +74,30 @@ func main() { if file_watcher.IsFileChange(&lastFileMod, confFile) { log.Println(lastFileMod) log.Println("RSS ленты перечитаны") - kikiConfig.RSSUri = config.GetKikiConfig(confFile).RSSUri + kikiConfig.RSSURLs = config.GetKikiConfig(confFile).RSSURLs } - newPosts := tooter.NewsText(kikiConfig.RSSUri) + for _, rssUrl := range kikiConfig.RSSURLs { + newPost := tooter.NewsText(rssUrl.Url) - for _, post := range newPosts { - inStack, err := stacker.CheckInRedis(rdb, post.GUID) - if err != nil { - log.Println(err) - } - - if !inStack { - log.Println(post.Description) - - toot, err := tooter.CreateToot(*mastoClient, post, kikiConfig.Sensitive) + for _, post := range newPost { + inStack, err := stacker.CheckInRedis(rdb, post.GUID) if err != nil { log.Println(err) } - tooter.CreatePost(*mastoClient, toot) + if !inStack { + log.Println(post.Description) - stacker.SetToRedis(rdb, post.GUID, post.Description) + toot, err := tooter.CreateToot(*mastoClient, post, rssUrl.Sensitive) + if err != nil { + log.Println(err) + } + + tooter.CreatePost(*mastoClient, toot) + + stacker.SetToRedis(rdb, post.GUID, post.Description) + } } } }