diff --git a/src/dashboard.py b/src/dashboard.py index ffaf45b..e305e28 100644 --- a/src/dashboard.py +++ b/src/dashboard.py @@ -33,7 +33,7 @@ import threading from flask.json.provider import DefaultJSONProvider -DASHBOARD_VERSION = 'v4.0.1.1' +DASHBOARD_VERSION = 'v4.0.2' CONFIGURATION_PATH = os.getenv('CONFIGURATION_PATH', '.') DB_PATH = os.path.join(CONFIGURATION_PATH, 'db') if not os.path.isdir(DB_PATH): @@ -2031,8 +2031,7 @@ def API_traceroute_execute(): @app.route(f'{APP_PREFIX}/api/getDashboardUpdate') def API_getDashboardUpdate(): - import urllib.request as req; - + import urllib.request as req try: r = req.urlopen("https://api.github.com/repos/donaldzou/WGDashboard/releases/latest", timeout=5).read() data = dict(json.loads(r)) @@ -2045,8 +2044,8 @@ def API_getDashboardUpdate(): return ResponseObject(message="You're on the latest version") return ResponseObject(False) - except urllib.error.HTTPError as e: - return ResponseObject(False, f"Request to GitHub API failed. Returned a {e.code} status.") + except urllib.error.HTTPError and urllib.error.URLError as e: + return ResponseObject(False, f"Request to GitHub API failed.") ''' Sign Up diff --git a/src/wgd.sh b/src/wgd.sh index 740934d..32f8080 100755 --- a/src/wgd.sh +++ b/src/wgd.sh @@ -337,28 +337,42 @@ start_wgd_debug() { } update_wgd() { - new_ver=$($venv_python -c "import json; import urllib.request; data = urllib.request.urlopen('https://api.github.com/repos/donaldzou/WGDashboard/releases/latest').read(); output = json.loads(data);print(output['tag_name'])") - printf "%s\n" "$dashes" - printf "[WGDashboard] Are you sure you want to update to the %s? (Y/N): " "$new_ver" - read up - if [ "$up" = "Y" ] || [ "$up" = "y" ]; then - printf "[WGDashboard] Shutting down WGDashboard\n" - if check_wgd_status; then - stop_wgd - fi - mv wgd.sh wgd.sh.old - printf "[WGDashboard] Downloading %s from GitHub..." "$new_ver" - { date; git stash; git pull https://github.com/donaldzou/WGDashboard.git $new_ver --force; } >> ./log/update.txt - chmod +x ./wgd.sh - sudo ./wgd.sh install - printf "[WGDashboard] Update completed!\n" - printf "%s\n" "$dashes" - rm wgd.sh.old - else - printf "%s\n" "$dashes" - printf "| Update Canceled. |\n" - printf "%s\n" "$dashes" - fi + + _determineOS + if ! python3 --version > /dev/null 2>&1 + then + printf "[WGDashboard] Python is not installed, trying to install now\n" + _installPython + else + printf "[WGDashboard] %s Python is installed\n" "$heavy_checkmark" + fi + + _checkPythonVersion + _installPythonVenv + _installPythonPip + + new_ver=$($venv_python -c "import json; import urllib.request; data = urllib.request.urlopen('https://api.github.com/repos/donaldzou/WGDashboard/releases/latest').read(); output = json.loads(data);print(output['tag_name'])") + printf "%s\n" "$dashes" + printf "[WGDashboard] Are you sure you want to update to the %s? (Y/N): " "$new_ver" + read up + if [ "$up" = "Y" ] || [ "$up" = "y" ]; then + printf "[WGDashboard] Shutting down WGDashboard\n" + if check_wgd_status; then + stop_wgd + fi + mv wgd.sh wgd.sh.old + printf "[WGDashboard] Downloading %s from GitHub..." "$new_ver" + { date; git stash; git pull https://github.com/donaldzou/WGDashboard.git $new_ver --force; } >> ./log/update.txt + chmod +x ./wgd.sh + sudo ./wgd.sh install + printf "[WGDashboard] Update completed!\n" + printf "%s\n" "$dashes" + rm wgd.sh.old + else + printf "%s\n" "$dashes" + printf "[WGDashboard] Update Canceled.\n" + printf "%s\n" "$dashes" + fi } if [ "$#" != 1 ];