38 lines
1.1 KiB
Nix
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 ];
|
|
}
|