Skip to content

Commit 9f05481

Browse files
authored
Merge pull request #173 from DigiNode-Tools/develop
v0.11.0 Release
2 parents 08226f7 + 69260e9 commit 9f05481

4 files changed

Lines changed: 683 additions & 370 deletions

File tree

diginode-help.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"diginodehelp1": {
33
"title": "DigiFact Tip!",
4-
"content": "Some of these DigiFacts include a website URL which can be dificult to open from the terminal. To open a link, try holding the \"Cmd\" key on Mac or the \"Ctrl\" key on Windows as you click on it. Try it now: $DGNT_WEBSITE_URL",
4+
"content": "Some of these DigiFacts include a website URL which can be difficult to open from the terminal. To open a link, try holding the \"Cmd\" key on Mac or the \"Ctrl\" key on Windows as you click on it. Try it now: $DGNT_WEBSITE_URL",
55
"url": "$DGNT_WEBSITE_URL"
66
},
77
"diginodehelp2": {

diginode-setup.sh

Lines changed: 192 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,23 @@
11
#!/bin/bash
22
#
3-
# Name: DigiNode Setup v0.10.10
3+
# Name: DigiNode Setup v0.11.0
44
#
55
# Purpose: Install and manage a DigiByte Node and DigiAsset Node via the linux command line.
66
#
77
# Compatibility: Supports x86_86 or arm64 hardware with Raspberry Pi OS, Ubuntu or Debian 64-bit distros.
8-
# A Raspberry Pi 4 8Gb or better, running Raspberry Pi OS Lite 64-bit is recommended.
8+
# A Raspberry Pi with at least 8Gb RAM running Raspberry Pi OS Lite 64-bit is recommended.
99
#
1010
# Author: Olly Stedall [ Bluesky: @olly.st ]
1111
#
1212
# Website: https://diginode.tools
1313
#
1414
# Support: Telegram - https://t.me/DigiNodeTools
15-
# Bluesky - https://bsky.app/profile/diginode.tools
16-
#
17-
# Get Started: curl -sSL setup.diginode.tools | bash
18-
#
19-
# Alternatively clone the repo to your home folder:
20-
#
21-
# cd ~
22-
# git clone https://github.com/DigiNode-Tools/diginode-tools/
23-
# chmod +x ~/diginode-tools/diginode-setup.sh
24-
#
25-
# To run DigiNode Setup:
26-
#
27-
# ~/diginode-tools/diginode-setup.sh
15+
# Bluesky - https://bsky.app/profile/diginode.tools
2816
#
2917
# -----------------------------------------------------------------------------------------------------
3018

31-
DGNT_VER_LIVE=0.10.10
32-
# Last Updated: 2025-02-12
19+
DGNT_VER_LIVE=0.11.0
20+
# Last Updated: 2025-04-15
3321

3422
# Convert to a fixed width string of 9 characters to display in the script
3523
DGNT_VER_LIVE_FW=$(printf "%-9s" "v$DGNT_VER_LIVE")
@@ -90,6 +78,17 @@ if [[ "$RUN_SETUP" != "NO" ]] ; then
9078
VERBOSE_MODE=false
9179
fi
9280

81+
82+
######## NEW GENERIC BLOCKCHAIN IDENTIFIER VARIABLES #########
83+
84+
# DIGIBYTE VARIABLES
85+
86+
CRYPTO_NAME="DigiByte"
87+
CRYPTO_SYMBOL="DGB"
88+
SETTINGS_LOCATION=$USER_HOME/.digibyte
89+
SETTINGS_FILE=$SETTINGS_LOCATION/diginode.settings
90+
91+
9392
######### IMPORTANT NOTE ###########
9493
# Both the DigiNode Setup and DigiNode Dashboard scripts make use of a setting file
9594
# located at ~/.digibyte/diginode.settings
@@ -512,6 +511,9 @@ if [ ! -f "$DGNT_SETTINGS_FILE" ]; then
512511
DGB_MAX_CONNECTIONS=150
513512
SM_AUTO_QUIT=20
514513
SM_DISPLAY_BALANCE=YES
514+
SM_DISPLAY_MAINNET_MEMPOOL=YES
515+
SM_DISPLAY_TESTNET_MEMPOOL=YES
516+
SM_MEMPOOL_DISPLAY_TIMEOUT=30
515517
DGNT_DEV_BRANCH=YES
516518
INSTALL_SYS_UPGRADES=NO
517519

@@ -546,6 +548,9 @@ if [ ! -f "$DGNT_SETTINGS_FILE" ]; then
546548
# SET UPDATE GROUP - RANDOM NUMBER BETWEEN 1 and 4
547549
UPDATE_GROUP=$(( 1 + $RANDOM % 4 ))
548550

551+
# generate unique system ID
552+
generate_node_uid
553+
549554
# create diginode.settings file
550555
diginode_settings_create_update
551556

@@ -620,6 +625,19 @@ if [[ ! "$UPDATE_GROUP" =~ [1234] ]]; then
620625
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
621626
fi
622627

628+
# If display mempool values are not assigned, assign them to YES
629+
if [ "$SM_DISPLAY_MAINNET_MEMPOOL" != "YES" ] || [ "$SM_DISPLAY_MAINNET_MEMPOOL" != "NO" ]; then
630+
SM_DISPLAY_MAINNET_MEMPOOL=YES
631+
fi
632+
if [ "$SM_DISPLAY_TESTNET_MEMPOOL" != "YES" ] || [ "$SM_DISPLAY_TESTNET_MEMPOOL" != "NO" ]; then
633+
SM_DISPLAY_TESTNET_MEMPOOL=YES
634+
fi
635+
if [ "$SM_MEMPOOL_DISPLAY_TIMEOUT" = "" ]; then
636+
SM_MEMPOOL_DISPLAY_TIMEOUT=30
637+
fi
638+
if [ "$NODE_UID" = "" ]; then
639+
generate_node_uid
640+
fi
623641

624642
# create diginode.settings file
625643
if [ "$recreate_diginode_settings" = "yes" ]; then
@@ -682,6 +700,15 @@ SM_AUTO_QUIT=$SM_AUTO_QUIT
682700
# has completed syncing, and (c) there are actually funds in the wallet (i.e. the balance is > 0).
683701
SM_DISPLAY_BALANCE=$SM_DISPLAY_BALANCE
684702

703+
# Choose whether to display DigiByte mempool data in the DigiNode Dashboard. (Specify either YES or NO.)
704+
# SM_MEMPOOL_DISPLAY_TIMOUT specifies the number of seconds of there being zero transactions before the
705+
# mempool data is hidden. This ensures that mempool data is only displayed when there is data to be displayed.
706+
# Default value is SM_MEMPOOL_DISPLAY_TIMOUT=30
707+
SM_DISPLAY_MAINNET_MEMPOOL=$SM_DISPLAY_MAINNET_MEMPOOL
708+
SM_DISPLAY_TESTNET_MEMPOOL=$SM_DISPLAY_TESTNET_MEMPOOL
709+
SM_MEMPOOL_DISPLAY_TIMEOUT=$SM_MEMPOOL_DISPLAY_TIMEOUT
710+
711+
685712
# Install the develop branch of DigiNode Tools (Specify either YES or NO)
686713
# If NO, it will install the latest release version
687714
DGNT_DEV_BRANCH=$DGNT_DEV_BRANCH
@@ -771,6 +798,10 @@ UI_SETUP_DIGINODE_MOTD=$UI_SETUP_DIGINODE_MOTD
771798
# THEY ARE CREATED AND SET AUTOMATICALLY BY DigiNode Setup and DigiNode Dashboard.
772799
# Changing them yourself may break your DigiNode.
773800

801+
# This is a unique identifier generated at first install to anonymously identify each DigiNode.
802+
# Do not edit this value or your node may break
803+
NODE_UID=$NODE_UID
804+
774805
# DIGIBYTE NODE LOCATION: (Do not change this value)
775806
# This references a symbolic link that points at the actual install folder.
776807
# If you are using DigiNode Setup to manage your node there is no reason to change this.
@@ -990,22 +1021,19 @@ INSTALLED_TOR_GPG_KEY=$INSTALLED_TOR_GPG_KEY
9901021

9911022

9921023
###############################################
993-
####### STATE VARIABLES ########£££############
1024+
####### STATE VARIABLES #######################
9941025
###############################################
9951026

9961027
# These variables are periodically updated when there is a new release of DigiNode Tools
9971028
# These are used to display the current state of the DigiByte blockchain
9981029
# There is no need to change these values yourself. They will be updated automatically.
9991030

1000-
# Current DigiByte Block height in Millions. Used in the DigiFacts.
1001-
DGB_BLOCK_HEIGHT_MIL="18"
1002-
10031031
# These variables stores the approximate amount of space required to download the entire DigiByte blockchain
10041032
# This is used during the disk space check to ensure there is enough space on the drive to download the DigiByte blockchain.
10051033
# (Format date like so - e.g. "January 2023"). This is the approximate date when these values were updated.
1006-
DGB_DATA_REQUIRED_DATE="August 2023"
1007-
DGB_DATA_REQUIRED_HR="52Gb"
1008-
DGB_DATA_REQUIRED_KB="52000000"
1034+
DGB_DATA_REQUIRED_DATE="April 2025"
1035+
DGB_DATA_REQUIRED_HR="55Gb"
1036+
DGB_DATA_REQUIRED_KB="55000000"
10091037

10101038
EOF
10111039

@@ -1361,6 +1389,76 @@ fi
13611389

13621390
}
13631391

