diff --git a/Dockerfile b/Dockerfile index 777570e..5935d93 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,12 +4,13 @@ RUN apk add --no-cache make WORKDIR /app/kiki -RUN mkdir /app/kiki/config /app/kiki/service /app/kiki/stacker /app/kiki/tooter /app/kiki/file_watcher +RUN mkdir /app/kiki/config /app/kiki/service /app/kiki/stacker /app/kiki/tooter /app/kiki/file_watcher /app/kiki/filter COPY config/* /app/kiki/config COPY service/* /app/kiki/service COPY stacker/* /app/kiki/stacker COPY tooter/* /app/kiki/tooter +COPY filter/* /app/kiki/filter COPY file_watcher/* /app/kiki/file_watcher COPY Makefile /app/kiki/ diff --git a/Makefile b/Makefile index df22fcc..eba97a6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -kiki : tooter/go.sum config/go.sum stacker/go.sum service/go.sum service/kiki +kiki : tooter/go.sum config/go.sum stacker/go.sum service/go.sum service/kiki mv service/kiki kiki tooter/go.sum : tooter/go.mod @@ -9,7 +9,9 @@ stacker/go.sum : stacker/go.mod cd stacker && go mod tidy && cd ../ service/go.sum : service/go.mod cd service && go mod tidy && cd ../ + service/kiki : service/kiki.go go build -C service + clean : rm kiki tooter/go.sum config/go.sum stacker/go.sum service/go.sum \ No newline at end of file diff --git a/config/config.go b/config/config.go index 4d5e72b..b412e0c 100644 --- a/config/config.go +++ b/config/config.go @@ -19,6 +19,7 @@ type KikiSettings struct { Redis struct { Address string `yaml:"address"` } `yaml:"redis"` + FiltredWorlds []string `yaml:"filtred_worlds,flow"` } // Структура secret.conf diff --git a/filter/filter.go b/filter/filter.go index ed8488c..1a7db55 100644 --- a/filter/filter.go +++ b/filter/filter.go @@ -1,12 +1,17 @@ -package filter +package kikifilter -import "strings" +import ( + "fmt" + "strings" +) // Функция, проверяющая что запрещенные слова отсутсвуют в текста // Возвращает true если слова есть в тексте, возвращает false если их нет -func isWordsInText(text string, words []string) bool { +func IsWordsInText(text string, words []string) bool { + fmt.Println(words) for _, v := range words { - if strings.ContainsAny(text, v) { + if strings.Contains(text, v) { + fmt.Println(strings.Contains(text, v)) return true } } diff --git a/filter/go.mod b/filter/go.mod index 0edacf0..1979dc4 100644 --- a/filter/go.mod +++ b/filter/go.mod @@ -1,3 +1,3 @@ -module git.catgirls.asia/B4D_US3R/kiki/filter +module kiki/kikifilter go 1.22.2 diff --git a/service/go.mod b/service/go.mod index 9475995..9b6c594 100644 --- a/service/go.mod +++ b/service/go.mod @@ -8,13 +8,16 @@ replace kiki/stacker => ../stacker replace kiki/tooter => ../tooter -replace kiki/file_watcher => ../file_watcher/ +replace kiki/file_watcher => ../file_watcher + +replace kiki/kikifilter => ../filter require ( github.com/mattn/go-mastodon v0.0.9 github.com/urfave/cli/v3 v3.2.0 kiki/config v0.0.0-00010101000000-000000000000 kiki/file_watcher v0.0.0-00010101000000-000000000000 + kiki/kikifilter v0.0.0-00010101000000-000000000000 kiki/stacker v0.0.0-00010101000000-000000000000 kiki/tooter v0.0.0-00010101000000-000000000000 ) diff --git a/service/kiki.go b/service/kiki.go index e1d4ed1..3577412 100644 --- a/service/kiki.go +++ b/service/kiki.go @@ -2,6 +2,7 @@ package main import ( "context" + "fmt" "log" "net/url" "os" @@ -11,6 +12,7 @@ import ( "kiki/config" "kiki/file_watcher" + "kiki/kikifilter" "kiki/stacker" "kiki/tooter" @@ -56,6 +58,7 @@ func main() { log.Println(err) } kikiConfig := config.GetKikiConfig(confFile) + fmt.Println(kikiConfig.FiltredWorlds) lastFileMod, err := file_watcher.GetFileModTime(confFile) log.Println(lastFileMod) @@ -88,15 +91,18 @@ func main() { } if !inStack { + log.Println(post.Description) - toot, err := tooter.CreateToot(*mastoClient, post, rssUrl.Sensitive, rssUrl.Visibility) - if err != nil { - log.Println(err) + if !kikifilter.IsWordsInText(post.Description, kikiConfig.FiltredWorlds) { + + toot, err := tooter.CreateToot(*mastoClient, post, rssUrl.Sensitive, rssUrl.Visibility) + if err != nil { + log.Println(err) + } + + tooter.CreatePost(*mastoClient, toot) } - - tooter.CreatePost(*mastoClient, toot) - stacker.SetToRedis(rdb, post.GUID, post.Description) } }