def _url_retrieve(self, url, outfd, reporthook, binary): #Like the one in urllib. Unlike urllib.retrieve url_retrieve #can be interrupted. KeyboardInterrupt exception is raised when #interrupted. import proxygsettings import requests count = 0 blockSize = 1024 * 8 proxy_info = proxygsettings.get_proxy_settings() try: response = requests.get(url, proxies=proxy_info, stream=True, timeout=15) assert response.ok totalSize = int(response.headers.get('content-length')) for data in response.iter_content(chunk_size=blockSize): count += 1 if self._is_aborted(): break if not binary: data = data.decode("utf-8") outfd.write(data) ui_thread_do(reporthook, count, blockSize, totalSize) except Exception as e: raise e
def _url_retrieve(self, url, outfd, reporthook, binary): #Like the one in urllib. Unlike urllib.retrieve url_retrieve #can be interrupted. KeyboardInterrupt exception is raised when #interrupted. count = 0 blockSize = 1024 * 8 parsed_url = urlparse(url) host = parsed_url.netloc try: proxy = proxygsettings.get_proxy_settings() if proxy and proxy.get('https'): connection = HTTPSConnection(proxy.get('https'), timeout=15) connection.set_tunnel(host) else: connection = HTTPSConnection(host, timeout=15) headers = { "Accept-Encoding": "identity", "Host": host, "User-Agent": "Python/3" } connection.request("GET", parsed_url.path, headers=headers) urlobj = connection.getresponse() assert urlobj.getcode() == 200 totalSize = int(urlobj.info()['content-length']) while not self._is_aborted(): data = urlobj.read(blockSize) count += 1 if not data: break if not binary: data = data.decode("utf-8") outfd.write(data) ui_thread_do(reporthook, count, blockSize, totalSize) except Exception as e: raise e
self.window.resize(WIN_WIDTH, WIN_HEIGHT) children = self.content_box.get_children() for child in children: child.hide() if child.get_name() == "c_box": c_widgets = child.get_children() for c_widget in c_widgets: c_widget.hide() self.main_stack.set_visible_child_name("side_view_page") self.header_stack.set_visible_child_name("side_view") self.search_entry.grab_focus() self.current_sidepage = None def quit(self, *args): self.window.destroy() Gtk.main_quit() if __name__ == "__main__": import signal ps = proxygsettings.get_proxy_settings() if ps: proxy = urllib2.ProxyHandler(ps) else: proxy = urllib2.ProxyHandler() urllib2.install_opener(urllib2.build_opener(proxy)) window = MainWindow() signal.signal(signal.SIGINT, window.quit) Gtk.main()