From 3784d897d9d2b045be5bd81984fa444fa52451c4 Mon Sep 17 00:00:00 2001 From: Vansh Comar <69755265+vacom13@users.noreply.github.com> Date: Tue, 2 Nov 2021 22:05:40 +0530 Subject: [PATCH] Add "update available" indicator to footer (#517) This checks the latest released version of Whoogle against the current app version, and shows an "update available" message if the current version num < latest release num. Closes #305 --- app/__init__.py | 2 ++ app/routes.py | 14 +++++++++++++- app/static/css/dark-theme.css | 2 +- app/static/css/light-theme.css | 2 +- app/templates/display.html | 7 +------ app/templates/footer.html | 9 +++++++++ app/templates/index.html | 7 +------ 7 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 app/templates/footer.html diff --git a/app/__init__.py b/app/__init__.py index b6bce99..4d2adb0 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -59,6 +59,8 @@ app.config['BANG_PATH'] = os.getenv( app.config['BANG_FILE'] = os.path.join( app.config['BANG_PATH'], 'bangs.json') +app.config['RELEASES_URL'] = 'https://github.com/' \ + 'benbusby/whoogle-search/releases' # The alternative to Google Translate is treated a bit differently than other # social media site alternatives, in that it is used for any translation diff --git a/app/routes.py b/app/routes.py index 6e96a61..0889407 100644 --- a/app/routes.py +++ b/app/routes.py @@ -21,12 +21,22 @@ from app.utils.session import generate_user_key, valid_user_session from bs4 import BeautifulSoup as bsoup from flask import jsonify, make_response, request, redirect, render_template, \ send_file, session, url_for -from requests import exceptions +from requests import exceptions, get # Load DDG bang json files only on init bang_json = json.load(open(app.config['BANG_FILE'])) +# Check the newest version of WHOOGLE +update = bsoup(get(app.config['RELEASES_URL']).text, 'html.parser') +newest_version = update.select_one('[class="Link--primary"]').string[1:] +current_version = int(''.join(filter(str.isdigit, + app.config['VERSION_NUMBER']))) +newest_version = int(''.join(filter(str.isdigit, newest_version))) +newest_version = '' if current_version >= newest_version \ + else newest_version + + def auth_required(f): @wraps(f) def decorated(*args, **kwargs): @@ -137,6 +147,7 @@ def index(): return render_template('error.html', error_message=error_message) return render_template('index.html', + newest_version=newest_version, languages=app.config['LANGUAGES'], countries=app.config['COUNTRIES'], themes=app.config['THEMES'], @@ -261,6 +272,7 @@ def search(): return render_template( 'display.html', + newest_version=newest_version, query=urlparse.unquote(query), search_type=search_util.search_type, config=g.user_config, diff --git a/app/static/css/dark-theme.css b/app/static/css/dark-theme.css index 2d17c00..68b7cad 100644 --- a/app/static/css/dark-theme.css +++ b/app/static/css/dark-theme.css @@ -187,6 +187,6 @@ path { color: var(--whoogle-dark-text) !important; } -.ip-text-div{ +.ip-text-div, .update_available { color: var(--whoogle-dark-secondary-text) !important; } diff --git a/app/static/css/light-theme.css b/app/static/css/light-theme.css index fbe3ad6..de37157 100644 --- a/app/static/css/light-theme.css +++ b/app/static/css/light-theme.css @@ -175,6 +175,6 @@ path { border-bottom: 0px; } -.ip-text-div{ +.ip-text-div, .update_available { color: var(--whoogle-secondary-text) !important; } diff --git a/app/templates/display.html b/app/templates/display.html index 4f2c109..df896b3 100644 --- a/app/templates/display.html +++ b/app/templates/display.html @@ -33,12 +33,7 @@ {% endif %} {{ response|safe }} - +{% include 'footer.html' %} diff --git a/app/templates/footer.html b/app/templates/footer.html new file mode 100644 index 0000000..f018318 --- /dev/null +++ b/app/templates/footer.html @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/app/templates/index.html b/app/templates/index.html index cf8f342..b61753c 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -232,11 +232,6 @@ {% endif %} - +{% include 'footer.html' %}