Commit 6e2dbb7c authored by Virgil Grigoras's avatar Virgil Grigoras

move current commit hash to its own file

parent f477d48c
...@@ -547,3 +547,11 @@ def check_unrar(unrarLocation): ...@@ -547,3 +547,11 @@ def check_unrar(unrarLocation):
error=True error=True
return (error, version) return (error, version)
def is_sha1(sha1):
if len(sha1) != 40:
return False
try:
temp = int(sha1, 16)
except ValueError:
return False
return True
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from builtins import OSError
try: try:
from googleapiclient.errors import HttpError from googleapiclient.errors import HttpError
except ImportError: except ImportError:
...@@ -1083,14 +1085,21 @@ def get_matching_tags(): ...@@ -1083,14 +1085,21 @@ def get_matching_tags():
@login_required_if_no_ano @login_required_if_no_ano
def get_update_status(): def get_update_status():
status = { status = {
'status': False 'status': False,
'current_commit_hash': ''
} }
repository_url = 'https://api.github.com/repos/janeczku/calibre-web' repository_url = 'https://api.github.com/repos/janeczku/calibre-web'
tz = datetime.timedelta(seconds=time.timezone if (time.localtime().tm_isdst == 0) else time.altzone) tz = datetime.timedelta(seconds=time.timezone if (time.localtime().tm_isdst == 0) else time.altzone)
if request.method == "GET": if request.method == "GET":
# should be automatically replaced by git with current commit hash # get current commit hash from file
current_commit_id = '$Format:%H$' try:
with open('version', 'r') as f:
data = f.read().replace('\n', '')
if helper.is_sha1(data):
status['current_commit_hash'] = data
except FileNotFoundError:
pass
try: try:
r = requests.get(repository_url + '/git/refs/heads/master') r = requests.get(repository_url + '/git/refs/heads/master')
...@@ -1108,7 +1117,7 @@ def get_update_status(): ...@@ -1108,7 +1117,7 @@ def get_update_status():
if 'error' in status: if 'error' in status:
return json.dumps(status) return json.dumps(status)
if 'object' in commit and commit['object']['sha'] != current_commit_id: if 'object' in commit and commit['object']['sha'] != status['current_commit_hash']:
# a new update is available # a new update is available
try: try:
r = requests.get(repository_url + '/git/commits/' + commit['object']['sha']) r = requests.get(repository_url + '/git/commits/' + commit['object']['sha'])
......
$Format:%H$
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment