Exemple #1
0
def download_nodes_list():
    url = 'https://nodes.tox.chat/json'
    s = settings.Settings.get_instance()
    if not s['download_nodes_list']:
        return

    if not s['proxy_type']:  # no proxy
        try:
            req = urllib.request.Request(url)
            req.add_header('Content-Type', 'application/json')
            response = urllib.request.urlopen(req)
            result = response.read()
            save_nodes(result)
        except Exception as ex:
            log('TOX nodes loading 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)
        try:
            request = QtNetwork.QNetworkRequest()
            request.setUrl(QtCore.QUrl(url))
            reply = netman.get(request)

            while not reply.isFinished():
                QtCore.QThread.msleep(1)
                QtCore.QCoreApplication.processEvents()
            data = bytes(reply.readAll().data())
            save_nodes(data)
        except Exception as ex:
            log('TOX nodes loading error: ' + str(ex))
Exemple #2
0
 def set_proxy(self, ip='160.196.170.48'):
     proxy = QtNetwork.QNetworkProxy()
     proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
     proxy.setHostName(ip)
     proxy.setPort(8080)
     QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
     self._update_googlemap()
Exemple #3
0
 def setup_proxy(self):
     proxy = QtNetwork.QNetworkProxy()
     if config.setting["use_proxy"]:
         proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
         proxy.setHostName(config.setting["proxy_server_host"])
         proxy.setPort(config.setting["proxy_server_port"])
         proxy.setUser(config.setting["proxy_username"])
         proxy.setPassword(config.setting["proxy_password"])
     self.manager.setProxy(proxy)
Exemple #4
0
 def set_proxy(self, socks5=True):
     proxy = QtNetwork.QNetworkProxy()
     if socks5:
         proxy_type = QtNetwork.QNetworkProxy.Socks5Proxy
     else:
         proxy_type = QtNetwork.QNetworkProxy.HttpProxy
     proxy.setType(proxy_type)
     proxy.setHostName('proxy.hud.gov')
     proxy.setPort(5050 if socks5 else 8080)
     QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
Exemple #5
0
 def set_proxy(self, host, port, type):
     if type == 'Socks5':
         proxy_type = QtNetwork.QNetworkProxy.Socks5Proxy
     elif type == 'Http':
         proxy_type = QtNetwork.QNetworkProxy.HttpProxy
     else:
         return
     proxy = QtNetwork.QNetworkProxy()
     proxy.setType(proxy_type)
     proxy.setHostName(host)
     proxy.setPort(int(port))
     QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
Exemple #6
0
 def setup_proxy(self):
     proxy = QtNetwork.QNetworkProxy()
     config = get_config()
     if config.setting["use_proxy"]:
         if config.setting["proxy_type"] == 'socks':
             proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
         else:
             proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
         proxy.setHostName(config.setting["proxy_server_host"])
         proxy.setPort(config.setting["proxy_server_port"])
         if config.setting["proxy_username"]:
             proxy.setUser(config.setting["proxy_username"])
         if config.setting["proxy_password"]:
             proxy.setPassword(config.setting["proxy_password"])
     self.manager.setProxy(proxy)
Exemple #7
0
    def globalProxy(self, pro):
        proxy = QtNetwork.QNetworkProxy()
        # Http访问代理
        proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
        # 代理ip地址HttpProxy
        # proxy.setHostName("211.159.177.212")
        proxy.setHostName(pro['ip'])
        # 端口号
        # proxy.setPort(3128)
        proxy.setPort(int(pro['port']))

        if 'username' in pro and pro['username'] != None:
            proxy.setUser(pro['username'])
            proxy.setPassword(pro['password'])

        QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
Exemple #8
0
 def __init__(self, proxy_type=None, proxy_addr=None, proxy_port=None):
     self.app = QApplication(sys.argv)
     QWebView.__init__(self)
     self._loaded = False
     self.loadFinished.connect(self._loadFinished)
     # Sets the proxy if any
     if proxy_addr and proxy_port and proxy_type:
         proxy = QtNetwork.QNetworkProxy()
         if proxy_type == "http":
             proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
         elif proxy_type == "socks5":
             proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
         proxy.setHostName(proxy_addr)
         proxy.setPort(int(proxy_port))
         QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
     if not os.path.exists("./screenshots"):
         os.makedirs("./screenshots")
Exemple #9
0
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()
                request.setUrl(QtCore.QUrl(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
Exemple #10
0
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()
        request.setUrl(QtCore.QUrl(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
Exemple #11
0
                    request_id = r.json().get('request')
                    t = threading.Timer(5,
                                        check_and_post,
                                        args=[request_id, key])
                    t.start()


app = QApplication(sys.argv)
view = QWebEngineView()

res = requests.get(proxy_provider_url)
ip = res.text.split(":")
port = ip[1]
ip = ip[0]

proxy = QtNetwork.QNetworkProxy()
# Http访问代理
proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
# 代理ip地址HttpProxy
proxy.setHostName(ip)
# 端口号
proxy.setPort(int(port))
QtNetwork.QNetworkProxy.setApplicationProxy(proxy)

interceptor = TwitchInterceptor()
profile = QWebEngineProfile()
profile.clearHttpCache()
profile.clearAllVisitedLinks()
pCookie = profile.cookieStore()
pCookie.deleteAllCookies()
pCookie.deleteSessionCookies()
Exemple #12
0
    def __init__(self, *args, **kwargs):
        super(MainWindow,self).__init__(*args,**kwargs)
        
        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl("https://duckduckgo.com/"))
        self.setCentralWidget(self.browser)
        self.browser.loadStarted.connect(self.loadStartedHandler)
        self.browser.loadProgress.connect(self.loadProgressHandler)
        self.browser.loadFinished.connect(self.loadFinishedHandler)
        
        navtb = QToolBar("Navigation")
        navtb.setIconSize(QSize(250, 250))
        navtb.setFixedHeight(50)
        self.addToolBar(navtb)

        self.proxy = QtNetwork.QNetworkProxy()

        self.textbox = QLineEdit(self)
        self.textbox.move(20, 15)
        self.textbox.resize(500,20)

        self.textboxproxyip = QLineEdit(self)
        self.textboxproxyip.move(740, 15)
        self.textboxproxyip.resize(300,20)
        
        self.textboxproxyport = QLineEdit(self)
        self.textboxproxyport.move(1200, 15)
        self.textboxproxyport.resize(100,20)

        self.label1 = QLabel(self)
        self.label1.move(1300, 10)
        self.label1.setText("Port")

        self.label2 = QLabel(self)
        self.label2.move(1050, 10)
        self.label2.setText("ip")

        self.button_reloadproxy = QPushButton('Reload Proxy', self)
        self.button_reloadproxy.move(1600,10)

        self.button_proxyhttp = QPushButton('H', self)
        self.button_proxyhttp.move(1600,50)
        self.button_proxyhttp.resize(30,30)
        
        self.button_proxysocks5 = QPushButton('S5', self)
        self.button_proxysocks5.move(1630,50)
        self.button_proxysocks5.resize(30,30)

        self.button_proxychttp = QPushButton('CH', self)
        self.button_proxychttp.move(1660,50)
        self.button_proxychttp.resize(30,30)
        
        self.button_proxydefault = QPushButton('D', self)
        self.button_proxydefault.move(1690,50)
        self.button_proxydefault.resize(30,30)

        self.button_noproxy = QPushButton('NP', self)
        self.button_noproxy.move(1720,50)
        self.button_noproxy.resize(30,30)

        self.button_search = QPushButton('Enter', self)
        self.button_search.move(530,10)

        self.button_back = QPushButton('Back', self)
        self.button_back.move(630,10)
        
        self.button_search.clicked.connect(self.on_click_button_search)
        self.button_back.clicked.connect(self.on_click_button_back)
        self.button_reloadproxy.clicked.connect(self.on_click_button_reloadproxy)
        self.button_proxyhttp.clicked.connect(self.on_click_button_proxyhttp)
        self.button_proxysocks5.clicked.connect(self.on_click_button_proxysocks5)
        self.button_proxychttp.clicked.connect(self.on_click_button_proxychttp)
        self.button_proxydefault.clicked.connect(self.on_click_button_proxydefault)
        self.button_noproxy.clicked.connect(self.on_click_button_noproxy)

        self.show()
Exemple #13
0
    def startPykib(self):
        # Register Sigterm command
        signal.signal(signal.SIGINT, sigint_handler)

        # ----------------------------------------------------------
        # Eval for all relevant Arguments
        # ----------------------------------------------------------

        # Parsing Arguments
        self.args = pykib_base.arguments.getArguments(self.dirname)

        #Set Logging:
        logging.basicConfig(
            format=
            '%(asctime)s.%(msecs)03d %(levelname)s %(module)s %(lineno) s - %(funcName)s: %(message)s',
            datefmt='%Y-%m-%d %H:%M:%S',
        )
        # logging.getLogger().setLevel(logging.INFO)
        if (self.args.logLevel == "ERROR"):
            logging.getLogger().setLevel(logging.ERROR)
        elif (self.args.logLevel == "WARNING"):
            logging.getLogger().setLevel(logging.WARNING)
        elif (self.args.logLevel == "INFO"):
            logging.getLogger().setLevel(logging.INFO)
        elif (self.args.logLevel == "DEBUG"):
            logging.getLogger().setLevel(logging.DEBUG)

        #Storing Process ID to file if set
        if (self.args.storePid):
            logging.info("Storing current process id:")
            logging.info("  ProcId: " + str(os.getpid()))

            pid_path = tempfile.gettempdir()
            if (self.args.storePidPath):
                pid_path = self.args.storePidPath

            pid_path = pid_path.replace("\\", "/") + "/.pykibLatestProcId"

            with open(pid_path, "w") as text_file:
                text_file.write(str(os.getpid()))

            logging.info("  Storing process id under: " + pid_path)

        # Set Start URL
        if (self.args.url is None and self.args.defaultURL):
            self.args.url = self.args.defaultURL
        elif (self.args.url is None and self.args.defaultURL is None):
            self.args.url = "https://github.com/WinTeach/pykib"

        # Set Proxy
        if (self.args.proxy):
            proxy = QtNetwork.QNetworkProxy()
            proxy.setType(QtNetwork.QNetworkProxy.HttpProxy)
            proxy.setHostName(self.args.proxy)
            proxy.setPort(self.args.proxyPort)
            if (self.args.proxyUsername and self.args.proxyPassword):
                proxy.setUser(self.args.proxyUsername)
                proxy.setPassword(self.args.proxyPassword)
            elif (self.args.proxyUsername or self.args.proxyPassword):
                print(
                    "It is not possible to use a proxy username without password"
                )
                sys.exit()

            QtNetwork.QNetworkProxy.setApplicationProxy(proxy)

        # Allow Webcam and Microfon Support. Warn if PyQt Version is to old
        if (self.args.allowWebcamAccess):
            if (PYQT_VERSION_STR < "5.15.0"):
                logging.info(
                    "Webcam Access is only supported with PyQt5 Version 5.15.0 and will be disabled. Currently installed Version:"
                    + PYQT_VERSION_STR)
                self.args.allowWebcamAccess = False

        if (self.args.allowMicAccess):
            if (PYQT_VERSION_STR < "5.15.0"):
                logging.info(
                    "Microfon Access is only supported with PyQt5 Version 5.15.0 and will be disabled. . Currently installed Version:"
                    + PYQT_VERSION_STR)
                self.args.allowMicAccess = False

        # Check if a configred Download Location exists
        if (self.args.downloadPath):
            if (os.path.isdir(self.args.downloadPath) != True):
                print("The folder for downloadPath (" +
                      self.args.downloadPath +
                      ") does not exists or is unreachable")
                sys.exit()

        # Parse Download Handle
        if (self.args.downloadHandle):
            tempDownloadHandle = []
            for x in self.args.downloadHandle:
                handle = x.split("|")
                if (len(handle) != 0):
                    tempDownloadHandle.append(handle)
            self.args.downloadHandle = tempDownloadHandle

        # Check if a configred temporarySessionTokenPath Location exists
        if (self.args.temporarySessionTokenPath):
            if (os.path.isdir(self.args.temporarySessionTokenPath) != True):
                print("The folder for storing the temporary Session Token (" +
                      self.args.temporarySessionTokenPath +
                      ") does not exists or is unreachable")
                sys.exit()

        # Check if a set Zoom Factor is inside the allowed area
        if (self.args.setZoomFactor < 25 or self.args.setZoomFactor > 500):
            print("The Zoom factor must be a value between 25 and 500")
            sys.exit()

        # Calculate Screen Offset when normalizeGeometry is set
        self.args.screenOffsetLeft = 0
        try:
            if (self.args.normalizeGeometry):
                screens = self.app.screens()
                for key in screens:
                    if (self.app.primaryScreen() == key):
                        self.args.screenOffsetLeft = key.availableGeometry(
                        ).left()
        except:
            self.args.screenOffsetLeft = 0

        # ----------------------------------------------------------
        # Define System application Name
        # ----------------------------------------------------------
        self.app.setApplicationName(self.args.systemApplicationName)

        # ----------------------------------------------------------
        # Switch between Remote Daemon an Default Pykib
        # ----------------------------------------------------------
        if (self.args.remoteBrowserDaemon):
            RemotePykib(self.args, self.dirname)

        # ----------------------------------------------------------
        # Eval Arguments for da Default Pykib Start
        # ----------------------------------------------------------

        # Check autologin Data
        if (self.args.enableAutoLogon and
                not (self.args.autoLogonUser and self.args.autoLogonPassword)):
            print(
                "When Autologin is enabled at least autoLogonUser and autoLogonPassword has to be set also"
            )
            sys.exit()

        view = pykib_base.mainWindow.MainWindow(self.args, self.dirname)

        # Set Dimensions
        if (self.args.fullscreen):
            if (len(self.args.geometry) != 2 and len(self.args.geometry) != 4):
                print(
                    "When geometry is set with maximized or fullsreen only 2 parameters for starting point (#left# and #top#) is allowed"
                )
                sys.exit()
            view.move(self.args.geometry[0] + self.args.screenOffsetLeft,
                      self.args.geometry[1])
            view.showFullScreen()
        elif (self.args.maximized):
            if (len(self.args.geometry) != 2 and len(self.args.geometry) != 4):
                print(
                    "When geometry is set with maximized or fullsreen only 2 parameters for starting point (#left# and #top#) is allowed"
                )
                sys.exit()
            view.move(self.args.geometry[0] + self.args.screenOffsetLeft,
                      self.args.geometry[1])
            view.showMaximized()
        else:
            if (len(self.args.geometry) != 4):
                print(
                    "When geometry without maximized or fullsreen is set, you have to define the whole position an screen #left# #top# #width# #height#"
                )
                sys.exit()
            view.show()
            view.setGeometry(
                self.args.geometry[0] + self.args.screenOffsetLeft,
                self.args.geometry[1], self.args.geometry[2],
                self.args.geometry[3])

        sys.exit(self.app.exec_())