# 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 Открыть тред, аналогично: threadopen ``` touch favourite touch share touch threadopen ``` ### Ответ на пост Чтобы ответить на пост нужно в папке с постом создать файл message и написать туда свой ответ, затем создать файл reply ### Чтение Учитывая то, что каждый пост-статус это файл, то вы можете вывести все посты за раз например так: ``` # Сортированный вывод текcтов всех постов в хронологическом порядке cat $(/bin/ls all_statuses/instance.example/*/content --sort=time) | less # На самом деле FlakeId сам по себе сортируется по имени от старых к новым # все тексты постов 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 ```