X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=nodeinfo.sh;h=2ba294481e231ca6fe31c07c70c89837883072df;hb=bb4ad57f980850e1645fa23e6045a10adc22f617;hp=53888d0dab0ed6fd49274b749c3393e330c80d72;hpb=1b92010670a38dadfe0d302d3fee7ae32e1006e8;p=fba.git diff --git a/nodeinfo.sh b/nodeinfo.sh index 53888d0..2ba2944 100755 --- a/nodeinfo.sh +++ b/nodeinfo.sh @@ -1,67 +1,70 @@ #!/bin/sh MODE="" +DOMAIN_LIST="" +SOFTWARE_LIST="" + if [ "$1" = "--help" ] then - echo "Usage: $0 [file|--software|--software2|--nodeinfo|--generator|--detection|--no-auto|--no-auto2|--timeout]" + echo "Usage: $0 [file|--software|--nodeinfo|--generator|--timeout|--same]" exit 255 elif [ -n "$1" -a -f "$1" ] then - DOMAINS=$(cat "$1") + DOMAIN_LIST=$(cat "$1") MODE="file" -elif [ "$1" = "--software" ] -then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL ORDER BY last_updated ASC;") - MODE="software" elif [ "$1" = "--nodeinfo" ] then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;") + DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;") MODE="nodeinfo" -elif [ "$1" = "--detection" ] -then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE detection_mode IS NULL ORDER BY last_updated ASC;") - MODE="detection" -elif [ "$1" = "--no-auto" ] -then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE detection_mode != 'AUTO_DISCOVERY' ORDER BY last_updated ASC;") - MODE="noauto" -elif [ "$1" = "--no-auto2" ] -then - DOMAINS=`sqlite3 blocks.db "SELECT domain FROM instances WHERE software IN ('pleroma', 'mastodon', 'lemmy', 'friendica', 'misskey', 'peertube', 'takahe', 'gotosocial', 'brighteon', 'wildebeest', 'bookwyrm', 'mitra', 'areionskey', 'mammuthus') AND detection_mode != 'AUTO_DISCOVERY' ORDER BY last_updated ASC;"` - MODE="noauto2" elif [ "$1" = "--timeout" ] then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE last_error_details LIKE '%Timeout%' ORDER BY last_updated ASC;") - MODE="software" -elif [ "$1" = "--software2" ] + DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE last_error_details LIKE '%Timeout%' ORDER BY last_updated ASC;") + MODE="timeout" +elif [ "$1" = "--software" -a -f "software.txt" ] then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NOT NULL AND detection_mode IS NULL ORDER BY last_updated ASC;") - MODE="software2" + SOFTWARE_LIST=$(cat software.txt) + MODE="software" elif [ "$1" = "--generator" ] then - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE detection_mode='GENERATOR' ORDER BY last_updated ASC;") + DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE detection_mode='GENERATOR' ORDER BY last_updated ASC;") MODE="generator" else - DOMAINS=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;") + DOMAIN_LIST=$(sqlite3 blocks.db "SELECT domain FROM instances WHERE software IS NULL AND nodeinfo_url IS NOT NULL ORDER BY last_updated ASC;") fi -if [ -z "${DOMAINS}" ] +if [ -z "${DOMAIN_LIST}" -a -z "${SOFTWARE_LIST}" ] then - echo "$0: No domains found! MODE='${MODE}'" + echo "$0: No domains or software found! MODE='${MODE}'" exit 255 fi -for DOMAIN in ${DOMAINS}; -do - echo "$0: DOMAIN='${DOMAIN}'" - if [ -n "$1" -a -z "${MODE}" ] - then - ./fba.py update_nodeinfo --domain=${DOMAIN} "$1" - elif [ -n "$2" ] - then - ./fba.py update_nodeinfo --domain=${DOMAIN} "$2" - else - ./fba.py update_nodeinfo --domain=${DOMAIN} - fi -done +if [ -n "${DOMAIN_LIST}" ] +then + for DOMAIN in ${DOMAIN_LIST}; + do + echo "$0: DOMAIN='${DOMAIN}'" + if [ -n "$1" -a -z "${MODE}" ] + then + ./fba.py update_nodeinfo --domain=${DOMAIN} "$1" + elif [ -n "$2" ] + then + ./fba.py update_nodeinfo --domain=${DOMAIN} "$2" + else + ./fba.py update_nodeinfo --domain=${DOMAIN} + fi + done +elif [ -n "${SOFTWARE_LIST}" ] +then + for SOFTWARE in ${SOFTWARE_LIST}; + do + echo "$0: SOFTWARE='${SOFTWARE}'" + if [ -n "$2" ] + then + ./fba.py update_nodeinfo --software=${SOFTWARE} "$2" + else + ./fba.py update_nodeinfo --software=${SOFTWARE} + fi + done +fi + echo "$0: All done."