def load(self): self.values = getattr(self, 'values', {}) log.info('Loading config: %s' % CONFIGPATH) if os.path.isfile(CONFIGPATH): with open(CONFIGPATH, 'r') as handle: self.values.update(json.load(handle)) return self.values
def save(self): log.info('Saving config: %s' % CONFIGPATH) os.makedirs(os.path.dirname(CONFIGPATH), exist_ok=True) self.set('pkmeter', 'positions', [w.position() for w in self.pkmeter.widgets]) with open(CONFIGPATH, 'w') as handle: json.dump(self.values, handle, indent=2, sort_keys=True)
def open_current_image(self, widget): url = 'https://plus.google.com/photos/%(userid)s/albums/%(albumid)s/%(photoid)s' % { 'userid': self.data['user']['id'], 'albumid': self.data['album']['id'], 'photoid': self.data['photo']['id'], } log.info('Opening Picasa Image: %s', url) webbrowser.open(url)
def fetch_plex_instance(pkmeter, username=None, password=None, host=None): username = username or pkmeter.config.get('plexserver', 'username', from_keyring=True) password = password or pkmeter.config.get('plexserver', 'password', from_keyring=True) host = host or pkmeter.config.get('plexserver', 'host', '') if username: log.info('Logging into MyPlex with user %s', username) user = MyPlexAccount.signin(username, password) return user.resource(host).connect() log.info('Connecting to Plex host: %s', host) return PlexServer(host)
def fetch_plex_instance(pkmeter, username=None, password=None, host=None): username = username or pkmeter.config.get( 'plexserver', 'username', from_keyring=True) password = password or pkmeter.config.get( 'plexserver', 'password', from_keyring=True) host = host or pkmeter.config.get('plexserver', 'host', '') if username: log.info('Logging into MyPlex with user %s', username) user = MyPlexAccount.signin(username, password) return user.resource(host).connect() log.info('Connecting to Plex host: %s', host) return PlexServer(host)
def _validate(self, field, force=False): if not field.input: return try: value = field.input.get_value() if field.validator: result = field.validator(field, value) value = value if result is None else result log.info('Validation passed for %s.%s', self.namespace, field.name) status = '' if force else self.STATUS_OK self._set_field_status(field, status, '') except Exception as err: log.warn('Validation Error for %s.%s: %s', self.namespace, field.name, err) self._set_field_status(field, self.STATUS_ERROR, str(err)) finally: log.info('Setting value %s.%s: %s', self.namespace, field.name, value) field.value = value
def _validate(self, field, force=False): if not field.input: return try: #self._set_field_status(field, self.STATUS_LOADING, '') value = field.input.get_value() if field.validator: result = field.validator(field, value) value = value if result is None else result log.info('Validation passed for %s.%s', self.namespace, field.name) self._set_field_status(field, self.STATUS_OK, '') except Exception as err: log.warn('Validation Error for %s.%s: %s', self.namespace, field.name, err) self._set_field_status(field, self.STATUS_ERROR, str(err)) finally: log.info('Setting value %s.%s: %s', self.namespace, field.name, value) field.value = value
def enable(self): self.interval = self.get_interval() self.next_update = time.time() self.enabled = self.pkmeter.config.get(self.namespace, 'enabled', True) if not self.enabled: log.info('%s plugin disabled in preferences.' % self.name) return self.disable() if self.namespace not in self.pkmeter.actions: log.info('%s data not used in layout.' % self.name) return self.disable() if self.enabled: log.info('Enabling plugin %s with interval: %ss', self.name, self.interval) BasePlugin.update(self) return self.enabled
def open_wunderground(self, widget): url = utils.rget(self.data, 'current_observation.ob_url', 'http://www.wunderground.com') #url = WEBSITE_URL % {'location':self.location} log.info('Opening WUnderground page: %s', url) webbrowser.open(url)
def reload(self): log.info('Reloading plugin %s.' % self.name) self.next_update = time.time()
def open_albums(self, widget): url = 'https://plus.google.com/photos/%s/albums' % self.data['user']['id'] log.info('Opening Picasa Albums: %s', url) webbrowser.open(url)
def open_sonarr(self, widget): log.info('Opening Sonarr: %s', self.host) webbrowser.open(self.host)
def open_gcal(self, widget): url = 'http://google.com/calendar' log.info('Opening Google Calendar: %s', url) webbrowser.open(url)
def open_system_monitor(self, widget): cmd = '/usr/bin/gnome-system-monitor -p' log.info('Opening system monitor: %s', cmd) Popen(shlex.split(cmd), stdout=DEVNULL, stderr=DEVNULL)
def open_sickbeard(self, widget): log.info('Opening Sickbeard: %s', self.host) webbrowser.open(self.host)