Files
nixos-flake/assets/scripts/misskey.nix
2026-03-29 02:39:10 +09:00

38 lines
1.1 KiB
Nix

{ pkgs, ... }:
let
getLatestN = pkgs.writeShellApplication {
name = "misskey-getLatestN";
runtimeInputs = with pkgs; [
curl
jq
];
text = ''
if [ ! -e /tmp//misskey-scripts/getLatestN1.fifo ]; then
mkdir -p /tmp/misskey-scripts
mkfifo /tmp/misskey-scripts/getLatestN1.fifo
fi
if [ ! -e /tmp//misskey-scripts/getLatestN2.fifo ]; then
mkdir -p /tmp/misskey-scripts
mkfifo /tmp/misskey-scripts/getLatestN2.fifo
fi
pipeLocation1=/tmp/misskey-scripts/getLatestN1.fifo
pipeLocation2=/tmp/misskey-scripts/getLatestN2.fifo
curl https://misskey.io/api/notes -s --request POST --header 'Content-Type: application/json' --data "{\"local\": true, \"reply\": false, \"renote\": false, \"withFiles\": false, \"poll\": false, \"limit\": $1}" > "$pipeLocation1" &
jq -M -r '.[].text' < $pipeLocation1 > $pipeLocation2 &
while read -r line; do
echo "$line"
done < $pipeLocation2
wait
'';
};
in
pkgs.symlinkJoin {
name = "misskey-scripts";
paths = [ getLatestN ];
}