def cmd_parser():
parser = OptionParser()
parser.add_option('--download', dest='is_download', action='store_true', help='download doujinshi or not')
- parser.add_option('--id', type='int', dest='id', action='store', help='doujinshi id of nhentai')
- parser.add_option('--ids', type='str', dest='ids', action='store', help='doujinshi id set, e.g. 1,2,3')
+ parser.add_option('--id', type='str', dest='id', action='store', help='doujinshi ids set, e.g. 1,2,3')
parser.add_option('--search', type='string', dest='keyword', action='store', help='keyword searched')
parser.add_option('--page', type='int', dest='page', action='store', default=1,
help='page number of search result')
- parser.add_option('--path', type='string', dest='saved_path', action='store', default='',
- help='path which save the doujinshi')
+ parser.add_option('--output', type='string', dest='output_dir', action='store', default='',
+ help='output dir')
parser.add_option('--threads', '-t', type='int', dest='threads', action='store', default=5,
help='thread count of download doujinshi')
parser.add_option('--timeout', type='int', dest='timeout', action='store', default=30,
help='use proxy, example: http://127.0.0.1:1080')
args, _ = parser.parse_args()
- if args.ids:
- _ = map(lambda id: id.strip(), args.ids.split(','))
- args.ids = set(map(int, filter(lambda id: id.isdigit(), _)))
+ if args.id:
+ _ = map(lambda id: id.strip(), args.id.split(','))
+ args.id = set(map(int, filter(lambda id: id.isdigit(), _)))
- if args.is_download and not args.id and not args.ids and not args.keyword:
- logger.critical('Doujinshi id/ids is required for downloading')
+ if args.is_download and not args.id and not args.keyword:
+ logger.critical('Doujinshi id(s) are required for downloading')
parser.print_help()
exit(0)
- if args.id:
- args.ids = (args.id, ) if not args.ids else args.ids
-
- if not args.keyword and not args.ids:
+ if not args.keyword and not args.id:
parser.print_help()
exit(0)
if args.threads <= 0:
args.threads = 1
+
elif args.threads > 10:
logger.critical('Maximum number of used threads is 10')
exit(0)
if options.is_download:
doujinshi_ids = map(lambda d: d['id'], doujinshis)
else:
- doujinshi_ids = options.ids
+ doujinshi_ids = options.id
if doujinshi_ids:
for id in doujinshi_ids:
else:
exit(0)
- if options.is_download:
- downloader = Downloader(path=options.saved_path,
- thread=options.threads, timeout=options.timeout)
- for doujinshi in doujinshi_list:
- doujinshi.downloader = downloader
- doujinshi.download()
- else:
- map(lambda doujinshi: doujinshi.show(), doujinshi_list)
+ downloader = Downloader(path=options.output_dir,
+ thread=options.threads, timeout=options.timeout)
+ for doujinshi in doujinshi_list:
+ doujinshi.downloader = downloader
+ doujinshi.download()
logger.log(15, u'🍺 All done.')