1392+
generate_node_uid() {
1393+
local crypto_symbol node_uid_timestamp random_id machine_id
1394+
local node_uid_combined fallback_id fallback_file
1395+
local decoded_uid stored_machine_id
1396+
1397+
crypto_symbol="$CRYPTO_SYMBOL"
1398+
fallback_file="$USER_HOME/.fallback_machine_id"
1399+
1400+
# Determine machine_id
1401+
if [[ -r /etc/machine-id ]]; then
1402+
machine_id=$(cat /etc/machine-id)
1403+
else
1404+
# Check if fallback file exists and is valid (32 hex characters)
1405+
if [[ -r "$fallback_file" ]]; then
1406+
fallback_id=$(<"$fallback_file")
1407+
if [[ "$fallback_id" =~ ^[a-f0-9]{32}$ ]]; then
1408+
machine_id="$fallback_id"
1409+
else
1410+
printf "%b Invalid fallback machine ID detected. Regenerating...\n" "${WARN}"
1411+
fallback_id=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n')
1412+
echo "$fallback_id" > "$fallback_file"
1413+
chmod 600 "$fallback_file"
1414+
machine_id="$fallback_id"
1415+
fi
1416+
else
1417+
# Generate and store a new fallback ID
1418+
printf "%b No machine-id detected. Generating fallback machine ID...\n" "${WARN}"
1419+
fallback_id=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n')
1420+
echo "$fallback_id" > "$fallback_file"
1421+
chmod 600 "$fallback_file"
1422+
machine_id="$fallback_id"
1423+
fi
1424+
fi
1425+
1426+
# Check existing NODE_UID
1427+
if [[ -n "$NODE_UID" ]]; then
1428+
# Decode Base64 URL
1429+
decoded_uid=$(echo "$NODE_UID" | tr '_-' '/+' | base64 --decode 2>/dev/null)
1430+
1431+
if [[ "$decoded_uid" =~ ^([A-Z]+)_([0-9]+)_([a-f0-9]{6})_([a-f0-9]+)$ ]]; then
1432+
stored_machine_id="${BASH_REMATCH[4]}"
1433+
if [[ "$stored_machine_id" == "$machine_id" ]]; then
1434+
if [ $VERBOSE_MODE = true ]; then
1435+
printf "%b NODE_UID is valid and matches current machine-id.\n" "${TICK}"
1436+
fi
1437+
return 0
1438+
else
1439+
printf "%b NODE_UID machine-id mismatch — regenerating...\n" "${WARN}"
1440+
fi
1441+
else
1442+
printf "%b NODE_UID format is invalid — regenerating...\n" "${WARN}"
1443+
fi
1444+
fi
1445+
1446+
# Generate new NODE_UID
1447+
node_uid_timestamp=$(date +%s)
1448+
random_id=$(openssl rand -hex 3) # 6-character random hex
1449+
node_uid_combined="${crypto_symbol}_${node_uid_timestamp}_${random_id}_${machine_id}"
1450+
1451+
# Base64 URL encode
1452+
NODE_UID=$(echo -n "$node_uid_combined" | base64 | tr '+/' '-_' | tr -d '=')
1453+
1454+
# Save to diginode.settings
1455+
if [[ -f "$DGNT_SETTINGS_FILE" ]]; then
1456+
sed -i -e "/^NODE_UID=/s|.*|NODE_UID=$NODE_UID|" "$DGNT_SETTINGS_FILE"
1457+
fi
1458+
1459+
printf "%b Generated new NODE_UID: %s\n" "${INFO}" "$NODE_UID"
1460+
}
1461+
13641462

