Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 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)
Пример #4
0
 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)