1
0
mirror of https://github.com/janeczku/calibre-web.git synced 2024-11-28 08:58:41 +02:00

move current commit hash to its own file

This commit is contained in:
Virgil Grigoras 2018-09-09 13:00:46 +02:00
parent f477d48c7c
commit 6e2dbb7cd6
3 changed files with 22 additions and 4 deletions

View File

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

View File

@ -1,5 +1,7 @@
#!/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():
@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():
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'])

1
version Normal file
View File

@ -0,0 +1 @@
$Format:%H$