Транслятор RSS -> MastodonAPI
Find a file
2025-05-12 12:21:31 +05:00
config Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
file_watcher Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
service Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
stacker Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
tooter Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
.gitignore Добавил включение/отключение NSFW штук 2025-04-23 09:09:01 +05:00
config.example.yaml Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00
docker-compose.yml Лишние пробелы в docker compose 2025-05-04 16:23:30 +05:00
Dockerfile Добавлено отслеживание изменений в конфиге. Посмотрим как будет работать 2025-04-30 10:19:33 +05:00
LICENSE.md Добавлены README и лицензия 2025-04-23 19:39:16 +05:00
Makefile Сделал Makefile 2025-04-23 21:53:08 +05:00
README.md Исправлена ошибка, при которой после таймаута функция NewsText ничего не возвращала и программа падала. Так же теперь лента читается начиная от самого старого поста, заканчивая самым новым. 2025-05-04 16:14:34 +05:00

Kiki - RSS -> MastodonAPI crossposter

Данная программа представляет собой кросспостер из лент RSS в Mastodon-совместимые сервера. Увы, программа пока тестировалась только на Pleroma

⚠ ПРОВЕРКИ НА КОЛИЧЕСТВО ПОДДЕРЖИВАЕМЫХ СЕРВЕРОМ СИМВОЛОВ НЕТ, НЕИЗВЕСТНО КАК ПРОГРАММА СЕБЯ ПОВЕДЕТ ЕСЛИ В НОВОСТИ 500+ СИМВОЛОВ

Руководство по сборке и использованию

Для начала проверьте зависимости:

  • golang 1.24.2+
  • redis
  • gnu make

После необходимо произвести сборку утилиты с помощью команды make:

make

В папке с проектом появится исполняемый файл kiki. Перед запуском необходимо заполнить конфигурационный файл config.yaml (пример заполнения представлен в файле config.example.yaml)

instance: https://pleroma.catgirls.asia #Адрес инстанса
rss_urls: #YAML массив лент
  - url: https://habr.com/ru/rss/flows/admin/articles/?fl=ru #Адрес ленты
    sensitive: false #Нужно ли ставить NSFW плашку
  - url: https://4pda.to/feed
    sensitive: false
redis:
  address: localhost:6379 #Адрес Redis, в случае использования Docker Compose необходимо написать redis:6379

После чего необходимо провести инициализацию для получения секретов аккаунта. СЕКРЕТЫ ХРАНЯТСЯ В ОТКРЫТОМ ВИДЕ, ТАК ЧТО БУДЬТЕ ОСТОРОЖНЫ!

./kiki init

Программа в коммандной строке выдаст ссылку на получение прав. Необходимо по ней перейти, дать разрешения, скопировать OAuth код, вставить в коммандную строку и нажать Enter. После этого должен создаться файл secret.conf.

После этого программу можно запустить командой ./kiki run. Перед запуском убедитесь что Redis запущен.

Если вам надо удалить утилиту и почистить все go.sum файлы, то можно выполнить следующую команду:

make clean

Запуск в Docker

Для запуска программы в Docker необходимо создать два файла: secret.conf и config.yaml:

touch secret.conf
touch config.yaml

Далее необходимо собрать Docker образ с утилитой:

docker compose build

После этого необходимо провести инициализацию:

docker compose run --rm kiki /app/kiki/kiki init

Программа в коммандной строке выдаст ссылку на получение прав. Необходимо по ней перейти, дать разрешения, скопировать OAuth код, вставить в коммандную строку и нажать Enter. В файле secret.conf должны появиться данные для использования аккаунта. Проверьте их наличие с помощью команды cat secret.conf

После чего можно запустить контейнер с программой:

docker compose up -d

TODO:

  • Первая реализация
  • Добавление картинок в пост
  • Добавление поддержки Redis
  • Упаковка в Docker образ
  • Создание Makefile для более удобной сборки
  • Поддержка обновления данных из конфига "на лету"
  • Добавление поддержки нескольких лент
  • Добавить поддержку шаблонов
  • Добавить сбор информации о инстансе, кол-ве поддерживаемых символов и кол-ве поддерживаемых медиа в одном посте. Сделать обработку этой информации и формирование постов с учетом инстансоспецифичных факторов
  • Некоторые RSS-ленты содержат видео. Добавить поддержку видео в постах
  • Дополнительные флаги для команды чтобы указывать где лежит конфиг

Отказ от ответственности

Программное обеспечение поставляется "как есть" и автор не несет ответственности на нарушение работы ЭВМ