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
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