Example #1
0
 def viewable(self, uri,  ctx):
     if os.environ.get('PHOTO_FORCE_LOGIN', ''):
         agent = URIRef(os.environ['PHOTO_FORCE_LOGIN'])
     else:
         agent = webuser.getUser(ctx)
         
     return access.viewable(self.graph, uri, agent)
Example #2
0
 def viewable(self, uri,  ctx):
     if os.environ.get('PHOTO_FORCE_LOGIN', ''):
         agent = URIRef(os.environ['PHOTO_FORCE_LOGIN'])
     else:
         agent = webuser.getUser(ctx)
         
     return access.viewable(self.graph, uri, agent)
Example #3
0
    def __init__(self, ctx, graph, uri, **kw):
        """
        uri is the whole page load (relative) uri
        """
        self.graph, self.uri = graph, uri
        agent = getUser(ctx)

        self.desc = ImageSetDesc(graph, agent, uri)
Example #4
0
    def __init__(self, ctx, graph, uri, **kw):
        """
        uri is the whole page load (relative) uri
        """
        self.graph, self.uri = graph, uri
        agent = getUser(ctx)

        self.desc = ImageSetDesc(graph, agent, uri)
Example #5
0
def serviceCall(ctx, name, uri):
    """
    deferred to result of calling this internal service on the image
    uri. user credentials are passed on
    """
    t1 = time.time()
    log.debug("serviceCall: %s %s", name, uri)
    def endTime(result):
        log.info("service call %r in %.01f ms", name, 1000 * (time.time() - t1))
        return result
    return getPage(str('%s?uri=%s' % (networking.serviceUrl(name),
                                      urllib.quote(uri, safe=''))),
            headers={'x-foaf-agent' : str(getUser(ctx)),
                       }).addCallback(endTime)
Example #6
0
def serviceCall(ctx, name, uri):
    """
    deferred to result of calling this internal service on the image
    uri. user credentials are passed on
    """
    t1 = time.time()
    log.debug("serviceCall: %s %s", name, uri)
    def endTime(result):
        log.info("service call %r in %.01f ms", name, 1000 * (time.time() - t1))
        return result
    return getPage(str('%s?uri=%s' % (networking.serviceUrl(name),
                                      urllib.quote(uri, safe=''))),
            headers={'x-foaf-agent' : str(getUser(ctx)),
                       }).addCallback(endTime)
Example #7
0
    def renderHTTP(self, ctx):
        req = inevow.IRequest(ctx)

        if (req.getHeader('accept') == 'application/json'
                and not ctx.arg("jsonUpdate")
                and not ctx.arg('setList')):  # approximage parse
            return self.jsonContent()

        if req.method == 'POST':
            if ctx.arg('tagRange'):
                return self.postTagRange(ctx)
            raise ValueError("unknown action")
        if ctx.arg('rss'):
            # can't use a /rss child, since we're not receiving
            # segments anymore here. That's probably going to be a
            # problem later, but rss=1 is ok today.
            return self.photoRss(ctx)

        if ctx.arg('archive') == 'zip':
            request = inevow.IRequest(ctx)
            ua = request.getHeader('User-agent') or ''
            if 'Googlebot' in ua or 'Yahoo! Slurp' in ua or 'http://search.msn.com/msnbot.htm' in ua:
                raise ValueError("bots, you don't want these huge zip files")

            return self.archiveZip(ctx)

        view = View(self.graph,
                    self.desc,
                    params=dict(date=ctx.arg('date'), star=ctx.arg('star')),
                    cookie=req.getHeader("cookie") or '',
                    agent=getUser(ctx),
                    openidProxyHeader=req.getHeader('x-openid-proxy'),
                    forwardedFor=req.getHeader('x-forwarded-for'))

        if ctx.arg("jsonUpdate"):
            req.setHeader("Content-Type", "application/json")
            return json.dumps(self.templateData(view))

        if ctx.arg("setList"):
            req.setHeader("Content-Type", "application/json")
            return json.dumps(view.photosInSetPlus())

        ret = Renderer(search_dirs=['template/']).render(view)
        print "rendered view is %s" % len(ret)
        # after 65k, this gets truncated somewhere! get a new web server
        req.setHeader("Content-Type", "text/html")
        return ret.encode('utf8')
Example #8
0
    def renderHTTP(self, ctx):
        req = inevow.IRequest(ctx)

        if (req.getHeader('accept') == 'application/json' and
            not ctx.arg("jsonUpdate") and not ctx.arg('setList')): # approximage parse
            return self.jsonContent()
        
        if req.method == 'POST':
            if ctx.arg('tagRange'):
                return self.postTagRange(ctx)
            raise ValueError("unknown action")
        if ctx.arg('rss'):
            # can't use a /rss child, since we're not receiving
            # segments anymore here. That's probably going to be a
            # problem later, but rss=1 is ok today.
            return self.photoRss(ctx)
        
        if ctx.arg('archive') == 'zip':
            request = inevow.IRequest(ctx)
            ua = request.getHeader('User-agent')
            if 'Googlebot' in ua or 'Yahoo! Slurp' in ua or 'http://search.msn.com/msnbot.htm' in ua:
                raise ValueError("bots, you don't want these huge zip files")

            return self.archiveZip(ctx)

        view = View(self.graph, self.desc,
                   params=dict(date=ctx.arg('date'), star=ctx.arg('star')),
                   cookie=req.getHeader("cookie") or '',
                   agent=getUser(ctx),
                   openidProxyHeader=req.getHeader('x-openid-proxy'),
                   forwardedFor=req.getHeader('x-forwarded-for'))

        if ctx.arg("jsonUpdate"):
            req.setHeader("Content-Type", "application/json")
            return json.dumps(self.templateData(view))

        if ctx.arg("setList"):
            req.setHeader("Content-Type", "application/json")
            return json.dumps(view.photosInSetPlus())
          
        
        ret = Renderer(search_dirs=['template/']).render(view)
        print "rendered view is %s" % len(ret)
        # after 65k, this gets truncated somewhere! get a new web server
        req.setHeader("Content-Type", "text/html")
        return ret.encode('utf8')