2022-04-11 20:08:41 +00:00
|
|
|
|
# pleroma-cli
|
2022-08-05 12:14:16 +00:00
|
|
|
|
|
|
|
|
|
Эта ветка содержит прототип клиента, где взаимодействие с статусами\постами будет происходить через файлы
|
|
|
|
|
|
2022-08-05 23:11:00 +00:00
|
|
|
|
## Схема дерева файлов-постов сгруппированных по аккаунтам
|
|
|
|
|
```
|
|
|
|
|
[statuses]
|
|
|
|
|
|
|
|
|
|
|
|-[instance]
|
|
|
|
|
| |---[acct]
|
|
|
|
|
| | |
|
|
|
|
|
| | |--- [status_id]
|
|
|
|
|
| | | |
|
|
|
|
|
| | | |---content
|
|
|
|
|
| | | |---status-id.json
|
2022-08-06 09:41:21 +00:00
|
|
|
|
| | | |---reblog.id
|
2022-08-05 23:11:00 +00:00
|
|
|
|
| | | |---media_attachments.m3u8
|
|
|
|
|
| |... |--- ...
|
|
|
|
|
|...
|
|
|
|
|
```
|
2022-08-06 13:36:30 +00:00
|
|
|
|
|
|
|
|
|
## Группировка по timelines
|
|
|
|
|
```
|
|
|
|
|
[timelines]
|
|
|
|
|
|
|
|
|
|
|
|-[instance]
|
|
|
|
|
| |--------[home]--[status_id]--...files
|
|
|
|
|
| |--------[local]--[status_id]--...files
|
|
|
|
|
| ...
|
|
|
|
|
...
|
|
|
|
|
```
|
2022-08-05 23:11:00 +00:00
|
|
|
|
На данный момент статусы теперь линкуются из папки all_statuses/$instance, где содержатся не сгруппированные посты
|
2022-08-06 09:41:21 +00:00
|
|
|
|
Время файлов внутри папки с постом ([status_id]) соответствует времени поста
|
2022-08-05 23:11:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Что доступно:
|
|
|
|
|
|
|
|
|
|
### Режим мониторинга файлов и автообновление ленты (пока только home)
|
|
|
|
|
```
|
2022-08-06 13:36:30 +00:00
|
|
|
|
daemon_mode=yes instance=example ./pleroma-cli.sh
|
2022-08-05 23:11:00 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-08-09 07:14:36 +00:00
|
|
|
|
### Отправка постов
|
2022-08-06 13:36:30 +00:00
|
|
|
|
Чтобы отправить пост, нужно в папке all_statuses/$instance создать файл message и записать туда пост, затем создать файл create там же
|
|
|
|
|
(Для добавления вложений нужно создать папку attachments и положить туда файлы для отправки)
|
|
|
|
|
|
2022-08-05 23:11:00 +00:00
|
|
|
|
### Частичное взаимодействие с постами:
|
|
|
|
|
Чтобы добавить в избранное или бустануть пост нужно в папке с постом создать файл favourite и\или share
|
2022-08-09 07:14:36 +00:00
|
|
|
|
Открыть тред, аналогично: threadopen
|
2022-08-05 23:11:00 +00:00
|
|
|
|
```
|
|
|
|
|
touch favourite
|
|
|
|
|
touch share
|
2022-08-09 07:14:36 +00:00
|
|
|
|
touch threadopen
|
2022-08-05 23:11:00 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-08-06 10:11:42 +00:00
|
|
|
|
### Ответ на пост
|
|
|
|
|
Чтобы ответить на пост нужно в папке с постом создать файл message и написать туда свой ответ, затем создать файл reply
|
|
|
|
|
|
2022-08-05 23:11:00 +00:00
|
|
|
|
### Чтение
|
|
|
|
|
Учитывая то, что каждый пост-статус это файл, то вы можете вывести все посты за раз например так:
|
|
|
|
|
```
|
2022-08-06 09:41:21 +00:00
|
|
|
|
# Сортированный вывод текcтов всех постов в хронологическом порядке
|
|
|
|
|
cat $(/bin/ls all_statuses/instance.example/*/content --sort=time) | less
|
2022-08-09 07:14:36 +00:00
|
|
|
|
# На самом деле FlakeId сам по себе сортируется по имени от старых к новым
|
2022-08-06 09:41:21 +00:00
|
|
|
|
|
2022-08-05 23:11:00 +00:00
|
|
|
|
# все тексты постов
|
|
|
|
|
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
|
|
|
|
|
```
|