示例#1
0
文件: menu.py 项目: Benoss/EazyReport
 def get_page(self, page_path):
     if not self._menus:
         self.create_menus()
     
     if not self._menus.has_key(page_path):
         abort(404, "No such database.") 
     return self._menus[page_path]
示例#2
0
def play(sid):
    r=resolver.song(sid)
    if r:
        contentType,size,obj = r
        if isinstance(obj,basestring):
            log("ASK SID."+sid+"-> redirect to URL(%s)"%obj)
            web.redirect(obj) #headers are (perhaps) set by its own server
        else:
            log("ASK SID."+sid+"-> will return to a file-like (%s) of size (%s)"%(contentType,str(size)))
            if contentType: web.response.content_type = contentType
            if size: web.response.content_length = str(size)
            return obj
    else:
        log("ASK SID."+sid+"-> unknown sid ?!")
        web.abort(404)
示例#3
0
def playdarApi():
    mkjson=lambda cb,d: cb and "%s(%s)"%(cb,json.dumps(d)) or d
    auth = web.request.query.auth
    authenticated=isAuthentOk(auth)

    method = web.request.query.method.lower()
    callback = web.request.query.jsonp

    msg="ASK API.%s (auth=%s,cb=%s), auth is %s -> " % (method,auth,callback,authenticated and "OK" or "KO")

    if method=="stat":
        log(msg+"return stat")
        return mkjson(callback,{"name":"playdar","version":"0.1.1","authenticated":authenticated,"capabilities": []})
    elif method=="resolve":
        if authenticated:
            artist=web.request.query.artist.strip()
            album=web.request.query.album.strip()
            track=web.request.query.track.strip()
            if artist and track:
                qid=web.request.query.qid or str(uuid.uuid5(uuid.NAMESPACE_DNS,(artist+album+track).encode("utf_8")))

                # start the search in a thread
                Thread(target=resolver.initSearch, args=(qid,artist,album,track)).start()

                log(msg+"reply a qid(%s)"%qid)
                return mkjson(callback,{"qid":qid} )
            else:
                logerr(msg+"can't reply coz it miss, at least, artist and track")
                web.abort(400)
        else:
            logerr(msg+"can't reply coz auth is KO")
            web.abort(400)
    elif method=="get_results":
        if authenticated:
            qid=web.request.query.qid
            if qid:
                result=resolver.fetchSearch(qid)
                if result:
                    query,liste=result
                    log(msg+"return %d result(s) for qid(%s)" % (len(liste),qid))
                    return mkjson(callback,{
                        "qid":qid,
                        "refresh_interval":1000,
                        "query": query,
                        "results": liste,
                    })
                else:
                    logerr(msg+"can't reply coz qid is unknown")
                    web.abort(400)
            else:
                logerr(msg+"can't reply coz qid is missing")
                web.abort(400)
        else:
            logerr(msg+"can't reply coz auth is KO")
            web.abort(400)
    else:
        logerr(msg+"unknown method ?!?")
        web.abort(400)