Example #1
0
def api_search(args):
    search_request = SearchRequest(category=args["cat"], offset=args["offset"], limit=args["limit"], query=args["q"])
    if args["t"] == "search":
        search_request.type = "general"
        logger.info("")
    elif args["t"] == "tvsearch":
        search_request.type = "tv"
        identifier_key = "rid" if args["rid"] else "tvdbid" if args["tvdbid"] else None
        if identifier_key is not None:
            identifier_value = args[identifier_key]
            search_request.identifier_key = identifier_key
            search_request.identifier_value = identifier_value
        search_request.season = int(args["season"]) if args["season"] else None
        search_request.episode = int(args["episode"]) if args["episode"] else None
    elif args["t"] == "movie":
        search_request.type = "movie"
        search_request.identifier_key = "imdbid" if args["imdbid"] is not None else None
        search_request.identifier_value = args["imdbid"] if args["imdbid"] is not None else None
    elif args["t"] == "book":
        search_request.type = "ebook"
        search_request.author = args["author"] if args["author"] is not None else None
        search_request.title = args["title"] if args["title"] is not None else None
    logger.info("API search request: %s" % search_request)
    result = search.search(False, search_request)
    results = process_for_external_api(result)
    content = render_search_results_for_api(results, result["total"], result["offset"], output=args["o"])
    if args["o"].lower() == "xml":
        response = make_response(content)
        response.headers["Content-Type"] = "application/xml"
    elif args["o"].lower() == "json":
        response = jsonify(content)
    else:
        return "Unknown output format", 500
    
    return response
Example #2
0
def api_search(args):
    search_request = SearchRequest(category=args["cat"],
                                   offset=args["offset"],
                                   limit=args["limit"],
                                   query=args["q"])
    if args["t"] == "search":
        search_request.type = "general"
        logger.info("")
    elif args["t"] == "tvsearch":
        search_request.type = "tv"
        identifier_key = "rid" if args[
            "rid"] else "tvdbid" if args["tvdbid"] else None
        if identifier_key is not None:
            identifier_value = args[identifier_key]
            search_request.identifier_key = identifier_key
            search_request.identifier_value = identifier_value
        search_request.season = int(args["season"]) if args["season"] else None
        search_request.episode = int(
            args["episode"]) if args["episode"] else None
    elif args["t"] == "movie":
        search_request.type = "movie"
        search_request.identifier_key = "imdbid" if args[
            "imdbid"] is not None else None
        search_request.identifier_value = args["imdbid"] if args[
            "imdbid"] is not None else None
    elif args["t"] == "book":
        search_request.type = "ebook"
        search_request.author = args["author"] if args[
            "author"] is not None else None
        search_request.title = args["title"] if args[
            "title"] is not None else None
    logger.info("API search request: %s" % search_request)
    result = search.search(False, search_request)
    results = process_for_external_api(result)
    content = render_search_results_for_api(results,
                                            result["total"],
                                            result["offset"],
                                            output=args["o"])
    if args["o"].lower() == "xml":
        response = make_response(content)
        response.headers["Content-Type"] = "application/xml"
    elif args["o"].lower() == "json":
        response = jsonify(content)
    else:
        return "Unknown output format", 500

    return response