Exemplo n.º 1
0
    def __http_get_with_retry_1(self, url, headers):
        utils.log('Fetching URL: %s' % url, xbmc.LOGDEBUG)
        net = Net()
        cookiejar = _1CH.get_profile()
        cookiejar = os.path.join(cookiejar, 'cookies')
        net.set_cookies(cookiejar)
        retries = 0
        html = None
        while retries <= MAX_RETRIES:
            try:
                html = net.http_GET(url, headers=headers).content
                # if no exception, jump out of the loop
                break
            except socket.timeout:
                retries += 1
                utils.log(
                    'Retry #%s for URL %s because of timeout' % (retries, url),
                    xbmc.LOGWARNING)
                continue
            except urllib2.HTTPError as e:
                # if it's a temporary code, retry
                if e.code in TEMP_ERRORS:
                    retries += 1
                    utils.log(
                        'Retry #%s for URL %s because of HTTP Error %s' %
                        (retries, url, e.code), xbmc.LOGWARNING)
                    continue
                # if it's not pass it back up the stack
                else:
                    raise
        else:
            raise

        return html
Exemplo n.º 2
0
 def __http_get_with_retry_1(self, url, headers):
     utils.log('Fetching URL: %s' % url, xbmc.LOGDEBUG)
     net = Net()
     cookiejar = _1CH.get_profile()
     cookiejar = os.path.join(cookiejar, 'cookies')
     net.set_cookies(cookiejar)
     retries=0
     html=None
     while retries<=MAX_RETRIES:
         try:
             html = net.http_GET(url, headers=headers).content
             # if no exception, jump out of the loop
             break
         except socket.timeout:
             retries += 1
             utils.log('Retry #%s for URL %s because of timeout' % (retries, url), xbmc.LOGWARNING)
             continue
         except urllib2.HTTPError as e:
             # if it's a temporary code, retry
             if e.code in TEMP_ERRORS:
                 retries += 1
                 utils.log('Retry #%s for URL %s because of HTTP Error %s' % (retries, url, e.code), xbmc.LOGWARNING)
                 continue
             # if it's not pass it back up the stack
             else:
                 raise
     else:
         raise
     
     return html
 def request(self, uri, params=None, query=None, headers=None, return_soup=False, return_json=False):
     COOKIE_JAR = vfs.join(COOKIE_PATH, self.service + ".lwp")
     net = Net()
     net.set_cookies(COOKIE_JAR)
     if headers:
         headers["Referer"] = self.referrer
         headers["Accept"] = self.ACCEPT
         headers["User-Agent"] = self.USER_AGENT
     else:
         headers = {"Referer": self.referrer, "Accept": self.ACCEPT, "User-Agent": self.USER_AGENT}
     if query:
         uri = uri % urllib.urlencode(query)
     if params:
         html = net.http_POST(self.base_url + uri, params, headers=headers).content
     else:
         html = net.http_GET(self.base_url + uri, headers=headers).content
     net.save_cookies(COOKIE_JAR)
     if return_soup:
         return BeautifulSoup(html)
     elif return_json:
         return json.loads(html)
     else:
         return html