Ejemplo n.º 1
0
def immediatelyCaching(url, success_func=None, fail_func=None):
    """
    A smart method to start caching some identity and get results in callbacks.
    """
    global _CachingTasks
    if _CachingTasks.has_key(url):
        return _CachingTasks[url]
    
    def _getPageSuccess(src, url, res):
        global _CachingTasks
        _CachingTasks.pop(url)
        if UpdateAfterChecking(url, src):
            if success_func is not None:
                success_func(url+'\n'+src)
            res.callback(src)
        else:
            if fail_func is not None:
                fail_func(url+'\n'+src)
            res.errback(Exception(src))
        
    def _getPageFail(x, url, res):
        global _CachingTasks
        _CachingTasks.pop(url)
        if fail_func is not None:
            fail_func(x)
        res.errback(x)
        
    result = Deferred()
    d = dhnnet.getPageTwisted(url)
    d.addCallback(_getPageSuccess, url, result)
    d.addErrback(_getPageFail, url, result)
    
    _CachingTasks[url] = result
    
    return result
Ejemplo n.º 2
0
def pageRequestTwisted(url):
    """
    Request an HTML page - this can be an user identity.
    """
    d = dhnnet.getPageTwisted(url)
    d.addCallback(getPageSuccess, url)
    d.addErrback(getPageFail, url)
    return d