]> git.mxchange.org Git - fba.git/blobdiff - nodeinfo.sh
Continued:
[fba.git] / nodeinfo.sh
index 53888d0dab0ed6fd49274b749c3393e330c80d72..2ba294481e231ca6fe31c07c70c89837883072df 100755 (executable)
@@ -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."