def run(self, settings): if "version" in settings and int(settings["version"]) > 1: raise UpgradeRequiredError if self.use_tor or "hide-ip" in settings or is_onion_grid(settings): settings["hide-ip"] = True self.use_tor = True tor = yield get_tor_with_prompt(reactor) if not tor: raise TorError("Could not connect to a running Tor daemon") self.gateway = self.get_gateway(settings.get("introducer"), settings.get("storage")) folders_data = settings.get("magic-folders") if not self.gateway: yield self.join_grid(settings) yield self.ensure_recovery(settings) elif not folders_data: self.grid_already_joined.emit(settings.get("nickname")) if folders_data: yield self.join_folders(folders_data) yield self.gateway.monitor.scan_rootcap() self.update_progress.emit("Done!") self.done.emit(self.gateway)
def run(self, settings): if 'version' in settings and int(settings['version']) > 1: raise UpgradeRequiredError if self.use_tor or 'hide-ip' in settings or is_onion_grid(settings): settings['hide-ip'] = True self.use_tor = True tor = yield get_tor_with_prompt(reactor) if not tor: raise TorError("Could not connect to a running Tor daemon") self.gateway = self.get_gateway(settings.get('introducer'), settings.get('storage')) folders_data = settings.get('magic-folders') if not self.gateway: yield self.join_grid(settings) elif not folders_data: self.grid_already_joined.emit(settings.get('nickname')) yield self.ensure_recovery(settings) if folders_data: yield self.join_folders(folders_data) self.update_progress.emit('Done!') self.done.emit(self.gateway)
def connect(self): tor = None if self.use_tor: tor = yield get_tor(reactor) if not tor: raise TorError("Could not connect to a running Tor daemon") self._wormhole = wormhole.create(APPID, RELAY, reactor, tor=tor) logging.debug("Connecting to %s (tor=%s)...", RELAY, tor) welcome = yield self._wormhole.get_welcome() logging.debug("Connected to wormhole server; got welcome: %s", welcome) self.got_welcome.emit(welcome)
def fetch_icon(self, url, dest): agent = None if self.use_tor: tor = yield get_tor(reactor) if not tor: raise TorError("Could not connect to a running Tor daemon") agent = tor.web_agent() resp = yield treq.get(url, agent=agent) if resp.code == 200: content = yield treq.content(resp) log.debug("Received %i bytes", len(content)) with atomic_write(dest, mode="wb", overwrite=True) as f: f.write(content) self.got_icon.emit(dest) else: log.warning("Error fetching service icon: %i", resp.code)