updater - loading and version checking
This commit is contained in:
parent
9fe9ba4743
commit
006b3cd197
5 changed files with 60 additions and 10 deletions
|
@ -15,6 +15,7 @@ import platform
|
||||||
import toxencryptsave
|
import toxencryptsave
|
||||||
from passwordscreen import PasswordScreen, UnlockAppScreen, SetProfilePasswordScreen
|
from passwordscreen import PasswordScreen, UnlockAppScreen, SetProfilePasswordScreen
|
||||||
from plugin_support import PluginLoader
|
from plugin_support import PluginLoader
|
||||||
|
import updater
|
||||||
|
|
||||||
|
|
||||||
class Toxygen:
|
class Toxygen:
|
||||||
|
@ -278,6 +279,7 @@ class Toxygen:
|
||||||
|
|
||||||
app.connect(app, QtCore.SIGNAL("lastWindowClosed()"), app, QtCore.SLOT("quit()"))
|
app.connect(app, QtCore.SIGNAL("lastWindowClosed()"), app, QtCore.SLOT("quit()"))
|
||||||
app.exec_()
|
app.exec_()
|
||||||
|
|
||||||
self.init.stop = True
|
self.init.stop = True
|
||||||
self.mainloop.stop = True
|
self.mainloop.stop = True
|
||||||
self.avloop.stop = True
|
self.avloop.stop = True
|
||||||
|
|
|
@ -337,7 +337,7 @@ class MainWindow(QtGui.QMainWindow, Singleton):
|
||||||
s.save()
|
s.save()
|
||||||
QtGui.QApplication.closeAllWindows()
|
QtGui.QApplication.closeAllWindows()
|
||||||
event.accept()
|
event.accept()
|
||||||
else:
|
elif QtGui.QSystemTrayIcon.isSystemTrayAvailable():
|
||||||
event.ignore()
|
event.ignore()
|
||||||
self.hide()
|
self.hide()
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ class MainWindow(QtGui.QMainWindow, Singleton):
|
||||||
self.profile.update()
|
self.profile.update()
|
||||||
|
|
||||||
def keyPressEvent(self, event):
|
def keyPressEvent(self, event):
|
||||||
if event.key() == QtCore.Qt.Key_Escape:
|
if event.key() == QtCore.Qt.Key_Escape and QtGui.QSystemTrayIcon.isSystemTrayAvailable():
|
||||||
self.hide()
|
self.hide()
|
||||||
elif event.key() == QtCore.Qt.Key_C and event.modifiers() & QtCore.Qt.ControlModifier and self.messages.selectedIndexes():
|
elif event.key() == QtCore.Qt.Key_C and event.modifiers() & QtCore.Qt.ControlModifier and self.messages.selectedIndexes():
|
||||||
rows = list(map(lambda x: self.messages.row(x), self.messages.selectedItems()))
|
rows = list(map(lambda x: self.messages.row(x), self.messages.selectedItems()))
|
||||||
|
|
|
@ -145,7 +145,8 @@ class Settings(dict, Singleton):
|
||||||
'compact_mode': False,
|
'compact_mode': False,
|
||||||
'show_welcome_screen': True,
|
'show_welcome_screen': True,
|
||||||
'close_to_tray': False,
|
'close_to_tray': False,
|
||||||
'font': 'Times New Roman'
|
'font': 'Times New Roman',
|
||||||
|
'update': 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
import util
|
import util
|
||||||
import requests
|
import settings
|
||||||
|
try:
|
||||||
|
from PySide import QtNetwork, QtCore
|
||||||
|
except:
|
||||||
|
from PyQt4 import QtNetwork, QtCore
|
||||||
|
|
||||||
|
|
||||||
def check_for_updates():
|
def check_for_updates():
|
||||||
|
@ -9,17 +13,60 @@ def check_for_updates():
|
||||||
for version in versions:
|
for version in versions:
|
||||||
if send_request(version):
|
if send_request(version):
|
||||||
return version
|
return version
|
||||||
return None
|
return None # no new version was found
|
||||||
|
|
||||||
|
|
||||||
|
def get_url(version):
|
||||||
|
return 'https://github.com/toxygen-project/toxygen/releases/tag/v' + version
|
||||||
|
|
||||||
|
|
||||||
|
def download(version):
|
||||||
|
s = settings.Settings.get_instance()
|
||||||
|
if s['update']:
|
||||||
|
netman = QtNetwork.QNetworkAccessManager()
|
||||||
|
proxy = QtNetwork.QNetworkProxy()
|
||||||
|
if s['proxy_type']:
|
||||||
|
proxy.setType(
|
||||||
|
QtNetwork.QNetworkProxy.Socks5Proxy if s['proxy_type'] == 2 else QtNetwork.QNetworkProxy.HttpProxy)
|
||||||
|
proxy.setHostName(s['proxy_host'])
|
||||||
|
proxy.setPort(s['proxy_port'])
|
||||||
|
netman.setProxy(proxy)
|
||||||
|
url = get_url(version)
|
||||||
|
try:
|
||||||
|
request = QtNetwork.QNetworkRequest(url)
|
||||||
|
reply = netman.get(request)
|
||||||
|
while not reply.isFinished():
|
||||||
|
QtCore.QThread.msleep(1)
|
||||||
|
data = bytes(reply.readAll().data())
|
||||||
|
with open('toxygen.zip', 'wb') as fl:
|
||||||
|
fl.write(data)
|
||||||
|
except Exception as ex:
|
||||||
|
util.log('Downloading new version of Toxygen failed with exception: ' + str(ex))
|
||||||
|
|
||||||
|
|
||||||
def send_request(version):
|
def send_request(version):
|
||||||
# TODO: proxy support
|
s = settings.Settings.get_instance()
|
||||||
request = requests.get('https://github.com/toxygen-project/toxygen/releases/tag/v' + version)
|
netman = QtNetwork.QNetworkAccessManager()
|
||||||
return request.status_code == 200
|
proxy = QtNetwork.QNetworkProxy()
|
||||||
|
if s['proxy_type']:
|
||||||
|
proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy if s['proxy_type'] == 2 else QtNetwork.QNetworkProxy.HttpProxy)
|
||||||
|
proxy.setHostName(s['proxy_host'])
|
||||||
|
proxy.setPort(s['proxy_port'])
|
||||||
|
netman.setProxy(proxy)
|
||||||
|
url = get_url(version)
|
||||||
|
try:
|
||||||
|
request = QtNetwork.QNetworkRequest(url)
|
||||||
|
reply = netman.get(request)
|
||||||
|
while not reply.isFinished():
|
||||||
|
QtCore.QThread.msleep(1)
|
||||||
|
return reply.attribute() == 200
|
||||||
|
except Exception as ex:
|
||||||
|
util.log('TOXYGEN UPDATER ERROR: ' + str(ex))
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def generate_versions(major, minor, patch):
|
def generate_versions(major, minor, patch):
|
||||||
new_major = '.'.join([str(major + 1), '0', '0'])
|
new_major = '.'.join([str(major + 1), '0', '0'])
|
||||||
new_minor = '.'.join([str(major), str(minor + 1), '0'])
|
new_minor = '.'.join([str(major), str(minor + 1), '0'])
|
||||||
new_patch = '.'.join([str(major), str(minor), str(patch + 1)])
|
new_patch = '.'.join([str(major), str(minor), str(patch + 1)])
|
||||||
return new_major, new_minor, new_patch
|
return new_major, new_minor, new_patch
|
||||||
|
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import time
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
program_version = '0.2.6'
|
program_version = '0.2.3'
|
||||||
|
|
||||||
|
|
||||||
def log(data):
|
def log(data):
|
||||||
|
|
Loading…
Reference in a new issue