def query_video_list(request): """ Query video list by title <-- generated regex :param request: :return: """ query_keyword = request.GET["name"] page_size = int(get_request_with_default(request, "n", "30")) page_index = int(get_request_with_default(request, "p", "1")) like_video = get_request_with_default(request, "like", "no") == "yes" if like_video: like_condition = {"$eq": True} else: like_condition = {"$ne": None} assert page_size >= 1 assert page_index >= 1 with MongoDBDatabase("website_pron") as mgdb: query_res = mgdb.get_collection("video_info").find({ "name": { "$regex": "(%s)" % "|".join(query_keyword.split(" ")) }, "like": like_condition }).sort("_id", -1).skip((page_index - 1) * page_size).limit(page_size) return [x for x in query_res]
def query_xhamster_bylabel(request): tags = json.loads(request.GET["tags"]) page_size = int(get_request_with_default(request, "n", "30")) page_index = int(get_request_with_default(request, "p", "1")) with MongoDBCollection("spider", "xhamster_storage") as coll: return [ x for x in coll.find({ "$or": [{ "label": { "$regex": keyword, "$options": "i" } } for keyword in tags] }).skip((page_index - 1) * page_size).limit(page_size) ]
def query_novel_by_condition(request): """ Query novel list by title <-- json condition :param request: :return: """ query_condition = json.loads(request.GET["condition"]) page_size = int(get_request_with_default(request, "n", "30")) page_index = int(get_request_with_default(request, "p", "1")) assert page_size >= 1 assert page_index >= 1 with MongoDBDatabase("website_pron") as mgdb: query_res = mgdb.get_collection("novels").find(query_condition).sort( "words_count", -1).skip( (page_index - 1) * page_size).limit(page_size) return [x for x in query_res]
def render_view_images(request): return render( request, "view_images.html", { "images_id": request.GET["id"], "query_key_words": get_request_with_default( request, "key_words", "") })
def query_images_list(request): """ Query images list via title<--generated regex :param request: :return: """ query_keyword = request.GET["key_words"] page_size = int(get_request_with_default(request, "n", "30")) page_index = int(get_request_with_default(request, "p", "1")) assert page_size >= 1 assert page_index >= 1 with MongoDBDatabase("website_pron") as mgdb: query_res = mgdb.get_collection("images_info").find({ "title": { "$regex": "(%s)" % "|".join(query_keyword.split(" ")) } }).sort("_id", -1).skip((page_index - 1) * page_size).limit(page_size) return [x for x in query_res]
def query_novel_by_title(request): """ Query novel list by title <-- generated regex :param request: :return: """ query_keyword = request.GET["query"] block_settings = json.loads( get_request_with_default(request, "block", "[]")) page_size = int(get_request_with_default(request, "n", "30")) page_index = int(get_request_with_default(request, "p", "1")) assert page_size >= 1 assert page_index >= 1 with MongoDBDatabase("website_pron") as mgdb: query_res = mgdb.get_collection("novels").find({ "title": { "$regex": "(%s)" % "|".join(query_keyword.split(" ")) }, "novel_type": { "$nin": block_settings } }).sort("words_count", -1).skip( (page_index - 1) * page_size).limit(page_size) return [x for x in query_res]
def get_nearby_images(request): """ Query next/last images block info by given id and keywords :param request: :return: """ current_id = int(request.GET["id"]) keywords = get_request_with_default(request, "key_words", "") direction = request.GET["dir"].upper() == "NEXT" if direction: query_dir_condition = {"$gt": current_id} sort_flip = 1 else: query_dir_condition = {"$lt": current_id} sort_flip = -1 with MongoDBDatabase("website_pron") as mgdb: query_res = mgdb.get_collection("images_info").find({ "title": { "$regex": "(%s)" % "|".join(keywords.split(" ")) }, "_id": query_dir_condition }).sort("_id", sort_flip).next() return query_res