diff --git a/.gitignore b/.gitignore index 867ccf5..688a10d 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ config.yaml # Output of the go coverage tool, specifically when used with LiteIDE *.out kiki +redis_data # Dependency directories (remove the comment below to include it) # vendor/ diff --git a/Dockerfile b/Dockerfile index 0ade8a6..777570e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM golang:1.24 +FROM golang:1.24-alpine AS build + +RUN apk add --no-cache make WORKDIR /app/kiki @@ -14,4 +16,12 @@ COPY Makefile /app/kiki/ RUN make +FROM alpine:latest + +WORKDIR /app/kiki/ + +COPY --from=build /app/kiki/kiki /app/kiki/kiki + +RUN chmod +x /app/kiki/kiki + CMD [ "/app/kiki/kiki", "run" ] \ No newline at end of file diff --git a/README.md b/README.md index 5067564..daabdb8 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,10 @@ instance: https://pleroma.catgirls.asia #Адрес инстанса rss_urls: #YAML массив лент - url: https://habr.com/ru/rss/flows/admin/articles/?fl=ru #Адрес ленты sensitive: false #Нужно ли ставить NSFW плашку + visibility: "unlisted" #Режим отображения постов. Есть public, unlisted, private, direct - url: https://4pda.to/feed sensitive: false + visibility: "unlisted" redis: address: localhost:6379 #Адрес Redis, в случае использования Docker Compose необходимо написать redis:6379 ``` diff --git a/config.example.yaml b/config.example.yaml index 3450bc5..ce83de1 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -2,7 +2,9 @@ instance: https://pleroma.catgirls.asia rss_urls: - url: https://habr.com/ru/rss/flows/admin/articles/?fl=ru sensitive: false + visibility: "unlisted" - url: https://4pda.to/feed sensitive: false + visibility: "unlisted" redis: address: localhost:6379 \ No newline at end of file diff --git a/config/config.go b/config/config.go index 014aca8..4d5e72b 100644 --- a/config/config.go +++ b/config/config.go @@ -12,8 +12,9 @@ import ( type KikiSettings struct { Instance string `yaml:"instance,omitempty"` RSSURLs []struct { - Url string `yaml:"url,omitempty"` - Sensitive bool `yaml:"sensitive,omitempty"` + Url string `yaml:"url,omitempty"` + Sensitive bool `yaml:"sensitive,omitempty"` + Visibility string `yaml:"visibility"` } `yaml:"rss_urls,omitempty"` Redis struct { Address string `yaml:"address"` diff --git a/docker-compose.yml b/docker-compose.yml index 4b7dbc1..f348f4a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: kiki: - build: ./ + image: git.catgirls.asia/b4d_us3r/kiki:latest restart: always volumes: - ./config.yaml:/app/kiki/config.yaml diff --git a/service/kiki.go b/service/kiki.go index bc2cc75..e1d4ed1 100644 --- a/service/kiki.go +++ b/service/kiki.go @@ -90,7 +90,7 @@ func main() { if !inStack { log.Println(post.Description) - toot, err := tooter.CreateToot(*mastoClient, post, rssUrl.Sensitive) + toot, err := tooter.CreateToot(*mastoClient, post, rssUrl.Sensitive, rssUrl.Visibility) if err != nil { log.Println(err) } diff --git a/tooter/tooter.go b/tooter/tooter.go index 42229ba..3ae99f3 100644 --- a/tooter/tooter.go +++ b/tooter/tooter.go @@ -154,14 +154,14 @@ func UploadPictures(mastoClient mastodon.Client, filesBytes [][]byte) []*mastodo } // Формирование тела статуса -func CreateToot(mastoClient mastodon.Client, newsDesc *gofeed.Item, sensitive bool) (mastodon.Toot, error) { +func CreateToot(mastoClient mastodon.Client, newsDesc *gofeed.Item, sensitive bool, visibility string) (mastodon.Toot, error) { var imgArray []string var attachments []*mastodon.Attachment var tootText string = fmt.Sprintf("src: %s\n\n", newsDesc.Link) toot := mastodon.Toot{ - Visibility: "unlisted", + Visibility: visibility, Sensitive: sensitive, }