Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3b0b688843 | |||
| 95c95031d8 | |||
| 0ec91c9e8f |
7 changed files with 44 additions and 9 deletions
|
|
@ -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/
|
||||
|
|
|
|||
4
Makefile
4
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
|
||||
|
|
@ -19,6 +19,7 @@ type KikiSettings struct {
|
|||
Redis struct {
|
||||
Address string `yaml:"address"`
|
||||
} `yaml:"redis"`
|
||||
FiltredWorlds []string `yaml:"filtred_worlds,flow"`
|
||||
}
|
||||
|
||||
// Структура secret.conf
|
||||
|
|
|
|||
19
filter/filter.go
Normal file
19
filter/filter.go
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
package kikifilter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Функция, проверяющая что запрещенные слова отсутсвуют в текста
|
||||
// Возвращает true если слова есть в тексте, возвращает false если их нет
|
||||
func IsWordsInText(text string, words []string) bool {
|
||||
fmt.Println(words)
|
||||
for _, v := range words {
|
||||
if strings.Contains(text, v) {
|
||||
fmt.Println(strings.Contains(text, v))
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
3
filter/go.mod
Normal file
3
filter/go.mod
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
module kiki/kikifilter
|
||||
|
||||
go 1.22.2
|
||||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue