示例#1
0
 def blocking_thread():
     bl_thread_ctx = SockCkBlockingThreadCtx()
     bl_thread_ctx.error_type = None
     bl_thread_ctx.error_str = None
     
     try:
         opener = url_request.build_opener()
         
         bl_thread_ctx.begin_time = datetime.datetime.utcnow()
         
         with socks_proxy_context.socks_proxy_context(
               proxy_address=(source_host, source_port),
               proxy_timeout=thread_ctx.req_timeout,
             ):
             res = opener.open(thread_ctx.check_url, timeout=thread_ctx.req_timeout)
         
         data = res.read(thread_ctx.req_length).decode(errors='replace')
         
         bl_thread_ctx.done_time = datetime.datetime.utcnow()
         
         if thread_ctx.check_answer not in data:
             raise CheckAnswerError('check_answer not in data')
     except Exception as e:
         bl_thread_ctx.error_time = datetime.datetime.utcnow()
         
         bl_thread_ctx.error_type = type(e)
         bl_thread_ctx.error_str = str(e)
     
     loop.call_soon_threadsafe(result_queue.put_nowait, bl_thread_ctx)
示例#2
0
def ext_open(opener,
             *args,
             headers=None,
             new_headers=None,
             proxy_kwargs=None,
             error_retry_list=None,
             error_retry_count=None,
             error_retry_delay=None,
             error_retry_delay_multiplier=None,
             **kwargs):
    if headers is not None:
        spec_headers = headers
    else:
        spec_headers = opener.addheaders

    if new_headers is not None:
        spec_headers = list(spec_headers)
        spec_headers += new_headers

    if error_retry_list is None:
        error_retry_list = DEFAULT_ERROR_RETRY_LIST

    if error_retry_count is None:
        error_retry_count = DEFAULT_ERROR_RETRY_COUNT

    if error_retry_delay is None:
        error_retry_delay = DEFAULT_ERROR_RETRY_DELAY

    if error_retry_delay_multiplier is None:
        error_retry_delay_multiplier = DEFAULT_ERROR_RETRY_DELAY_MULTIPLIER

    orig_headers = opener.addheaders
    opener.addheaders = spec_headers
    try:
        while True:
            try:
                if proxy_kwargs is not None:
                    with socks_proxy_context.socks_proxy_context(
                            **proxy_kwargs):
                        return opener.open(*args, **kwargs)
                else:
                    return opener.open(*args, **kwargs)
            except error_retry_list:
                if error_retry_count <= 0:
                    raise

                error_retry_count -= 1
                time.sleep(error_retry_delay)
                error_retry_delay *= error_retry_delay_multiplier

                continue
    finally:
        opener.addheaders = orig_headers
def ext_open(opener, *args,
        headers=None, new_headers=None, proxy_kwargs=None,
        error_retry_list=None,
        error_retry_count=None, error_retry_delay=None,
        error_retry_delay_multiplier=None,
        **kwargs):
    if headers is not None:
        spec_headers = headers
    else:
        spec_headers = opener.addheaders
    
    if new_headers is not None:
        spec_headers = list(spec_headers)
        spec_headers += new_headers
    
    if error_retry_list is None:
        error_retry_list = DEFAULT_ERROR_RETRY_LIST
    
    if error_retry_count is None:
        error_retry_count = DEFAULT_ERROR_RETRY_COUNT
    
    if error_retry_delay is None:
        error_retry_delay = DEFAULT_ERROR_RETRY_DELAY
    
    if error_retry_delay_multiplier is None:
        error_retry_delay_multiplier = DEFAULT_ERROR_RETRY_DELAY_MULTIPLIER
    
    orig_headers = opener.addheaders
    opener.addheaders = spec_headers
    try:
        while True:
            try:
                if proxy_kwargs is not None:
                    with socks_proxy_context.socks_proxy_context(**proxy_kwargs):
                        return opener.open(*args, **kwargs)
                else:
                    return opener.open(*args, **kwargs)
            except error_retry_list:
                if error_retry_count <= 0:
                    raise
                
                error_retry_count -= 1
                time.sleep(error_retry_delay)
                error_retry_delay *= error_retry_delay_multiplier
                
                continue
    finally:
        opener.addheaders = orig_headers
示例#4
0
def accessMatchHistory(lastseqnum):
    succeed = False
    while not succeed:
        try:
            with socks_proxy_context.socks_proxy_context(proxy_address=('127.0.0.1', 1080)):
                res = opener.open("https://api.steampowered.com/IDOTA2Match_570/GetMatchHistoryBySequenceNum/V001/?key=" + apikey + "&start_at_match_seq_num=" + str(lastseqnum))
                matchHist = json.loads(res.read().decode('utf-8'))
                succeed = True
            # matchHist = json.loads(urllib.request.urlopen("https://api.steampowered.com/IDOTA2Match_570/GetMatchHistoryBySequenceNum/V001/?key=" + apikey + "&start_at_match_seq_num=" + str(lastseqnum)).read().decode("utf-8"))
            # succeed = True
        except urllib.error.HTTPError:
            print("WOAH")
            time.sleep(30)
        except:
            print("Some other error has occured")
            time.sleep(30)
    return matchHist
 def open_func(opener, *args, **kwargs):
     with socks_proxy_context.socks_proxy_context(proxy_address=proxy_address):
         return opener.open(*args, **kwargs)
示例#6
0
 def open_func(opener, *args, **kwargs):
     with socks_proxy_context.socks_proxy_context(
             proxy_address=proxy_address):
         return opener.open(*args, **kwargs)