Compare commits

...

5 Commits

3 changed files with 49 additions and 16 deletions

View File

@ -13,12 +13,13 @@
| | | |
| | | |---content
| | | |---status-id.json
| | | |---reblog.id
| | | |---media_attachments.m3u8
| |... |--- ...
|...
```
На данный момент статусы теперь линкуются из папки all_statuses/$instance, где содержатся не сгруппированные посты
Время папок с постами соотвествует постам
Время файлов внутри папки с постом ([status_id]) соответствует времени поста
## Что доступно:
@ -35,9 +36,15 @@ touch favourite
touch share
```
### Ответ на пост
Чтобы ответить на пост нужно в папке с постом создать файл message и написать туда свой ответ, затем создать файл reply
### Чтение
Учитывая то, что каждый пост-статус это файл, то вы можете вывести все посты за раз например так:
```
# Сортированный вывод текcтов всех постов в хронологическом порядке
cat $(/bin/ls all_statuses/instance.example/*/content --sort=time) | less
# все тексты постов
cat all_statuses/instance.example/*/content

View File

@ -804,7 +804,7 @@ delete_api_status()
write_api_status()
{
if [ -n "$mediaattach" ]; then
media=$(upload_api_media | jj id)
media=$mediaattach
post_request --url "$instance_point"/statuses \
--data-urlencode "status@$1" \
--data-raw "content_type=$content_type" \
@ -831,7 +831,7 @@ edit_api_status()
upload_api_media()
{
post_request --url "$instance_point"/media \
--form "file=$mediaattach"
--form "file=$1"
}
write_status_menu()
@ -996,18 +996,39 @@ if [ "$daemon_mode" = 'yes' ]; then
statuses_auto_update &
while true; do
sleep 5
statuses_to_fav=$(/bin/ls $main_basedir/all_statuses/$instance/*/favourite 2>/dev/null)
statuses_to_share=$(/bin/ls $main_basedir/all_statuses/$instance/*/share 2>/dev/null)
if [ -n "$statuses_to_fav" ]; then
status_id=$(dirname "$statuses_to_fav" | sed 's/.*\///g')
favorite_api_status $status_id
rm $statuses_to_fav
fi
if [ -n "$statuses_to_share" ]; then
status_id=$(dirname "$statuses_to_share" | sed 's/.*\///g')
share_api_status $status_id
rm $statuses_to_share
fi
for file_func in favourite share reply; do
statuses_file_action=$(/bin/ls $main_basedir/all_statuses/$instance/*/$file_func 2>/dev/null)
if [ -n "$statuses_file_action" ]; then
dir_status=$(dirname "$statuses_file_action")
if [ -f "$dir_status/reblog.id" ]; then
status_id=$(cat $dir_status/reblog.id)
else
status_id=$(echo $dir_status | sed 's/.*\///g')
fi
case $file_func in
'favourite') favorite_api_status "$status_id" ; rm "$statuses_file_action" ;;
'share') share_api_status $status_id ; rm "$statuses_file_action" ;;
'reply')
replyto=$status_id
if [ -d "$dir_status/attachments" ]; then
attach_id=''
echo "Uploading attachments..."
for attach in "$dir_status"/attachments/*; do
attach_id=$(upload_api_media "@$attach" | jj id)
attach_id="${attach_id},"
echo $attach_id
done
mediaattach=$(echo $attach_id | sed 's/,$//g')
echo $mediaattach
fi
write_api_status $dir_status/message
rm "$statuses_file_action"
;;
esac
fi
done
done
fi

View File

@ -12,6 +12,7 @@ for i in $ids; do
# Fields
content=$(echo "$json" | jj "#[id=$i].content" | "$main_basedir"/utils/html_to_txt_render)
status_media_attachments=$(echo "$json" | jj -l "#[id=$i].media_attachments.#.url" | tr -d '"\v')
reblog=$(echo "$json" | jj -l "#[id=$i].reblog.id")
chmod 711 "$main_basedir"/all_statuses/$instance/$status_id
@ -21,8 +22,12 @@ for i in $ids; do
if [ -n "$status_media_attachments" ]; then
echo "$status_media_attachments" > "$main_basedir"/all_statuses/$instance/$status_id/media_attachments.m3u8
fi
if [ -n "$reblog" ]; then
echo "$reblog" > "$main_basedir"/all_statuses/$instance/$status_id/reblog.id
fi
chmod 600 "$main_basedir"/all_statuses/$instance/$status_id/*
touch -d "$status_date" "$main_basedir"/all_statuses/$instance/$status_id
touch -d "$status_date" "$main_basedir"/all_statuses/$instance/$status_id/*
done
export ids