def search(self, q, callback, data=None): options = self.options.copy() self._search_callback_counter = 0 @log def _search_callback(source, param, item, remaining, data, error): if error: logger.warning( "Error {}: {}".format(error.domain, error.message)) callback(source, param, item, remaining, data) self._search_callback_counter += 1 @log def _multiple_search_callback(source, param, item, remaining, data, error): if error: logger.warning( "Error {}: {}".format(error.domain, error.message)) callback(source, param, item, remaining, data) if self.search_source: if self.search_source.get_id().startswith('grl-upnp'): options.set_type_filter(Grl.TypeFilter.AUDIO) self.search_source.search(q, self.METADATA_KEYS, options, _search_callback, data) else: Grl.multiple_search( [self.props.sources[key] for key in self.props.sources if key != 'grl-tracker-source'], q, self.METADATA_KEYS, options, _multiple_search_callback, data)
def search(self, q, callback, data=None): options = self.options.copy() @log def _search_callback(source, param, item, remaining, data, error): callback(source, param, item, remaining, data) if self.search_source: if self.search_source.get_id().startswith('grl-upnp'): options.set_type_filter(Grl.TypeFilter.AUDIO) self.search_source.search(q, self.METADATA_KEYS, options, _search_callback, data) else: Grl.multiple_search([self.sources[key] for key in self.sources if key != 'grl-tracker-source'], q, self.METADATA_KEYS, options, _search_callback, data)
def search(self, source, text): self._cancel_current_operation() state = OperationState(text) if source: search_id = source.search(text, self.BROWSE_KEYS, 0, self.BROWSE_CHUNK_SIZE, self.BROWSE_FLAGS, self._search_cb, state) else: search_id = Grl.multiple_search(None, text, self.BROWSE_KEYS, self.BROWSE_MAX_COUNT, self.BROWSE_FLAGS, self._search_cb, state) self._clear_panes() self._operation_started(source, search_id, source is None)