13651463
# OLD VERSION_CODENAME
13661464

@@ -8147,9 +8245,23 @@ change_tor_status() {
81478245
# Restart Digibyted if the Tor status has just been changed
81488246
if [ "$DGB_STATUS" = "running" ] || [ "$DGB_STATUS" = "startingup" ] || [ "$DGB_STATUS" = "stopped" ]; then
81498247
printf "%b DigiByte Core Tor status has been changed. DigiByte Mainnet daemon will be restarted...\\n" "${INFO}"
8248+
stop_service digibyted
8249+
if [ -f "$DGB_DATA_LOCATION/peers.dat" ]; then
8250+
str="Deleting Mainnet peers.dat as Tor status has changed ..."
8251+
printf "%b %s" "${INFO}" "${str}"
8252+
rm -f $DGB_DATA_LOCATION/peers.dat
8253+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8254+
fi
81508255
restart_service digibyted
81518256
fi
81528257

8258+
# Reenable port tester as Tor status has changed
8259+
str="Re-enabling DigiByte Core MAINNET Port Test ..."
8260+
printf "%b %s" "${INFO}" "${str}"
8261+
DGB_MAINNET_PORT_TEST_ENABLED="YES"
8262+
sed -i -e "/^DGB_MAINNET_PORT_TEST_ENABLED=/s|.*|DGB_MAINNET_PORT_TEST_ENABLED=\"$DGB_MAINNET_PORT_TEST_ENABLED\"|" $DGNT_SETTINGS_FILE
8263+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8264+
81538265
fi
81548266

81558267
# Restart DigiByte testnet daemon if Tor status has changed (single node)
@@ -8158,9 +8270,23 @@ change_tor_status() {
81588270
# Restart Digibyted if the Tor status has just been changed
81598271
if [ "$DGB_STATUS" = "running" ] || [ "$DGB_STATUS" = "startingup" ] || [ "$DGB_STATUS" = "stopped" ]; then
81608272
printf "%b DigiByte Core Tor status has been changed. DigiByte Testnet daemon will be restarted...\\n" "${INFO}"
8273+
stop_service digibyted
8274+
if [ -f "$DGB_DATA_LOCATION/testnet4/peers.dat" ]; then
8275+
str="Deleting Testnet peers.dat as Tor status has changed ..."
8276+
printf "%b %s" "${INFO}" "${str}"
8277+
rm -f $DGB_DATA_LOCATION/testnet4/peers.dat
8278+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8279+
fi
81618280
restart_service digibyted
81628281
fi
81638282

8283+
# Reenable port tester as Tor status has changed
8284+
str="Re-enabling DigiByte Core TESTNET Port Test ..."
8285+
printf "%b %s" "${INFO}" "${str}"
8286+
DGB_TESTNET_PORT_TEST_ENABLED="YES"
8287+
sed -i -e "/^DGB_TESTNET_PORT_TEST_ENABLED=/s|.*|DGB_TESTNET_PORT_TEST_ENABLED=\"$DGB_TESTNET_PORT_TEST_ENABLED\"|" $DGNT_SETTINGS_FILE
8288+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8289+
81648290
fi
81658291

81668292
# Restart DigiByte testnet daemon if Tor status has changed (dual node)
@@ -8169,9 +8295,23 @@ change_tor_status() {
81698295
# Restart Digibyted if the Tor status has just been changed
81708296
if [ "$DGB2_STATUS" = "running" ] || [ "$DGB2_STATUS" = "startingup" ] || [ "$DGB2_STATUS" = "stopped" ]; then
81718297
printf "%b DigiByte Core Tor status has been changed. DigiByte Testnet daemon will be restarted...\\n" "${INFO}"
8298+
stop_service digibyted-testnet
8299+
if [ -f "$DGB_DATA_LOCATION/testnet4/peers.dat" ]; then
8300+
str="Deleting Testnet peers.dat as Tor status has changed ..."
8301+
printf "%b %s" "${INFO}" "${str}"
8302+
rm -f $DGB_DATA_LOCATION/testnet4/peers.dat
8303+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8304+
fi
81728305
restart_service digibyted-testnet
81738306
fi
81748307

8308+
# Reenable port tester as Tor status has changed
8309+
str="Re-enabling DigiByte Core TESTNET Port Test ..."
8310+
printf "%b %s" "${INFO}" "${str}"
8311+
DGB_TESTNET_PORT_TEST_ENABLED="YES"
8312+
sed -i -e "/^DGB_TESTNET_PORT_TEST_ENABLED=/s|.*|DGB_TESTNET_PORT_TEST_ENABLED=\"$DGB_TESTNET_PORT_TEST_ENABLED\"|" $DGNT_SETTINGS_FILE
8313+
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
8314+
81758315
fi
81768316

81778317
# Set the IPFS Tor values, if we are enabling/disabling the UPnP status
@@ -8381,6 +8521,8 @@ change_dgb_network() {
83818521
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_HR=/s|.*|DGB_DATA_DISKUSED_MAIN_HR=\"$DGB_DATA_DISKUSED_MAIN_HR\"|" $DGNT_SETTINGS_FILE
83828522
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_KB=/s|.*|DGB_DATA_DISKUSED_MAIN_KB=\"$DGB_DATA_DISKUSED_MAIN_KB\"|" $DGNT_SETTINGS_FILE
83838523
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_PERC=/s|.*|DGB_DATA_DISKUSED_MAIN_PERC=\"$DGB_DATA_DISKUSED_MAIN_PERC\"|" $DGNT_SETTINGS_FILE
8524+
DGB_BLOCKSYNC_VALUE=""
8525+
sed -i -e "/^DGB_BLOCKSYNC_VALUE=/s|.*|DGB_BLOCKSYNC_VALUE=\"$DGB_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
83848526
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
83858527
fi
83868528
printf "\\n"
@@ -8420,6 +8562,10 @@ change_dgb_network() {
84208562
sed -i -e "/^DGB_DATA_DISKUSED_TEST_HR=/s|.*|DGB_DATA_DISKUSED_TEST_HR=\"$DGB_DATA_DISKUSED_TEST_HR\"|" $DGNT_SETTINGS_FILE
84218563
sed -i -e "/^DGB_DATA_DISKUSED_TEST_KB=/s|.*|DGB_DATA_DISKUSED_TEST_KB=\"$DGB_DATA_DISKUSED_TEST_KB\"|" $DGNT_SETTINGS_FILE
84228564
sed -i -e "/^DGB_DATA_DISKUSED_TEST_PERC=/s|.*|DGB_DATA_DISKUSED_TEST_PERC=\"$DGB_DATA_DISKUSED_TEST_PERC\"|" $DGNT_SETTINGS_FILE
8565+
DGB2_BLOCKSYNC_VALUE=""
8566+
sed -i -e "/^DGB2_BLOCKSYNC_VALUE=/s|.*|DGB2_BLOCKSYNC_VALUE=\"$DGB2_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
8567+
DGB_BLOCKSYNC_VALUE=""
8568+
sed -i -e "/^DGB_BLOCKSYNC_VALUE=/s|.*|DGB_BLOCKSYNC_VALUE=\"$DGB_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
84238569
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
84248570
fi
84258571
printf "\\n"
@@ -17852,9 +17998,11 @@ uninstall_do_now() {
1785217998
DGB_DATA_DISKUSED_MAIN_HR=""
1785317999
DGB_DATA_DISKUSED_MAIN_KB=""
1785418000
DGB_DATA_DISKUSED_MAIN_PERC=""
18001+
DGB_BLOCKSYNC_VALUE=""
1785518002
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_HR=/s|.*|DGB_DATA_DISKUSED_MAIN_HR=\"$DGB_DATA_DISKUSED_MAIN_HR\"|" $DGNT_SETTINGS_FILE
1785618003
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_KB=/s|.*|DGB_DATA_DISKUSED_MAIN_KB=\"$DGB_DATA_DISKUSED_MAIN_KB\"|" $DGNT_SETTINGS_FILE
1785718004
sed -i -e "/^DGB_DATA_DISKUSED_MAIN_PERC=/s|.*|DGB_DATA_DISKUSED_MAIN_PERC=\"$DGB_DATA_DISKUSED_MAIN_PERC\"|" $DGNT_SETTINGS_FILE
18005+
sed -i -e "/^DGB_BLOCKSYNC_VALUE=/s|.*|DGB_BLOCKSYNC_VALUE=\"$DGB_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
1785818006
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
1785918007
fi
1786018008

@@ -17892,6 +18040,10 @@ uninstall_do_now() {
1789218040
sed -i -e "/^DGB_DATA_DISKUSED_TEST_HR=/s|.*|DGB_DATA_DISKUSED_TEST_HR=\"$DGB_DATA_DISKUSED_TEST_HR\"|" $DGNT_SETTINGS_FILE
1789318041
sed -i -e "/^DGB_DATA_DISKUSED_TEST_KB=/s|.*|DGB_DATA_DISKUSED_TEST_KB=\"$DGB_DATA_DISKUSED_TEST_KB\"|" $DGNT_SETTINGS_FILE
1789418042
sed -i -e "/^DGB_DATA_DISKUSED_TEST_PERC=/s|.*|DGB_DATA_DISKUSED_TEST_PERC=\"$DGB_DATA_DISKUSED_TEST_PERC\"|" $DGNT_SETTINGS_FILE
18043+
DGB2_BLOCKSYNC_VALUE=""
18044+
sed -i -e "/^DGB2_BLOCKSYNC_VALUE=/s|.*|DGB2_BLOCKSYNC_VALUE=\"$DGB2_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
18045+
DGB_BLOCKSYNC_VALUE=""
18046+
sed -i -e "/^DGB_BLOCKSYNC_VALUE=/s|.*|DGB_BLOCKSYNC_VALUE=\"$DGB_BLOCKSYNC_VALUE\"|" $DGNT_SETTINGS_FILE
1789518047
printf "%b%b %s Done!\\n" "${OVER}" "${TICK}" "${str}"
1789618048
fi
1789718049

@@ -18246,12 +18398,26 @@ download_digifacts() {
1824618398
str="Is downloaded digifacts.json okay? ..."
1824718399
printf "%b %s" "${INFO}" "${str}"
1824818400
if test ! -s "$digifacts_file"; then
18249-
rm "$digifacts_file"
18401+
if [ -f "$digifacts_file" ]; then
18402+
rm "$digifacts_file"
18403+
fi
1825018404
if [ -f "$digifacts_backup_file" ]; then
1825118405
mv "$digifacts_backup_file" "$digifacts_file"
1825218406
fi
1825318407
printf "%b%b %s No! File empty! Backup restored!\\n" "${OVER}" "${CROSS}" "${str}"
18408+
printf "%b %bERROR: DigiFacts web server may be down!%b\\n" "${INFO}" "${COL_LIGHT_RED}" "${COL_NC}"
18409+
return 1
18410+
18411+
# New: Check for HTML response from Cloudflare
18412+
elif grep -q -i "<!DOCTYPE html>" "$digifacts_file" || grep -q -i "<html" "$digifacts_file"; then
18413+
rm "$digifacts_file"
18414+
if [ -f "$digifacts_backup_file" ]; then
18415+
mv "$digifacts_backup_file" "$digifacts_file"
18416+
fi
18417+
printf "%b%b %s No! Received HTML instead of JSON. Backup restored!\\n" "${OVER}" "${CROSS}" "${str}"
18418+
printf "%b %bERROR: DigiFacts service may be unreachable or returning a Cloudflare error.%b\\n" "${INFO}" "${COL_LIGHT_RED}" "${COL_NC}"
1825418419
return 1
18420+
1825518421
else
1825618422
# If the JSON is valid, delete the backup file (if it exists)
1825718423
if [ -f "$digifacts_backup_file" ]; then
@@ -18271,6 +18437,7 @@ download_digifacts() {
1827118437
mv "$digifacts_backup_file" "$digifacts_file"
1827218438
fi
1827318439
printf "%b%b %s No! Bad JSON! Backup restored!\\n" "${OVER}" "${CROSS}" "${str}"
18440+
printf "%b %bERROR: DigiFacts.json was bad json. Is service down?%b\\n" "${INFO}" "${COL_LIGHT_RED}" "${COL_NC}"
1827418441
return 1
1827518442
else
1827618443
# If the JSON is valid, delete the backup file (if it exists)

0 commit comments

Comments
 (0)