86 lines
No EOL
5.1 KiB
Markdown
86 lines
No EOL
5.1 KiB
Markdown
# 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:
|
||
|
||
* [x] Первая реализация
|
||
* [x] Добавление картинок в пост
|
||
* [x] Добавление поддержки Redis
|
||
* [x] Упаковка в Docker образ
|
||
* [x] Создание Makefile для более удобной сборки
|
||
* [x] Поддержка обновления данных из конфига "на лету"
|
||
* [x] Добавление поддержки нескольких лент
|
||
* [ ] Добавить поддержку шаблонов
|
||
* [ ] Добавить сбор информации о инстансе, кол-ве поддерживаемых символов и кол-ве поддерживаемых медиа в одном посте. Сделать обработку этой информации и формирование постов с учетом инстансоспецифичных факторов
|
||
* [ ] Некоторые RSS-ленты содержат видео. Добавить поддержку видео в постах
|
||
* [ ] Дополнительные флаги для команды чтобы указывать где лежит конфиг
|
||
|
||
# Отказ от ответственности
|
||
|
||
Программное обеспечение поставляется "как есть" и автор не несет ответственности на нарушение работы ЭВМ |