This commit is contained in:
Ozzieisaacs 2018-10-29 20:38:09 +01:00
parent 6ec9bc9e5c
commit 3f83be00fd
2 changed files with 40 additions and 21 deletions

View File

@ -381,25 +381,40 @@ class Updater(threading.Thread):
self.status = 0 self.status = 0
def run(self): def run(self):
self.status = 1 try:
r = requests.get('https://api.github.com/repos/janeczku/calibre-web/zipball/master', stream=True) self.status = 1
fname = re.findall("filename=(.+)", r.headers['content-disposition'])[0] r = requests.get('https://api.github.com/repos/janeczku/calibre-web/zipball/master', stream=True)
self.status = 2 r.raise_for_status()
z = zipfile.ZipFile(BytesIO(r.content))
self.status = 3 fname = re.findall("filename=(.+)", r.headers['content-disposition'])[0]
tmp_dir = gettempdir() self.status = 2
z.extractall(tmp_dir) z = zipfile.ZipFile(BytesIO(r.content))
self.status = 4 self.status = 3
self.update_source(os.path.join(tmp_dir, os.path.splitext(fname)[0]), ub.config.get_main_dir) tmp_dir = gettempdir()
self.status = 5 z.extractall(tmp_dir)
db.session.close() self.status = 4
db.engine.dispose() self.update_source(os.path.join(tmp_dir, os.path.splitext(fname)[0]), ub.config.get_main_dir)
ub.session.close() self.status = 5
ub.engine.dispose() db.session.close()
self.status = 6 db.engine.dispose()
server.Server.setRestartTyp(True) ub.session.close()
server.Server.stopServer() ub.engine.dispose()
self.status = 7 self.status = 6
server.Server.setRestartTyp(True)
server.Server.stopServer()
self.status = 7
except requests.exceptions.HTTPError as ex:
logging.getLogger('cps.web').info( u'HTTP Error' + ' ' + str(ex))
self.status = 8
except requests.exceptions.ConnectionError:
logging.getLogger('cps.web').info(u'Connection error')
self.status = 9
except requests.exceptions.Timeout:
logging.getLogger('cps.web').info(u'Timeout while establishing connection')
self.status = 10
except requests.exceptions.RequestException:
self.status = 11
logging.getLogger('cps.web').info(u'General error')
def get_update_status(self): def get_update_status(self):
return self.status return self.status

View File

@ -1292,7 +1292,11 @@ def get_updater_status():
"4": _(u'Files are replaced'), "4": _(u'Files are replaced'),
"5": _(u'Database connections are closed'), "5": _(u'Database connections are closed'),
"6": _(u'Server is stopped'), "6": _(u'Server is stopped'),
"7": _(u'Update finished, please press okay and reload page') "7": _(u'Update finished, please press okay and reload page'),
"8": _(u'Update failed:') + u' ' + _(u'HTTP Error'),
"9": _(u'Update failed:') + u' ' + _(u'Connection error'),
"10": _(u'Update failed:') + u' ' + _(u'Timeout while establishing connection'),
"11": _(u'Update failed:') + u' ' + _(u'General error')
} }
status['text'] = text status['text'] = text
helper.updater_thread = helper.Updater() helper.updater_thread = helper.Updater()
@ -1302,7 +1306,7 @@ def get_updater_status():
try: try:
status['status'] = helper.updater_thread.get_update_status() status['status'] = helper.updater_thread.get_update_status()
except Exception: except Exception:
status['status'] = 7 status['status'] = 11
return json.dumps(status) return json.dumps(status)