def createWebView(self, port=1080): """ This webView ignores all SSL errors :rtype : QtWebKit.QWebView """ w = QtWebKit.QWebView() nam = w.page().networkAccessManager() assert isinstance(nam, QtNetwork.QNetworkAccessManager) proxy = QtNetwork.QNetworkProxy() proxy.setType(QtNetwork.QNetworkProxy.HttpProxy) proxy.setHostName("127.0.0.1") proxy.setPort(port) nam.setProxy(proxy) nam.sslErrors.connect(self.sslErrorHandler) return w
def tox_dns(email): """ TOX DNS 4 :param email: data like '*****@*****.**' :return: tox id on success else None """ site = email.split('@')[1] data = {"action": 3, "name": "{}".format(email)} urls = ('https://{}/api'.format(site), 'http://{}/api'.format(site)) s = settings.Settings.get_instance() if not s['proxy_type']: # no proxy for url in urls: try: return send_request(url, data) except Exception as ex: log('TOX DNS ERROR: ' + str(ex)) else: # proxy netman = QtNetwork.QNetworkAccessManager() proxy = QtNetwork.QNetworkProxy() proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy if s['proxy_type'] == 2 else QtNetwork.QNetworkProxy.HttpProxy) proxy.setHostName(s['proxy_host']) proxy.setPort(s['proxy_port']) netman.setProxy(proxy) for url in urls: try: request = QtNetwork.QNetworkRequest(url) request.setHeader(QtNetwork.QNetworkRequest.ContentTypeHeader, "application/json") reply = netman.post(request, bytes(json.dumps(data), 'utf-8')) while not reply.isFinished(): QtCore.QThread.msleep(1) QtCore.QCoreApplication.processEvents() data = bytes(reply.readAll().data()) result = json.loads(str(data, 'utf-8')) if not result['c']: return result['tox_id'] except Exception as ex: log('TOX DNS ERROR: ' + str(ex)) return None # error
def send_request(version): s = settings.Settings.get_instance() netman = QtNetwork.QNetworkAccessManager() proxy = QtNetwork.QNetworkProxy() if s['proxy_type']: proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy if s['proxy_type'] == 2 else QtNetwork.QNetworkProxy.HttpProxy) proxy.setHostName(s['proxy_host']) proxy.setPort(s['proxy_port']) netman.setProxy(proxy) url = test_url(version) try: request = QtNetwork.QNetworkRequest(url) reply = netman.get(request) while not reply.isFinished(): QtCore.QThread.msleep(1) QtCore.QCoreApplication.processEvents() attr = reply.attribute( QtNetwork.QNetworkRequest.HttpStatusCodeAttribute) return attr is not None and 200 <= attr < 300 except Exception as ex: util.log('TOXYGEN UPDATER ERROR: ' + str(ex)) return False