__main__.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:duck-feed 作者: h0m3stuck 项目源码 文件源码
def on_search_btn_pressed(self, btn):
        ddg_query = self.ddg_query_box.get_text()
        if not ddg_query == "":
            if ddg_query.lower() == "easter eggs?":\
                self.ddg_query_box.set_text("No.")
            if ddg_query.lower() == "philips exeter":
                ddg_query = "Philips Academy, Andover"
                self.ddg_query_box.set_text("Philips Academy, Andover")

            def get_feeds_from_query():
                potential_feed_sites = get_links(ddg_query)

                with concurrent.futures.ProcessPoolExecutor() as executor:
                    feed_tuples = executor.map(process_site, potential_feed_sites)
                    for feed_tuple in feed_tuples:
                        if feed_tuple is not None:
                            GLib.idle_add(add_feed, feed_tuple)
                    GLib.idle_add(reenable_controls)

            def add_feed(feed_tuple):
                feed = feed_tuple[0]
                feed_link = feed_tuple[1]
                sub_btn = Gtk.CheckButton()
                sub_btn.connect("toggled", self.on_sub_btn_clicked, feed_link)

                self.feed_grid.attach(sub_btn, 0, self.current_feed_grid_row, 1, 1)
                sub_btn.show()

                title_label = Gtk.Label(feed["channel"]["title"])
                title_label.set_line_wrap(True)
                self.feed_grid.attach(title_label, 1, self.current_feed_grid_row, 1, 1)
                title_label.show()

                try:
                    feed_desc = feed["channel"]["description"]
                except KeyError:
                    feed_desc = ""

                desc_label = Gtk.Label(feed_desc)
                desc_label.set_line_wrap(True)
                self.feed_grid.attach(desc_label, 2, self.current_feed_grid_row, 1, 1)
                desc_label.show()

                self.current_feed_grid_row += 1

                print("Adding to box: ", feed_link)

            def reenable_controls():
                # Re-enable boxes
                self.ddg_query_box.set_sensitive(True)
                self.search_btn.set_sensitive(True)

            thread = threading.Thread(target=get_feeds_from_query)
            thread.daemon = True
            thread.start()
            # Disable boxes
            self.ddg_query_box.set_sensitive(False)
            self.search_btn.set_sensitive(False)
            print("Starting query async...")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号