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
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>