Ejemplo n.º 1
0
Archivo: net.py Proyecto: bialagary/mw
 def _update_opener(self, url):
     '''
     Builds and installs a new opener to be used by all future calls to 
     :func:`urllib2.urlopen`.
     '''
     
     opener=None
     
     if self._http_debug:
         http = urllib2.HTTPHandler(debuglevel=1)
     else:
         http = urllib2.HTTPHandler()
         
     if self._socket_class or self._proxy:
         if self._socket_class:
             urllib2.socket.socket = self._socket_class        
     
         if self._proxy:
             opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self._cj),
                                           urllib2.ProxyHandler({'http': 
                                                                 self._proxy}), 
                                           urllib2.HTTPBasicAuthHandler(),
                                           http)
         
     else:            
         
         from entertainment.plugnplay.interfaces import ProxySupport
         #common.loadplugins([ProxySupport])
         internetConnectionSettings = common.GetiStreamSettings(common.settings_Internet_Connection)
         # lets check if the url is from a proxy support extension
         supported=None
         for item in ProxySupport.implementors():
             for domain in item.domains:
                 if url.lower().startswith(domain.lower()):                        
                     supported=item
                     break
             if supported:
                 break
         
         if supported:                            
             #lets check if proxy defined
             proxy_index_on_item = int(internetConnectionSettings.Settings().get_setting(supported.name))
             if proxy_index_on_item > 0:
                 lp_item = 'lp_%s' % str(proxy_index_on_item)
                 lp_enabled = internetConnectionSettings.Settings().get_setting(lp_item)
                 if lp_enabled and lp_enabled == 'true':
                     lp_ct = int (internetConnectionSettings.Settings().get_setting(lp_item + '_connection_type'))
                     if lp_ct == 0:
                         lp_ct_p_ip = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_p_ip')
                         lp_ct_p_port = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_p_port')
                         lp_ct_p_username = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_p_username')
                         lp_ct_p_password = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_p_password')
                         lp_ct_p_socks5 = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_p_socks5')
                         opener = self._prepare_proxy(lp_ct_p_ip,lp_ct_p_port,lp_ct_p_username,lp_ct_p_password,lp_ct_p_socks5=='true')
                     elif lp_ct == 1:
                         dnsproxy = []
                         lp_ct_dp_ip1 = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_dp_ip1')
                         lp_ct_dp_ip2 = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_dp_ip2')
                         lp_ct_dp_ip3 = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_dp_ip3')
                         if lp_ct_dp_ip1: dnsproxy.append(lp_ct_dp_ip1)
                         if lp_ct_dp_ip2: dnsproxy.append(lp_ct_dp_ip2)
                         if lp_ct_dp_ip3: dnsproxy.append(lp_ct_dp_ip3)
                         opener = self._prepare_dns_proxy(dnsproxy)
                     elif lp_ct == 2:
                         selected_wp = internetConnectionSettings.Settings().get_setting(lp_item + '_ct_wp')                            
                         from entertainment.plugnplay.interfaces import WebProxy
                         common.loadplugins([WebProxy])
                         for wp in WebProxy.implementors():
                             if wp.name == selected_wp:
                                 self._web_proxy = wp
                                 break
             
         if not opener and not self._web_proxy: # local proxy not available lets check global proxy
             gp_enabled = internetConnectionSettings.Settings().get_setting('global_proxy')
             if gp_enabled and gp_enabled == 'true':
                 gp_item='gp'
                 gp_ct = int(internetConnectionSettings.Settings().get_setting(gp_item + '_connection_type'))
                 if gp_ct == 0:
                     gp_ct_p_ip = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_p_ip')
                     gp_ct_p_port = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_p_port')
                     gp_ct_p_username = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_p_username')
                     gp_ct_p_password = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_p_password')
                     gp_ct_p_socks5 = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_p_socks5')
                     opener = self._prepare_proxy(gp_ct_p_ip,gp_ct_p_port,gp_ct_p_username,gp_ct_p_password,gp_ct_p_socks5=='true')
                 elif gp_ct == 1:
                     dnsproxy = []
                     gp_ct_dp_ip1 = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_dp_ip1')
                     gp_ct_dp_ip2 = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_dp_ip2')
                     gp_ct_dp_ip3 = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_dp_ip3')
                     if gp_ct_dp_ip1: dnsproxy.append(gp_ct_dp_ip1)
                     if gp_ct_dp_ip2: dnsproxy.append(gp_ct_dp_ip2)
                     if gp_ct_dp_ip3: dnsproxy.append(gp_ct_dp_ip3)
                     opener = self._prepare_dns_proxy(dnsproxy)
                 elif gp_ct == 2:
                     selected_wp = internetConnectionSettings.Settings().get_setting(gp_item + '_ct_wp')
                     from entertainment.plugnplay.interfaces import WebProxy
                     common.loadplugins([WebProxy])
                     for wp in WebProxy.implementors():
                         if wp.name == selected_wp:
                             self._web_proxy = wp
                             break
                 
                 
     if not opener:        
         opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self._cj),
                                       urllib2.HTTPBasicAuthHandler(),
                                       http)
                                           
     urllib2.install_opener(opener)
