Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)