mirror of
https://github.com/onionshare/onionshare.git
synced 2025-05-05 07:55:23 -04:00
Completely refactor common to make a Common class, and pass that class down into all parts of the program
This commit is contained in:
parent
49e352d131
commit
50409167d4
17 changed files with 458 additions and 444 deletions
|
@ -25,7 +25,7 @@ from onionshare import socks
|
|||
from onionshare.settings import Settings
|
||||
from onionshare.onion import Onion
|
||||
|
||||
from . import strings, common
|
||||
from . import strings
|
||||
|
||||
class UpdateCheckerCheckError(Exception):
|
||||
"""
|
||||
|
@ -55,16 +55,19 @@ class UpdateChecker(QtCore.QObject):
|
|||
update_error = QtCore.pyqtSignal()
|
||||
update_invalid_version = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, onion, config=False):
|
||||
def __init__(self, common, onion, config=False):
|
||||
super(UpdateChecker, self).__init__()
|
||||
common.log('UpdateChecker', '__init__')
|
||||
|
||||
self.common = common
|
||||
|
||||
self.common.log('UpdateChecker', '__init__')
|
||||
self.onion = onion
|
||||
self.config = config
|
||||
|
||||
def check(self, force=False, config=False):
|
||||
common.log('UpdateChecker', 'check', 'force={}'.format(force))
|
||||
self.common.log('UpdateChecker', 'check', 'force={}'.format(force))
|
||||
# Load the settings
|
||||
settings = Settings(config)
|
||||
settings = Settings(self.common, config)
|
||||
settings.load()
|
||||
|
||||
# If force=True, then definitely check
|
||||
|
@ -87,11 +90,11 @@ class UpdateChecker(QtCore.QObject):
|
|||
|
||||
# Check for updates
|
||||
if check_for_updates:
|
||||
common.log('UpdateChecker', 'check', 'checking for updates')
|
||||
self.common.log('UpdateChecker', 'check', 'checking for updates')
|
||||
# Download the latest-version file over Tor
|
||||
try:
|
||||
# User agent string includes OnionShare version and platform
|
||||
user_agent = 'OnionShare {}, {}'.format(common.get_version(), platform.system())
|
||||
user_agent = 'OnionShare {}, {}'.format(self.common.version, self.common.platform)
|
||||
|
||||
# If the update is forced, add '?force=1' to the URL, to more
|
||||
# accurately measure daily users
|
||||
|
@ -104,7 +107,7 @@ class UpdateChecker(QtCore.QObject):
|
|||
else:
|
||||
onion_domain = 'elx57ue5uyfplgva.onion'
|
||||
|
||||
common.log('UpdateChecker', 'check', 'loading http://{}{}'.format(onion_domain, path))
|
||||
self.common.log('UpdateChecker', 'check', 'loading http://{}{}'.format(onion_domain, path))
|
||||
|
||||
(socks_address, socks_port) = self.onion.get_tor_socks_port()
|
||||
socks.set_default_proxy(socks.SOCKS5, socks_address, socks_port)
|
||||
|
@ -122,10 +125,10 @@ class UpdateChecker(QtCore.QObject):
|
|||
http_response = s.recv(1024)
|
||||
latest_version = http_response[http_response.find(b'\r\n\r\n'):].strip().decode('utf-8')
|
||||
|
||||
common.log('UpdateChecker', 'check', 'latest OnionShare version: {}'.format(latest_version))
|
||||
self.common.log('UpdateChecker', 'check', 'latest OnionShare version: {}'.format(latest_version))
|
||||
|
||||
except Exception as e:
|
||||
common.log('UpdateChecker', 'check', '{}'.format(e))
|
||||
self.common.log('UpdateChecker', 'check', '{}'.format(e))
|
||||
self.update_error.emit()
|
||||
raise UpdateCheckerCheckError
|
||||
|
||||
|
@ -145,7 +148,7 @@ class UpdateChecker(QtCore.QObject):
|
|||
|
||||
# Do we need to update?
|
||||
update_url = 'https://github.com/micahflee/onionshare/releases/tag/v{}'.format(latest_version)
|
||||
installed_version = common.get_version()
|
||||
installed_version = self.common.version
|
||||
if installed_version < latest_version:
|
||||
self.update_available.emit(update_url, installed_version, latest_version)
|
||||
return
|
||||
|
@ -159,17 +162,20 @@ class UpdateThread(QtCore.QThread):
|
|||
update_error = QtCore.pyqtSignal()
|
||||
update_invalid_version = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, onion, config=False, force=False):
|
||||
def __init__(self, common, onion, config=False, force=False):
|
||||
super(UpdateThread, self).__init__()
|
||||
common.log('UpdateThread', '__init__')
|
||||
|
||||
self.common = common
|
||||
|
||||
self.common.log('UpdateThread', '__init__')
|
||||
self.onion = onion
|
||||
self.config = config
|
||||
self.force = force
|
||||
|
||||
def run(self):
|
||||
common.log('UpdateThread', 'run')
|
||||
self.common.log('UpdateThread', 'run')
|
||||
|
||||
u = UpdateChecker(self.onion, self.config)
|
||||
u = UpdateChecker(self.common, self.onion, self.config)
|
||||
u.update_available.connect(self._update_available)
|
||||
u.update_not_available.connect(self._update_not_available)
|
||||
u.update_error.connect(self._update_error)
|
||||
|
@ -179,25 +185,25 @@ class UpdateThread(QtCore.QThread):
|
|||
u.check(config=self.config,force=self.force)
|
||||
except Exception as e:
|
||||
# If update check fails, silently ignore
|
||||
common.log('UpdateThread', 'run', '{}'.format(e))
|
||||
self.common.log('UpdateThread', 'run', '{}'.format(e))
|
||||
pass
|
||||
|
||||
def _update_available(self, update_url, installed_version, latest_version):
|
||||
common.log('UpdateThread', '_update_available')
|
||||
self.common.log('UpdateThread', '_update_available')
|
||||
self.active = False
|
||||
self.update_available.emit(update_url, installed_version, latest_version)
|
||||
|
||||
def _update_not_available(self):
|
||||
common.log('UpdateThread', '_update_not_available')
|
||||
self.common.log('UpdateThread', '_update_not_available')
|
||||
self.active = False
|
||||
self.update_not_available.emit()
|
||||
|
||||
def _update_error(self):
|
||||
common.log('UpdateThread', '_update_error')
|
||||
self.common.log('UpdateThread', '_update_error')
|
||||
self.active = False
|
||||
self.update_error.emit()
|
||||
|
||||
def _update_invalid_version(self):
|
||||
common.log('UpdateThread', '_update_invalid_version')
|
||||
self.common.log('UpdateThread', '_update_invalid_version')
|
||||
self.active = False
|
||||
self.update_invalid_version.emit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue