This commit is contained in:
Ricter Z 2023-02-04 19:47:24 +08:00
parent e9f9651d07
commit 0fb81599dc
4 changed files with 12 additions and 5 deletions

View File

@ -124,6 +124,8 @@ def cmd_parser():
help='clean download history')
parser.add_option('--template', dest='viewer_template', action='store',
help='set viewer template', default='')
parser.add_option('--legacy', dest='legacy', action='store_true', default=False,
help='use legacy searching method')
try:
sys.argv = [unicode(i.decode(sys.stdin.encoding)) for i in sys.argv]

View File

@ -8,7 +8,7 @@ import time
from nhentai import constant
from nhentai.cmdline import cmd_parser, banner
from nhentai.parser import doujinshi_parser, search_parser, print_doujinshi, favorites_parser
from nhentai.parser import doujinshi_parser, search_parser, legacy_search_parser, print_doujinshi, favorites_parser
from nhentai.doujinshi import Doujinshi
from nhentai.downloader import Downloader
from nhentai.logger import logger
@ -55,7 +55,9 @@ def main():
if constant.CONFIG['language']:
logger.info('Using default language: {0}'.format(constant.CONFIG['language']))
options.keyword += ' language:{}'.format(constant.CONFIG['language'])
doujinshis = search_parser(options.keyword, sorting=options.sorting, page=page_list,
_search_parser = legacy_search_parser if options.legacy else search_parser
doujinshis = _search_parser(options.keyword, sorting=options.sorting, page=page_list,
is_page_all=options.page_all)
elif not doujinshi_ids:

View File

@ -14,6 +14,7 @@ BASE_URL = os.getenv('NHENTAI', 'https://nhentai.net')
__api_suspended_DETAIL_URL = '%s/api/gallery' % BASE_URL
DETAIL_URL = '%s/g' % BASE_URL
LEGACY_SEARCH_URL = '%s/search/' % BASE_URL
SEARCH_URL = '%s/api/galleries/search' % BASE_URL

View File

@ -177,9 +177,11 @@ def doujinshi_parser(id_):
return doujinshi
def old_search_parser(keyword, sorting='date', page=1):
def legacy_search_parser(keyword, sorting='date', page=1, is_page_all=False):
logger.warning('Using legacy searching method, `--all` options will not be supported')
logger.debug('Searching doujinshis of keyword {0}'.format(keyword))
response = request('get', url=constant.SEARCH_URL, params={'q': keyword, 'page': page, 'sort': sorting}).content
response = request('get', url=constant.LEGACY_SEARCH_URL,
params={'q': keyword, 'page': page, 'sort': sorting}).content
result = _get_title_and_id(response)
if not result: