def get_set_javs(): lib_type = request.args.get('lib_type') set_type = request.args.get('set_type') page_num = request.args.get('page_num', 1) # check lib type exists if lib_type not in LIB_MAP: return jsonify({'error': f'{lib_type} is not a supported jav library'}), 400 else: _set_map = LIB_MAP[lib_type]['supported_set'] _search_func = LIB_MAP[lib_type].get('search_func') _set_func = LIB_MAP[lib_type]['set_func'] # optional search string search_string = request.args.get('search_string', '') _dedupe_car_list = [] rt_jav_objs = [] if not search_string: # parse set without search string # verify set type if set_type not in _set_map: set_type = list(_set_map)[0] jav_objs, max_page = _set_func(_set_map[set_type], page_num) else: # search by supplied string jav_objs, max_page = _search_func(set_type, search_string, page_num) for jav_obj in jav_objs: if jav_obj['car'] not in _dedupe_car_list: _dedupe_car_list.append(jav_obj['car']) rt_jav_objs.append(jav_obj) # looooop through DB db_conn = JavManagerDB() for jav_obj in rt_jav_objs: if db_conn.pk_exist(str(jav_obj.get('car'))): # we cannot use img stored in db if it was from javdb due to # dynamically verified id db_obj = dict(db_conn.get_by_pk(str(jav_obj.get('car')))) if db_obj.get('img') and 'jdbimgs' in db_obj['img']: db_obj.pop('img') jav_obj.update(db_obj) else: jav_obj['stat'] = 2 db_conn.upcreate_jav(jav_obj) return jsonify( {'success': { 'jav_objs': rt_jav_objs, 'max_page': max_page }})
def search_by_car(car: str, **kwargs): car = car.upper() jav_obj = JavLibraryScraper({'car': car}).scrape_jav() db_conn = JavManagerDB() if db_conn.pk_exist(str(jav_obj.get('car'))): jav_obj.update(dict(db_conn.get_by_pk(str(jav_obj.get('car'))))) else: jav_obj['stat'] = 2 db_conn.upcreate_jav(jav_obj) # use the full image (image key) instead of img (much smaller) jav_obj['img'] = jav_obj.get('image', '') return [jav_obj], 1
def search_for_actress(javlib_actress_code: str, page_num=1): search_url = 'actors/{url_parameter}?page={page_num}' db_conn = JavManagerDB() # get actress first page jav_objs, max_page = javdb_set_page(search_url, page_num=page_num, url_parameter=javlib_actress_code) for jav_obj in jav_objs: if db_conn.pk_exist(str(jav_obj.get('car'))): jav_obj.update(dict(db_conn.get_by_pk(str( jav_obj.get('car'))))) else: jav_obj['stat'] = 2 db_conn.upcreate_jav(jav_obj) return jav_objs, max_page
def search_for_actress(javlib_actress_code: str, page_num=1): """ This only support javlibrary actress code """ search_url = 'vl_star.php?&mode=&s={url_parameter}&page={page_num}' db_conn = JavManagerDB() # get actress first page jav_objs, max_page = javlib_set_page(search_url, page_num=page_num, url_parameter=javlib_actress_code) for jav_obj in jav_objs: if db_conn.pk_exist(str(jav_obj.get('car'))): jav_obj.update(dict(db_conn.get_by_pk(str( jav_obj.get('car'))))) else: jav_obj['stat'] = 2 db_conn.upcreate_jav(jav_obj) return jav_objs, max_page