Jak pobrać listę profili, które cię obserwują
Czyli wstęp do własnego “Unfollowers” :)
#Mastodon pozwala ci pobrać listę obserwowanych profili, ale nie obserwujących.
Ten mały skrypt w #bash korzystający z #curl i #jq pozwala ominąć tę niedogodność, wykorzystując API serwera.
#!/usr/bin/env bash
instance="https://twoja.instancja"
user="m0bi13"
json=$(curl -s -H "Accept: application/activity+json" $instance/users/$user/followers?page=1)
echo "$json" | jq -r .orderedItems[] | xargs -I% echo "%"
next=$(echo "$json" | jq -r .next)
while true; do
json=$(curl -s -H "Accept: application/activity+json" "$next")
echo "$json" | jq -r .orderedItems[] | xargs -I% echo "%"
next=$(echo "$json" | jq -r .next)
if [ -z "$next" ]; then
break
fi
done
Pobierając taką listę codziennie i porównując z poprzednią, możesz sobie stworzyć narzędzie do przeglądania nowych obserwujących oraz tych, którzy z obserwowania ciebie zrezygnowali.
Uwaga: jeśli “zrezygnowali”, nie ma ich na liście, ale serwer ich instancji zwraca 404 dla poprzedniego adresu, to znaczy, że zmienili instancję, a nie skasowali follow, mogą pojawić się na nowych instancjach z follow twojego profilu. Nie znam sposobu, jak “sparować” takie przenosiny, co mogłoby być kluczem łączącym. Ty znasz? Napisz do mnie. Kontakt w stopce :)
Plik do pobrania w moim repo do #Mastodon na #Codeberg jako list-following:
https://codeberg.org/m0bi/mastodon-usefull
Ściągasz, nadajesz atrybut wykonywalności, wpisujesz swoją instancję i swoje konto, odpalasz albo zapinasz do #cron-a i gotowe.
P.S. Skrypt znalazłem “dawno temu w sieci” i przerobiłem, a teraz pomyślałem, że i tobie się przyda.
P.S.2 Endpoint, z którego skrypt korzysta, nie wymaga autoryzacji, więc możesz podglądać również obserwujących inne profile.
P.S.3 jq to “swiss army knife” do #JSON-a, warto bliżej poznać.
— Chcesz wesprzeć moje pisanie i działania? Wpłać datek na fundację FTdL @ftdl@pol.social, z którą współpracuję :) Jednorazowo: https://ftdl.pl/wplaty/ Cyklicznie: https://ftdl.pl/wsparcie/ Fedi: m0bi13@pol.social E-mail: m0bi@e.email