def __init__(self, guitype, root): gobject.GObject.__init__(self) self.current_target = None self.current_position = None self.create_recursive(self.SETTINGS_DIR) dataroot = path.join(root, "data") self._install_updates() self.__read_config() self.connect("settings-changed", self.__on_settings_changed) self.connect("save-settings", self.__on_save_settings) self.create_recursive(self.settings["download_output_dir"]) self.create_recursive(self.settings["download_map_path"]) self.downloader = downloader.FileDownloader( self.settings["options_username"], self.settings["options_password"], self.COOKIE_FILE, cachedownloader.GeocachingComCacheDownloader.login_callback, ) self.pointprovider = provider.PointProvider(self.CACHES_DB, geocaching.GeocacheCoordinate, "geocaches") self.gui = guitype(self, dataroot) actor_tts = TTS(self) actor_tts.connect("error", lambda caller, msg: self.gui.show_error(msg)) # actor_notify = Notify(self) self.emit("settings-changed", self.settings, self) if "--sim" in argv: self.gps_thread = gpsreader.FakeGpsReader(self) gobject.timeout_add(1000, self.__read_gps) self.set_target(gpsreader.FakeGpsReader.get_target()) elif "gpsprovider" in self.gui.USES: self.gps_thread = gpsreader.GpsReader() # self.gps_thread = gpsreader.FakeGpsReader(self) gobject.timeout_add(1000, self.__read_gps) elif "locationgpsprovider" in self.gui.USES: self.gps_thread = gpsreader.LocationGpsReader(self.__read_gps_cb_error, self.__read_gps_cb_changed) gobject.idle_add(self.gps_thread.start) if "geonames" in self.gui.USES: import geonames self.geonames = geonames.Geonames(self.downloader) if "--startup-only" in argv: return self.gui.show()
def __init__(self, guitype, gpstype, extensions): """ Initialize the application. guitype -- Python type of the gui which is to be used. gpstype -- String indicating the desired GPS access method. extensions -- List of strings indicating desired extensions. """ gobject.GObject.__init__(self) self.current_target = None self.current_position = None self.auto_update_checked = False self.create_recursive(self.SETTINGS_DIR) # self.cachedownloader is populated in settings handling. self.cachedownloader = None self._install_updates() self.__read_config() # Check tile URLs for outdated URLs after Openstreetmap URL change for name, details in self.settings['map_providers']: prev = details['remote_url'] details['remote_url'] = sub(r'//(.*).openstreetmap.org/([a-z]*/)?', '//tile.openstreetmap.org/', prev) if prev != details['remote_url']: logger.info("Replaced url '%s' with '%s' because Openstreetmaps changed their URLs." % (prev, details['remote_url'])) self.connect('settings-changed', self.__on_settings_changed) self.connect('save-settings', self.__on_save_settings) self.create_recursive(self.settings['download_output_dir']) self.create_recursive(self.settings['download_map_path']) self.downloader = downloader.FileDownloader(self.COOKIE_FILE) self.pointprovider = provider.PointProvider(self.CACHES_DB, geocaching.GeocacheCoordinate) self.gui = guitype(self) if ('debug_log_to_http' in self.settings and self.settings['debug_log_to_http']) or '--remote' in argv: http_handler = logging.handlers.HTTPHandler("danielfett.de", "http://www.danielfett.de/files/collect.php") buffering_handler = logging.handlers.MemoryHandler(100, target = http_handler) logging.getLogger('').addHandler(buffering_handler) logging.getLogger('').setLevel(logging.DEBUG) logging.debug("Remote logging activated!") # Now reset the setting to default self.settings['debug_log_to_http'] = False self.emit('settings-changed', self.settings, self) self.emit('fieldnotes-changed') self.__setup_gps(gps) if 'geonames' in extensions: import geonames self.geonames = geonames.Geonames(self.downloader) if 'tts' in extensions: from actors.notify import Notify actor_tts = TTS(self) actor_tts.connect('error', lambda caller, msg: self.emit('error', msg)) actor_notify = Notify(self) if '--startup-only' in argv: return self.gui.show() if not '--profile' in argv: exit()