66 lines
2.1 KiB
Bash
Executable File
66 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
echo "[-] generating cache"
|
|
|
|
SCRIPTPATH="$( cd "$(dirname "$0")" > /dev/null 2>&1 ; pwd -P )"
|
|
|
|
INSTANCES=$(sudo -u pleroma psql -d pleroma_dev -c "copy (select ap_id from users) to STDOUT DELIMITER ';'" | sed 's|^https://||' | sed 's|/.*$||' | sort | uniq)
|
|
|
|
#INSTANCES=$(cat $SCRIPTPATH/cache/instance.list)
|
|
|
|
mkdir -p $SCRIPTPATH/cache/
|
|
|
|
echo "[-] fetching icons"
|
|
|
|
while read -r instance
|
|
do
|
|
rm -Rf $SCRIPTPATH/cache/$instance
|
|
STATUS_CODE=$(curl -sL -m 10 -o /tmp/$instance.html -w '%{http_code}' "https://$instance")
|
|
FAVICON=$(xmllint --html --nowarning --xpath '(//link[contains(concat(" ", @rel, " "), "icon")])[1]/@href' /tmp/$instance.html 2>/dev/null | sed 's|^ href="||' | sed 's|"$||')
|
|
if [ -f /tmp/$instance.html ] ; then
|
|
rm /tmp/$instance.html
|
|
fi
|
|
if [ $STATUS_CODE -eq 200 ] ; then
|
|
if [ "$FAVICON" != "" ] ; then
|
|
rm -Rf $SCRIPTPATH/cache/$instance.png
|
|
EXT="${FAVICON##*.}"
|
|
URL="https://$instance$FAVICON"
|
|
case $FAVICON in
|
|
/*)
|
|
URL="https://$instance$FAVICON"
|
|
;;
|
|
http*)
|
|
URL=$FAVICON
|
|
;;
|
|
*)
|
|
URL="https://$instance/$FAVICON"
|
|
;;
|
|
esac
|
|
ICON_CODE=$(curl -sL -m 10 -o "/tmp/$instance.$EXT" -w '%{http_code}' "$URL")
|
|
if [ $ICON_CODE -eq 200 ] ; then
|
|
if [ "$EXT" == "png" ] ; then
|
|
cp "/tmp/$instance.$EXT" $SCRIPTPATH/cache/$instance.$EXT
|
|
else
|
|
convert "/tmp/$instance.$EXT" "$SCRIPTPATH/cache/$instance.png"
|
|
LAST_IMAGE=$(ls $SCRIPTPATH/cache/$instance-* 2>/dev/null | tail -n1)
|
|
if [ ! -z "$LAST_IMAGE" ] ; then
|
|
mv $LAST_IMAGE $SCRIPTPATH/cache/$instance.png
|
|
rm $SCRIPTPATH/cache/$instance-*
|
|
fi
|
|
fi
|
|
echo "[o] $instance: done"
|
|
else
|
|
echo "[x] $instance: can't fetch $FAVICON ( $ICON_CODE )"
|
|
fi
|
|
else
|
|
echo "[x] $instance: no favicon found"
|
|
fi
|
|
else
|
|
echo "[x] $instance: can't fetch index ( $STATUS_CODE )"
|
|
fi
|
|
done < <(echo "$INSTANCES")
|
|
|
|
echo "[-] copying own favicon"
|
|
cp $SCRIPTPATH/../../../favicon.png $SCRIPTPATH/cache/default.png
|
|
|