Ejemplo n.º 2
0
    def Initialize(self):

        xml = '<settings>\n'

        xml += '<category label="Global Proxy">\n'
        xml += '<setting type="sep"/>\n'
        xml += '<setting id="global_proxy" type="bool" label="Global Proxy" default="false"/>\n'

        from entertainment.plugnplay.interfaces import WebProxy
        webproxy_count = len(WebProxy.implementors())
        if webproxy_count > 0:
            ct_enum = 'Proxy|DNS Proxy|Web Proxy'
        else:
            ct_enum = 'Proxy|DNS Proxy'
        xml += '<setting id="gp_connection_type" type="enum" values="%s" label="     Connection Type" default="0" visible="eq(-1,true)"/>\n' % ct_enum
        xml += '<setting id="gp_ct_p_ip" type="ipaddress" label="     Proxy IP" default="" visible="eq(-2,true) + eq(-1,0)"/>\n'
        xml += '<setting id="gp_ct_p_port" type="number" label="     Port" default="" visible="eq(-3,true) + eq(-2,0)"/>\n'
        xml += '<setting id="gp_ct_p_username" type="text" label="     Username" default="" visible="eq(-4,true) + eq(-3,0)"/>\n'
        xml += '<setting id="gp_ct_p_password" type="text" label="     Password" default="" visible="eq(-5,true) + eq(-4,0)"/>\n'
        xml += '<setting id="gp_ct_dp_ip1" type="ipaddress" label="     Primary DNS" default="" visible="eq(-6,true) + eq(-5,1)"/>\n'
        xml += '<setting id="gp_ct_dp_ip2" type="ipaddress" label="     Secondary DNS" default="" visible="eq(-7,true) + eq(-6,1)"/>\n'
        xml += '<setting id="gp_ct_dp_ip3" type="ipaddress" label="     Tertiary DNS" default="" visible="eq(-8,true) + eq(-7,1)"/>\n'
        xml += '<setting id="gp_ct_p_socks5" type="bool" label="     Socks 5" default="false" visible="eq(-9,true) + eq(-8,0)"/>\n'

        if webproxy_count > 0:
            wp_enum = ''
            wp_enum_f = True
            for wp in WebProxy.implementors():
                if wp_enum_f == True:
                    wp_enum_f = False
                else:
                    wp_enum += '|'
                wp_enum += wp.name
            xml += '<setting id="gp_ct_wp" type="labelenum" values="%s" label="     Web Proxy Provider" default="0" visible="eq(-10,true) + eq(-9,2)"/>\n' % wp_enum

        xml += '<setting type="sep"/>\n'
        xml += '</category>\n'

        proxy_selection = "Global Proxy"

        xml += '<category label="More Proxies">\n'
        xml += '<setting type="sep"/>\n'
        for x in range(0, 8):
            i = str(x + 1)
            proxy_selection += '|' + 'Proxy %s' % i
            xml += '<setting id="lp_%s" type="bool" label="Proxy %s" default="false"/>\n' % (
                i, i)
            xml += '<setting id="lp_%s_connection_type" type="enum" values="%s" label="     Connection Type" default="0" visible="eq(-1,true)"/>\n' % (
                i, ct_enum)
            xml += '<setting id="lp_%s_ct_p_ip" type="ipaddress" label="     Proxy IP" default="" visible="eq(-2,true) + eq(-1,0)"/>\n' % i
            xml += '<setting id="lp_%s_ct_p_port" type="number" label="     Port" default="" visible="eq(-3,true) + eq(-2,0)"/>\n' % i
            xml += '<setting id="lp_%s_ct_p_username" type="text" label="     Username" default="" visible="eq(-4,true) + eq(-3,0)"/>\n' % i
            xml += '<setting id="lp_%s_ct_p_password" type="text" label="     Password" default="" visible="eq(-5,true) + eq(-4,0)"/>\n' % i
            xml += '<setting id="lp_%s_ct_dp_ip1" type="ipaddress" label="     Primary DNS" default="" visible="eq(-6,true) + eq(-5,1)"/>\n' % i
            xml += '<setting id="lp_%s_ct_dp_ip2" type="ipaddress" label="     Secondary DNS" default="" visible="eq(-7,true) + eq(-6,1)"/>\n' % i
            xml += '<setting id="lp_%s_ct_dp_ip3" type="ipaddress" label="     Tertiary DNS" default="" visible="eq(-8,true) + eq(-7,1)"/>\n' % i
            xml += '<setting id="lp_%s_ct_p_socks5" type="bool" label="     Socks 5" default="false" visible="eq(-9,true) + eq(-8,0)"/>\n' % i
            if webproxy_count > 0:
                xml += '<setting id="lp_%s_ct_wp" type="labelenum" values="%s" label="     Web Proxy Provider" default="0" visible="eq(-10,true) + eq(-9,2)"/>\n' % (
                    i, wp_enum)
            xml += '<setting type="sep"/>\n'
        xml += '</category>\n'

        xml += '<category label="Proxy Assignments">\n'
        xml += '<setting type="sep"/>\n'
        i = 0
        for item in ProxySupport.implementors():
            i += 1
            xml += '<setting id="%s" type="enum" label="%s" values="%s" default="0"/>\n' % (
                item.name, item.display_name, proxy_selection)
            #xml += '<setting id="domain_%s" type="text" label="Domain %s" default="%s" visible="false"/>\n' % (str(i), str(i), ','+','.join(item.domains)+',__psid__'+item.name)
        #xml += '<setting id="domain_count" type="number" label="Domain Counte" default="%s" visible="false"/>\n' % i
        xml += '<setting type="sep"/>\n'
        xml += '</category>\n'
        xml += '</settings>\n'

        self.CreateSettings('Internet Connection',
                            common.settings_Internet_Connection, xml)
Ejemplo n.º 3
0
    def _update_opener(self, url):
        '''
        Builds and installs a new opener to be used by all future calls to 
        :func:`urllib2.urlopen`.
        '''

        opener = None

        if self._http_debug:
            http = urllib2.HTTPHandler(debuglevel=1)
        else:
            http = urllib2.HTTPHandler()

        if self._socket_class or self._proxy:
            if self._socket_class:
                urllib2.socket.socket = self._socket_class

            if self._proxy:
                opener = urllib2.build_opener(
                    urllib2.HTTPCookieProcessor(self._cj),
                    urllib2.ProxyHandler({'http': self._proxy}),
                    urllib2.HTTPBasicAuthHandler(), http)

        else:

            from entertainment.plugnplay.interfaces import ProxySupport
            #common.loadplugins([ProxySupport])
            internetConnectionSettings = common.GetiStreamSettings(
                common.settings_Internet_Connection)
            # lets check if the url is from a proxy support extension
            supported = None
            for item in ProxySupport.implementors():
                for domain in item.domains:
                    if url.lower().startswith(domain.lower()):
                        supported = item
                        break
                if supported:
                    break

            if supported:
                #lets check if proxy defined
                proxy_index_on_item = int(
                    internetConnectionSettings.Settings().get_setting(
                        supported.name))
                if proxy_index_on_item > 0:
                    lp_item = 'lp_%s' % str(proxy_index_on_item)
                    lp_enabled = internetConnectionSettings.Settings(
                    ).get_setting(lp_item)
                    if lp_enabled and lp_enabled == 'true':
                        lp_ct = int(
                            internetConnectionSettings.Settings().get_setting(
                                lp_item + '_connection_type'))
                        if lp_ct == 0:
                            lp_ct_p_ip = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_p_ip')
                            lp_ct_p_port = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_p_port')
                            lp_ct_p_username = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_p_username')
                            lp_ct_p_password = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_p_password')
                            lp_ct_p_socks5 = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_p_socks5')
                            opener = self._prepare_proxy(
                                lp_ct_p_ip, lp_ct_p_port, lp_ct_p_username,
                                lp_ct_p_password, lp_ct_p_socks5 == 'true')
                        elif lp_ct == 1:
                            dnsproxy = []
                            lp_ct_dp_ip1 = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_dp_ip1')
                            lp_ct_dp_ip2 = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_dp_ip2')
                            lp_ct_dp_ip3 = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_dp_ip3')
                            if lp_ct_dp_ip1: dnsproxy.append(lp_ct_dp_ip1)
                            if lp_ct_dp_ip2: dnsproxy.append(lp_ct_dp_ip2)
                            if lp_ct_dp_ip3: dnsproxy.append(lp_ct_dp_ip3)
                            opener = self._prepare_dns_proxy(dnsproxy)
                        elif lp_ct == 2:
                            selected_wp = internetConnectionSettings.Settings(
                            ).get_setting(lp_item + '_ct_wp')
                            from entertainment.plugnplay.interfaces import WebProxy
                            common.loadplugins([WebProxy])
                            for wp in WebProxy.implementors():
                                if wp.name == selected_wp:
                                    self._web_proxy = wp
                                    break

            if not opener and not self._web_proxy:  # local proxy not available lets check global proxy
                gp_enabled = internetConnectionSettings.Settings().get_setting(
                    'global_proxy')
                if gp_enabled and gp_enabled == 'true':
                    gp_item = 'gp'
                    gp_ct = int(
                        internetConnectionSettings.Settings().get_setting(
                            gp_item + '_connection_type'))
                    if gp_ct == 0:
                        gp_ct_p_ip = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_p_ip')
                        gp_ct_p_port = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_p_port')
                        gp_ct_p_username = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_p_username')
                        gp_ct_p_password = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_p_password')
                        gp_ct_p_socks5 = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_p_socks5')
                        opener = self._prepare_proxy(gp_ct_p_ip, gp_ct_p_port,
                                                     gp_ct_p_username,
                                                     gp_ct_p_password,
                                                     gp_ct_p_socks5 == 'true')
                    elif gp_ct == 1:
                        dnsproxy = []
                        gp_ct_dp_ip1 = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_dp_ip1')
                        gp_ct_dp_ip2 = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_dp_ip2')
                        gp_ct_dp_ip3 = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_dp_ip3')
                        if gp_ct_dp_ip1: dnsproxy.append(gp_ct_dp_ip1)
                        if gp_ct_dp_ip2: dnsproxy.append(gp_ct_dp_ip2)
                        if gp_ct_dp_ip3: dnsproxy.append(gp_ct_dp_ip3)
                        opener = self._prepare_dns_proxy(dnsproxy)
                    elif gp_ct == 2:
                        selected_wp = internetConnectionSettings.Settings(
                        ).get_setting(gp_item + '_ct_wp')
                        from entertainment.plugnplay.interfaces import WebProxy
                        common.loadplugins([WebProxy])
                        for wp in WebProxy.implementors():
                            if wp.name == selected_wp:
                                self._web_proxy = wp
                                break

        if not opener:
            opener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(self._cj),
                urllib2.HTTPBasicAuthHandler(), http)

        urllib2.install_opener(opener)
Ejemplo n.º 4
0
 def Initialize(self):
     
     xml = '<settings>\n'
             
     xml += '<category label="Global Proxy">\n'
     xml += '<setting type="sep"/>\n'
     xml += '<setting id="global_proxy" type="bool" label="Global Proxy" default="false"/>\n'
     
     from entertainment.plugnplay.interfaces import WebProxy
     webproxy_count = len(WebProxy.implementors())
     if webproxy_count > 0:
         ct_enum = 'Proxy|DNS Proxy|Web Proxy'
     else:
         ct_enum = 'Proxy|DNS Proxy'        
     xml += '<setting id="gp_connection_type" type="enum" values="%s" label="     Connection Type" default="0" visible="eq(-1,true)"/>\n' % ct_enum
     xml += '<setting id="gp_ct_p_ip" type="ipaddress" label="     Proxy IP" default="" visible="eq(-2,true) + eq(-1,0)"/>\n'
     xml += '<setting id="gp_ct_p_port" type="number" label="     Port" default="" visible="eq(-3,true) + eq(-2,0)"/>\n'
     xml += '<setting id="gp_ct_p_username" type="text" label="     Username" default="" visible="eq(-4,true) + eq(-3,0)"/>\n'
     xml += '<setting id="gp_ct_p_password" type="text" label="     Password" default="" visible="eq(-5,true) + eq(-4,0)"/>\n'
     xml += '<setting id="gp_ct_dp_ip1" type="ipaddress" label="     Primary DNS" default="" visible="eq(-6,true) + eq(-5,1)"/>\n'
     xml += '<setting id="gp_ct_dp_ip2" type="ipaddress" label="     Secondary DNS" default="" visible="eq(-7,true) + eq(-6,1)"/>\n'
     xml += '<setting id="gp_ct_dp_ip3" type="ipaddress" label="     Tertiary DNS" default="" visible="eq(-8,true) + eq(-7,1)"/>\n'
     xml += '<setting id="gp_ct_p_socks5" type="bool" label="     Socks 5" default="false" visible="eq(-9,true) + eq(-8,0)"/>\n'
     
     if webproxy_count > 0:
         wp_enum = ''
         wp_enum_f = True
         for wp in WebProxy.implementors():
             if wp_enum_f == True:
                 wp_enum_f = False
             else:
                 wp_enum += '|'
             wp_enum += wp.name
         xml += '<setting id="gp_ct_wp" type="labelenum" values="%s" label="     Web Proxy Provider" default="0" visible="eq(-10,true) + eq(-9,2)"/>\n' % wp_enum
             
         
     
     xml += '<setting type="sep"/>\n'
     xml += '</category>\n' 
     
     proxy_selection = "Global Proxy"
     
     xml += '<category label="More Proxies">\n'
     xml += '<setting type="sep"/>\n'
     for x in range(0, 8):
         i = str(x+1)
         proxy_selection += '|' + 'Proxy %s' % i
         xml += '<setting id="lp_%s" type="bool" label="Proxy %s" default="false"/>\n' % (i, i)
         xml += '<setting id="lp_%s_connection_type" type="enum" values="%s" label="     Connection Type" default="0" visible="eq(-1,true)"/>\n' % (i, ct_enum)
         xml += '<setting id="lp_%s_ct_p_ip" type="ipaddress" label="     Proxy IP" default="" visible="eq(-2,true) + eq(-1,0)"/>\n' % i
         xml += '<setting id="lp_%s_ct_p_port" type="number" label="     Port" default="" visible="eq(-3,true) + eq(-2,0)"/>\n' % i
         xml += '<setting id="lp_%s_ct_p_username" type="text" label="     Username" default="" visible="eq(-4,true) + eq(-3,0)"/>\n' % i
         xml += '<setting id="lp_%s_ct_p_password" type="text" label="     Password" default="" visible="eq(-5,true) + eq(-4,0)"/>\n' % i
         xml += '<setting id="lp_%s_ct_dp_ip1" type="ipaddress" label="     Primary DNS" default="" visible="eq(-6,true) + eq(-5,1)"/>\n' % i
         xml += '<setting id="lp_%s_ct_dp_ip2" type="ipaddress" label="     Secondary DNS" default="" visible="eq(-7,true) + eq(-6,1)"/>\n' % i
         xml += '<setting id="lp_%s_ct_dp_ip3" type="ipaddress" label="     Tertiary DNS" default="" visible="eq(-8,true) + eq(-7,1)"/>\n' % i
         xml += '<setting id="lp_%s_ct_p_socks5" type="bool" label="     Socks 5" default="false" visible="eq(-9,true) + eq(-8,0)"/>\n' % i
         if webproxy_count > 0:
             xml += '<setting id="lp_%s_ct_wp" type="labelenum" values="%s" label="     Web Proxy Provider" default="0" visible="eq(-10,true) + eq(-9,2)"/>\n' % (i, wp_enum)
         xml += '<setting type="sep"/>\n'        
     xml += '</category>\n' 
             
     xml += '<category label="Proxy Assignments">\n'
     xml += '<setting type="sep"/>\n'
     i=0
     for item in ProxySupport.implementors():
         i += 1
         xml += '<setting id="%s" type="enum" label="%s" values="%s" default="0"/>\n' % (item.name, item.display_name, proxy_selection)        
         #xml += '<setting id="domain_%s" type="text" label="Domain %s" default="%s" visible="false"/>\n' % (str(i), str(i), ','+','.join(item.domains)+',__psid__'+item.name)
     #xml += '<setting id="domain_count" type="number" label="Domain Counte" default="%s" visible="false"/>\n' % i
     xml += '<setting type="sep"/>\n'
     xml += '</category>\n' 
     xml += '</settings>\n'
     
     self.CreateSettings('Internet Connection', common.settings_Internet_Connection, xml)