feat: add content filtering functionality

- Introduce kikifilter package with IsWordsInText() function for word filtering
- Add FiltredWorlds configuration option to KikiSettings
- Integrate filtering into service to prevent posting filtered content
- Update Dockerfile and Makefile to include filter package
- Add example configuration with filtered words
This commit is contained in:
B4D_US3R 2026-03-07 13:47:20 +00:00
parent 95c95031d8
commit 3b0b688843
7 changed files with 32 additions and 14 deletions

View file

@ -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)
}
}