diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index f34e54e..14b8730 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -51,6 +51,10 @@ def cmd_parser(): parser.add_option('--search', '-s', type='string', dest='keyword', action='store', help='search doujinshi by keyword') parser.add_option('--tag', type='string', dest='tag', action='store', help='download doujinshi by tag') + parser.add_option('--artist', type='string', dest='artist', action='store', help='download doujinshi by artist') + parser.add_option('--character', type='string', dest='character', action='store', help='download doujinshi by character') + parser.add_option('--parody', type='string', dest='parody', action='store', help='download doujinshi by parody') + parser.add_option('--group', type='string', dest='group', action='store', help='download doujinshi by group') parser.add_option('--favorites', '-F', action='store_true', dest='favorites', help='list or download your favorites.') @@ -107,7 +111,8 @@ def cmd_parser(): exit(0) if args.main_viewer and not args.id and not args.keyword and \ - not args.tag and not args.favorites: + not args.tag and not args.artist and not args.character and \ + not args.parody and not args.group and not args.favorites: generate_main_html() exit(0) @@ -167,12 +172,14 @@ def cmd_parser(): args.id = set(map(int, filter(lambda id_: id_.isdigit(), _))) if (args.is_download or args.is_show) and not args.id and not args.keyword and \ - not args.tag and not args.favorites: + not args.tag and not args.artist and not args.character and \ + not args.parody and not args.group and not args.favorites: logger.critical('Doujinshi id(s) are required for downloading') parser.print_help() exit(1) - if not args.keyword and not args.id and not args.tag and not args.favorites: + if not args.keyword and not args.id and not args.tag and not args.artist and \ + not args.character and not args.parody and not args.group and not args.favorites: parser.print_help() exit(1) diff --git a/nhentai/command.py b/nhentai/command.py index 083980d..f7dc68d 100644 --- a/nhentai/command.py +++ b/nhentai/command.py @@ -20,7 +20,7 @@ def main(): options = cmd_parser() logger.info('Using mirror: {0}'.format(BASE_URL)) - from nhentai.constant import PROXY + from nhentai.constant import PROXY # constant.PROXY will be changed after cmd_parser() if PROXY != {}: logger.info('Using proxy: {0}'.format(PROXY)) @@ -46,6 +46,30 @@ def main(): if options.is_download and doujinshis: doujinshi_ids = map(lambda d: d['id'], doujinshis) + elif options.artist: + doujinshis = tag_parser(options.artist, max_page=options.max_page, index=1) + print_doujinshi(doujinshis) + if options.is_download and doujinshis: + doujinshi_ids = map(lambda d: d['id'], doujinshis) + + elif options.character: + doujinshis = tag_parser(options.character, max_page=options.max_page, index=2) + print_doujinshi(doujinshis) + if options.is_download and doujinshis: + doujinshi_ids = map(lambda d: d['id'], doujinshis) + + elif options.parody: + doujinshis = tag_parser(options.parody, max_page=options.max_page, index=3) + print_doujinshi(doujinshis) + if options.is_download and doujinshis: + doujinshi_ids = map(lambda d: d['id'], doujinshis) + + elif options.group: + doujinshis = tag_parser(options.group, max_page=options.max_page, index=4) + print_doujinshi(doujinshis) + if options.is_download and doujinshis: + doujinshi_ids = map(lambda d: d['id'], doujinshis) + elif options.keyword: doujinshis = search_parser(options.keyword, sorting=options.sorting, page=options.page) print_doujinshi(doujinshis) diff --git a/nhentai/constant.py b/nhentai/constant.py index 121266b..ecbee17 100644 --- a/nhentai/constant.py +++ b/nhentai/constant.py @@ -17,7 +17,12 @@ __api_suspended_SEARCH_URL = '%s/api/galleries/search' % BASE_URL DETAIL_URL = '%s/g' % BASE_URL SEARCH_URL = '%s/search/' % BASE_URL -TAG_URL = '%s/tag' % BASE_URL +TAG_URL = ['%s/tag' % BASE_URL, + '%s/artist' % BASE_URL, + '%s/character' % BASE_URL, + '%s/parody' % BASE_URL, + '%s/group' % BASE_URL] + TAG_API_URL = '%s/api/galleries/tagged' % BASE_URL LOGIN_URL = '%s/login/' % BASE_URL CHALLENGE_URL = '%s/challenge' % BASE_URL