Add "update available" indicator to footer ()

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 
main
Vansh Comar 2021-11-02 22:05:40 +05:30 committed by GitHub
parent b73c14c7cc
commit 3784d897d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 28 additions and 15 deletions

View File

@ -59,6 +59,8 @@ app.config['BANG_PATH'] = os.getenv(
app.config['BANG_FILE'] = os.path.join( app.config['BANG_FILE'] = os.path.join(
app.config['BANG_PATH'], app.config['BANG_PATH'],
'bangs.json') '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 # The alternative to Google Translate is treated a bit differently than other
# social media site alternatives, in that it is used for any translation # social media site alternatives, in that it is used for any translation

View File

@ -21,12 +21,22 @@ from app.utils.session import generate_user_key, valid_user_session
from bs4 import BeautifulSoup as bsoup from bs4 import BeautifulSoup as bsoup
from flask import jsonify, make_response, request, redirect, render_template, \ from flask import jsonify, make_response, request, redirect, render_template, \
send_file, session, url_for send_file, session, url_for
from requests import exceptions from requests import exceptions, get
# Load DDG bang json files only on init # Load DDG bang json files only on init
bang_json = json.load(open(app.config['BANG_FILE'])) 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): def auth_required(f):
@wraps(f) @wraps(f)
def decorated(*args, **kwargs): def decorated(*args, **kwargs):
@ -137,6 +147,7 @@ def index():
return render_template('error.html', error_message=error_message) return render_template('error.html', error_message=error_message)
return render_template('index.html', return render_template('index.html',
newest_version=newest_version,
languages=app.config['LANGUAGES'], languages=app.config['LANGUAGES'],
countries=app.config['COUNTRIES'], countries=app.config['COUNTRIES'],
themes=app.config['THEMES'], themes=app.config['THEMES'],
@ -261,6 +272,7 @@ def search():
return render_template( return render_template(
'display.html', 'display.html',
newest_version=newest_version,
query=urlparse.unquote(query), query=urlparse.unquote(query),
search_type=search_util.search_type, search_type=search_util.search_type,
config=g.user_config, config=g.user_config,

View File

@ -187,6 +187,6 @@ path {
color: var(--whoogle-dark-text) !important; color: var(--whoogle-dark-text) !important;
} }
.ip-text-div{ .ip-text-div, .update_available {
color: var(--whoogle-dark-secondary-text) !important; color: var(--whoogle-dark-secondary-text) !important;
} }

View File

@ -175,6 +175,6 @@ path {
border-bottom: 0px; border-bottom: 0px;
} }
.ip-text-div{ .ip-text-div, .update_available {
color: var(--whoogle-secondary-text) !important; color: var(--whoogle-secondary-text) !important;
} }

View File

@ -33,12 +33,7 @@
{% endif %} {% endif %}
{{ response|safe }} {{ response|safe }}
</body> </body>
<footer> {% include 'footer.html' %}
<p class="footer">
Whoogle Search v{{ version_number }} ||
<a id="gh-link" href="https://github.com/benbusby/whoogle-search">{{ translation['github-link'] }}</a>
</p>
</footer>
<script src="{{ cb_url('autocomplete.js') }}"></script> <script src="{{ cb_url('autocomplete.js') }}"></script>
<script src="{{ cb_url('utils.js') }}"></script> <script src="{{ cb_url('utils.js') }}"></script>
<script src="{{ cb_url('keyboard.js') }}"></script> <script src="{{ cb_url('keyboard.js') }}"></script>

View File

@ -0,0 +1,9 @@
<footer>
<p class="footer">
Whoogle Search v{{ version_number }} ||
<a id="gh-link" href="https://github.com/benbusby/whoogle-search">{{ translation['github-link'] }}</a>
{% if newest_version %}
|| <span class="update_available">Update Available 🟢</span>
{% endif %}
</p>
</footer>

View File

@ -232,11 +232,6 @@
</div> </div>
{% endif %} {% endif %}
</div> </div>
<footer> {% include 'footer.html' %}
<p class="footer">
Whoogle Search v{{ version_number }} ||
<a id="gh-link" href="https://github.com/benbusby/whoogle-search">{{ translation['github-link'] }}</a>
</p>
</footer>
</body> </body>
</html> </html>