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 #305main
parent
b73c14c7cc
commit
3784d897d9
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue