Exemplo n.º 1
0
def GET(target, post=None, method='post', headersl=None):
    target = target.replace('//page', '/page')
    #print target
    try:
        cookiejar = cookielib.MozillaCookieJar()
        if Addon.getSetting('antizapret') == 'true':
            import antizapret
            urlOpener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookiejar),
                antizapret.AntizapretProxyHandler())
        else:
            urlOpener = urllib2.build_opener(
                urllib2.HTTPCookieProcessor(cookiejar))
        urllib2.install_opener(urlOpener)
        headers_ = headersl
        if headers_ == None:
            if method == 'post':
                headers_ = headers
            else:
                headers_ = headers2
        if method == 'post':
            request = urllib2.Request(url=target, data=post, headers=headers_)
        else:
            request = urllib2.Request(url=target, data=post, headers=headers_)
            request.get_method = lambda: 'GET'
        url = urlOpener.open(request)
        http = url.read()
        return http
    except Exception, e:
        xbmc.log('[%s]: GET EXCEPT [%s]' % (addon_id, e), 4)
        showMessage('HTTP ERROR', e, 5000)
Exemplo n.º 2
0
Arquivo: default.py Projeto: yogi81/ru
def auth(cookie_jar):
    username = __settings__.getSetting('username')
    password = __settings__.getSetting('password')

    if username == "" or password == "":
        __settings__.openSettings()
        username = __settings__.getSetting('username')
        password = __settings__.getSetting('password')

    if username == "" or password == "":
        alert('Вы не авторизованы',
              'Укажите логин и пароль в настройках приложения')
        print('Пользователь не аторизован. Выход.')
        sys.exit()

    req_data = {
        'login_name': username,
        'login_password': password,
        'login': '******'
    }
    req_url = site_url + '/index.php'
    headers = {
        "User-Agent":
        "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
        "Content-Type": "application/x-www-form-urlencoded",
        "Host": site_url.split('/')[2],
        "Accept":
        "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
        "Accept-Language":
        "en-US,en;q=0.8,bg;q=0.6,it;q=0.4,ru;q=0.2,uk;q=0.2",
        "Accept-Encoding": "windows-1251,utf-8;q=0.7,*;q=0.7",
        "Referer": site_url + "/index.php"
    }
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar),
            az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar))
    conn = urllib_request.Request(
        req_url,
        urllib_parse.urlencode(req_data).encode('utf-8'), headers)
    connection = opener.open(conn)
    html = connection.read()
    html = html.decode('utf-8')
    connection.close()
    if 'Ошибка авторизации' in html:
        alert('Проверьте логин и пароль', 'Неверный логин либо пароль')
        __settings__.openSettings()
        sys.exit()
    return cookie_jar
Exemplo n.º 3
0
Arquivo: default.py Projeto: yogi81/ru
def add_bookmark(bookmark_id):
    cookie_jar = auth(cookielib.CookieJar())
    fav_url = site_url + '/engine/ajax/favorites.php?fav_id=' + bookmark_id + '&action=plus&skin=Baskino'
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar),
            az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar))
    connection = opener.open(fav_url)
    connection.close()
    notificator('Добавление закладки', 'Закладка добавлена', 3000)
Exemplo n.º 4
0
Arquivo: default.py Projeto: yogi81/ru
def remove_bookmark(bookmark_id):
    cookie_jar = auth(cookielib.CookieJar())
    fav_url = site_url + '/engine/ajax/favorites.php?fav_id=' + bookmark_id + '&action=minus&skin=Baskino'
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar),
            az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar))
    connection = opener.open(fav_url)
    connection.close()
    notificator('Удаление закладки', 'Закладка удалена', 3000)
    xbmc.executebuiltin('Container.Refresh()')
Exemplo n.º 5
0
 def build_connection(self, cookiejar=None):
     if cookiejar is None:
         cookiejar = cookielib.CookieJar()
     handlers = [urllib2.HTTPCookieProcessor(cookiejar)]
     if not (self.proxy is None):
         self.proxy.build_handlers(handlers)
     elif self.use_antizapret:
         handlers.append(antizapret.AntizapretProxyHandler())
     opener = urllib2.build_opener(*handlers)
     opener.addheaders = [(
         'User-Agent',
         'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)'
     ), ('Accept', '*/*'), ('Accept-Language', 'ru-RU')]
     return opener
Exemplo n.º 6
0
Arquivo: default.py Projeto: yogi81/ru
def get_html(web_url):
    cookie_jar = cookielib.CookieJar()
    if mode == 'FAVS':
        cookie_jar = auth(cookie_jar)
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar),
            az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar))
    opener.addheaders = [("User-Agent", USER_AGENT)]
    connection = opener.open(web_url)
    html = connection.read()
    connection.close()
    return html.decode('utf-8')
Exemplo n.º 7
0
Arquivo: default.py Projeto: yogi81/ru
def post_request(page_url, req_data=None, headers=None):
    if headers is None:
        headers = {}
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(), az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor())
    opener.addheaders = [("User-Agent", USER_AGENT)]
    conn = urllib_request.Request(
        page_url,
        urllib_parse.urlencode(req_data).encode('utf-8'), headers)
    connection = opener.open(conn)
    html = connection.read()
    return html
Exemplo n.º 8
0
Arquivo: default.py Projeto: yogi81/ru
def get_html_with_referer(page_url, referer):
    cookie_jar = cookielib.CookieJar()
    if mode == 'FAVS':
        cookie_jar = auth(cookie_jar)
    if antizapret_enabled:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar),
            az.AntizapretProxyHandler())
    else:
        opener = urllib_request.build_opener(
            urllib_request.HTTPCookieProcessor(cookie_jar))
    if referer is not None:
        opener.addheaders = [("Referer", referer)]
    connection = opener.open(page_url)
    html = connection.read()
    connection.close()
    return html.decode('utf-8')
Exemplo n.º 9
0
    if get_redirect == True:
        html = f.geturl()
    else:
        html = f.read()

    return html


#-------------------------------------------------------------------------------
# get cookies from last session
import antizapret
cj = cookielib.FileCookieJar(fcookies)
hr = urllib2.HTTPCookieProcessor(cj)
if __settings__.getSetting("immunicity") == "1":
    opener = urllib2.build_opener(antizapret.AntizapretProxyHandler(), hr)
    print "Immunicity"
elif __settings__.getSetting("immunicity") == "2":
    proxy_support = urllib2.ProxyHandler(
        {"http": "http://" + __settings__.getSetting("Proxy")})
    opener = urllib2.build_opener(proxy_support, hr)
    print "Proxy " + __settings__.getSetting("Proxy")
else:
    opener = urllib2.build_opener(hr)
    print "NONE Proxy"
urllib2.install_opener(opener)

#----------- LOGIN to lostfilm.tv ----------------------------------------------
#-- step 1

url1 = 'http://login1.bogi.ru/login.php?referer=http%3A%2F%2Fwww.lostfilm.tv%2F'
Exemplo n.º 10
0
    def open(self,
             url,
             language='en',
             post_data=None,
             get_data=None,
             headers=None,
             proxy_url=None,
             charset='utf8'):
        """ Opens a connection to a webpage and saves its HTML content in ``self.content``

        Args:
            url        (str): The URL to open
            language   (str): The language code for the ``Content-Language`` header
            post_data (dict): POST data for the request
            get_data  (dict): GET data for the request
        """
        if not post_data:
            post_data = {}
        if get_data:
            url += '?' + urlencode(get_data)

        log.debug("Opening URL: %s" % repr(url))
        result = False

        data = urlencode(post_data) if len(post_data) > 0 else None
        req = urllib2.Request(url, data)

        self._read_cookies(url)
        log.debug("Cookies for %s: %s" % (repr(url), repr(self._cookies)))

        # Parsing proxy information
        proxy = {
            'enabled': get_setting("proxy_enabled", bool),
            'use_type': get_setting("proxy_use_type", int),
            'type': proxy_types[0],
            'host': get_setting("proxy_host", unicode),
            'port': get_setting("proxy_port", int),
            'login': get_setting("proxy_login", unicode),
            'password': get_setting("proxy_password", unicode),
        }

        try:
            proxy['type'] = proxy_types[get_setting("proxy_type", int)]
        except:
            pass

        handlers = [urllib2.HTTPCookieProcessor(self._cookies)]

        if get_setting("use_public_dns", bool):
            handlers.append(MyHTTPHandler)

        if proxy['enabled']:
            if proxy['use_type'] == 0 and proxy_url:
                log.debug("Setting proxy from Elementum: %s" % (proxy_url))
                handlers.append(parse_proxy_url(proxy_url))
            elif proxy['use_type'] == 1:
                log.debug("Setting proxy with custom settings: %s" %
                          (repr(proxy)))
                handlers.append(
                    SocksiPyHandler(proxytype=proxy['type'],
                                    proxyaddr=proxy['host'],
                                    proxyport=int(proxy['port']),
                                    username=proxy['login'],
                                    password=proxy['password'],
                                    rdns=True))
            elif proxy['use_type'] == 2:
                try:
                    handlers.append(antizapret.AntizapretProxyHandler())
                except Exception as e:
                    log.info("Could not create antizapret configuration: %s" %
                             (e))

        opener = urllib2.build_opener(*handlers)

        req.add_header('User-Agent', self.user_agent)
        req.add_header('Content-Language', language)
        req.add_header("Accept-Encoding", "gzip")
        req.add_header("Origin", url)
        req.add_header("Referer", url)

        if headers:
            for key, value in headers.iteritems():
                if value:
                    req.add_header(key, value)
                else:
                    del req.headers[key.capitalize()]

        if self.token:
            req.add_header("Authorization", self.token)

        try:
            self._good_spider()
            with closing(opener.open(req)) as response:
                self.headers = response.headers
                self._save_cookies()
                if response.headers.get("Content-Encoding", "") == "gzip":
                    import zlib
                    self.content = zlib.decompressobj(
                        16 + zlib.MAX_WBITS).decompress(response.read())
                else:
                    self.content = response.read()

                charset = response.headers.getparam('charset')

                if not charset:
                    match = re.search(
                        """<meta(?!\s*(?:name|value)\s*=)[^>]*?charset\s*=[\s"']*([^\s"'/>]*)""",
                        self.content)
                    if match:
                        charset = match.group(1)

                # We try to remove non-utf chars. Should we?
                if (charset and charset.lower() == 'utf-8') or charset is None:
                    charset = 'utf-8-sig'  # Changing to utf-8-sig to remove BOM if found on decode from utf-8

                if charset:
                    log.debug('Decoding charset from %s for %s' %
                              (charset, repr(url)))
                    self.content = self.content.decode(charset, 'replace')

                self.status = response.getcode()
            result = True

        except urllib2.HTTPError as e:
            self.status = e.code
            log.warning("Status for %s : %s" % (repr(url), str(self.status)))
            if e.code == 403 or e.code == 503:
                log.warning("CloudFlared at %s, try enabling CloudHole" % url)

        except urllib2.URLError as e:
            self.status = repr(e.reason)
            log.warning("Status for %s : %s" % (repr(url), self.status))

        except Exception as e:
            import traceback
            log.error("%s failed with %s:" % (repr(url), repr(e)))
            map(log.debug, traceback.format_exc().split("\n"))

        log.debug("Status for %s : %s" % (repr(url), str(self.status)))

        return result