Just for fun. CLI "Client" for Pleroma.
Go to file
2022-08-07 20:35:08 +03:00
utils some fixes; cancel remove content from json 2022-08-07 16:26:40 +03:00
config.json fixed search; per status mode still recomended enable 2022-06-20 12:11:03 +03:00
LICENSE upload 2022-04-11 22:36:22 +03:00
pleroma-cli.sh Prev listing statuses 2022-08-07 20:35:08 +03:00
README.md Update readme 2022-08-06 16:36:30 +03:00

pleroma-cli

Эта ветка содержит прототип клиента, где взаимодействие с статусами\постами будет происходить через файлы

Схема дерева файлов-постов сгруппированных по аккаунтам

[statuses]
|
|-[instance]
|  |---[acct]
|  |    |
|  |    |--- [status_id]
|  |    |    |
|  |    |    |---content
|  |    |    |---status-id.json
|  |    |    |---reblog.id
|  |    |    |---media_attachments.m3u8
|  |... |--- ...
|...

Группировка по timelines

[timelines]
|
|-[instance] 
| |--------[home]--[status_id]--...files
| |--------[local]--[status_id]--...files
| ...
...

На данный момент статусы теперь линкуются из папки all_statuses/$instance, где содержатся не сгруппированные посты
Время файлов внутри папки с постом ([status_id]) соответствует времени поста

Что доступно:

Режим мониторинга файлов и автообновление ленты (пока только home)

daemon_mode=yes instance=example ./pleroma-cli.sh

Отправка постов

Чтобы отправить пост, нужно в папке all_statuses/$instance создать файл message и записать туда пост, затем создать файл create там же (Для добавления вложений нужно создать папку attachments и положить туда файлы для отправки)

Частичное взаимодействие с постами:

Чтобы добавить в избранное или бустануть пост нужно в папке с постом создать файл favourite и\или share

touch favourite
touch share

Ответ на пост

Чтобы ответить на пост нужно в папке с постом создать файл message и написать туда свой ответ, затем создать файл reply

Чтение

Учитывая то, что каждый пост-статус это файл, то вы можете вывести все посты за раз например так:

# Сортированный вывод текcтов всех постов в хронологическом порядке
cat $(/bin/ls all_statuses/instance.example/*/content --sort=time) | less

# все тексты постов
cat all_statuses/instance.example/*/content

# все тексты постов пользователя 
cat statuses/instance.example/nick@abc/*/content

# Посмотреть все мультимедия вложения
cat all_statuses/instance.example/*/media_attachments.m3u8 | mpv --playlist=-

# Прочие "игры" с постами, например узнать кто более активен в вашем инстансе среди загруженных постов
cat all_statuses/instance.example/*/*.json | jj -l '..#.account.acct' | sort | uniq -c | sort -r