Пример #1
0
def get_set_javs():
    set_type = request.args.get('set_type')
    page_num = request.args.get('page_num', 1)
    # 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_TYPE_MAP:
            return jsonify({'error': f'{set_type} is not a supported set type'}), 400

        jav_objs, max_page = javdb_set_page(SET_TYPE_MAP[set_type], page_num)
    else:
        # search by supplied string
        search_map = {
            '番号': {'function': search_by_car, 'params': {'car': search_string}},
            '女优': {'function': search_for_actress, 'params': {
                'javlib_actress_code': search_string, 'page_num': page_num}},
            '分类': {'function': javdb_set_page, 'params': 
                {'page_template': 'tags?c6={url_parameter}&page={page_num}',
                'page_num': page_num, 'url_parameter': search_string}
            },
            '系列': {'function': javdb_set_page, 'params': 
                {'page_template': 'series/{url_parameter}?page={page_num}',
                'page_num': page_num, 'url_parameter': search_string}
            }
        }

        # verify set type
        if set_type not in search_map:
            return jsonify({'error': BackendTranslation()['no_support_set_search'].format(set_type)}), 400

        jav_objs, max_page = search_map[set_type]['function'](**search_map[set_type]['params'])
    
    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'))):
            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 jsonify({'success': {'jav_objs': rt_jav_objs, 'max_page': max_page}})
Пример #2
0
def get_local_car():
    car = request.args.get('car')

    db_conn = JavManagerDB()
    if db_conn.pk_exist(car):
        return jsonify({'success': dict(db_conn.get_by_pk(car))})
    else:
        return jsonify(
            {'error':
             f'{car} does not exist locally, car is case sensitive'}), 400
Пример #3
0
def search_by_car(car: str, **kwargs):
    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
Пример #4
0
def get_set_javs():
    set_type = request.args.get('set_type')
    page_num = request.args.get('page_num', 1)

    # verify set type
    if set_type not in SET_TYPE_MAP:
        return jsonify({'error':
                        f'{set_type} is not a supported set type'}), 400

    jav_objs, max_page = javlib_set_page(SET_TYPE_MAP[set_type], page_num)
    db_conn = JavManagerDB()
    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')))))

    return jsonify({'success': {'jav_objs': jav_objs, 'max_page': max_page}})
Пример #5
0
def search_for_actress(javlib_actress_code: str, page_num=1):
    search_url = 'star/{url_parameter}/{page_num}'
    db_conn = JavManagerDB()

    # get actress first page
    jav_objs, max_page = javbus_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
Пример #6
0
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
Пример #7
0
def get_set_javs():
    set_type = request.args.get('set_type')
    page_num = request.args.get('page_num', 1)
    # optional search string
    search_string = request.args.get('search_string', '')
    _dedupe_car_list = []
    rt_jav_objs = []

    if set_type == 'personal_wanted':
        db_conn = JavManagerDB()
        jav_objs, max_page = db_conn.query_on_filter({'stat': 0},
                                                     page=int(page_num))
        # need additional info
        for jav_obj in jav_objs:
            if jav_obj['stat'] != 0:
                db_conn.rebuild_index()
                raise Exception(
                    'index is not up-to-date and it has been rebuild')
            if not jav_obj.get('title', None):
                _full_info = JavLibraryScraper({
                    'car': jav_obj['car']
                }).scrape_jav()
                jav_obj.update(_full_info)
                db_conn.upcreate_jav(jav_obj)

            jav_obj.setdefault('img',
                               jav_obj.get('image',
                                           ''))  # force img key to exist

        # don't need extra db operations
        return jsonify(
            {'success': {
                'jav_objs': jav_objs,
                'max_page': max_page
            }})
    elif not search_string:
        # parse set without search string
        # verify set type
        if set_type not in SET_TYPE_MAP:
            return jsonify(
                {'error': f'{set_type} is not a supported set type'}), 400

        jav_objs, max_page = javlib_set_page(SET_TYPE_MAP[set_type], page_num)
    else:
        # search by supplied string
        search_map = {
            '番号': {
                'function': search_by_car,
                'params': {
                    'car': search_string
                }
            },
            '女优': {
                'function': search_for_actress,
                'params': {
                    'javlib_actress_code': search_string,
                    'page_num': page_num
                }
            },
            '分类': {
                'function': javlib_set_page,
                'params': {
                    'page_template':
                    'vl_genre.php?&mode=&g={url_parameter}&page={page_num}',
                    'page_num': page_num,
                    'url_parameter': search_string
                }
            },
        }

        # verify set type
        if set_type not in search_map:
            return jsonify(
                {'error': f'{set_type} is not a supported search type'}), 400

        jav_objs, max_page = search_map[set_type]['function'](
            **search_map[set_type]['params'])

    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'))):
            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 jsonify(
        {'success': {
            'jav_objs': rt_jav_objs,
            'max_page': max_page
        }})