示例#1
0
    def on_top_search_button_click(self):
        current_ts = time.time()
        query = self.top_search_bar.text()

        if (
            self.last_search_query
            and self.last_search_time
            and self.last_search_query == self.top_search_bar.text()
            and current_ts - self.last_search_time < 1
        ):
            logging.info("Same search query already sent within 500ms so dropping this one")
            return

        if not query:
            return

        self.has_search_results = True
        self.search_results_page.initialize_root_model(
            SearchResultsModel(
                channel_info={"name": f"Search results for {query}" if len(query) < 50 else f"{query[:50]}..."},
                endpoint_url="search",
                hide_xxx=get_gui_setting(self.gui_settings, "family_filter", True, is_bool=True),
                text_filter=to_fts_query(query),
            )
        )

        self.clicked_search_bar()

        # Trigger remote search
        self.search_results_page.preview_clicked()

        self.last_search_query = query
        self.last_search_time = current_ts
示例#2
0
 def show_results(self, *_):
     self.timeout_progress_bar.stop()
     query = self.search_request.query
     self.results_page.initialize_root_model(
         SearchResultsModel(
             channel_info={
                 "name": (tr("Search results for %s") %
                          query) if len(query) < 50 else f"{query[:50]}..."
             },
             endpoint_url="search",
             hide_xxx=self.results_page.hide_xxx,
             text_filter=to_fts_query(query),
             type_filter=[
                 REGULAR_TORRENT, CHANNEL_TORRENT, COLLECTION_NODE
             ],
         ))
     self.setCurrentWidget(self.results_page)
示例#3
0
    def search(self, query):
        if not self.check_can_show(query):
            return

        self.last_search_query = query
        self.last_search_time = time.time()

        # Trigger remote search
        def register_request(response):
            self.search_request = SearchRequest(response["request_uuid"],
                                                query, set(response["peers"]))
            self.state_label.setText(
                format_search_loading_label(self.search_request))
            self.timeout_progress_bar.start()
            self.setCurrentWidget(self.loading_page)

        params = {'txt_filter': to_fts_query(query), 'hide_xxx': self.hide_xxx}

        TriblerNetworkRequest('remote_query',
                              register_request,
                              method="PUT",
                              url_params=params)