1 #!/usr/bin/env python2.7
3 from __future__ import unicode_literals, print_function
8 from nhentai.cmdline import cmd_parser, banner
9 from nhentai.parser import doujinshi_parser, search_parser, print_doujinshi
10 from nhentai.doujinshi import Doujinshi
11 from nhentai.downloader import Downloader
12 from nhentai.logger import logger
13 from nhentai.constant import BASE_URL
18 logger.info('Using mirror: {0}'.format(BASE_URL))
19 options = cmd_parser()
25 doujinshis = search_parser(options.keyword, options.page)
26 print_doujinshi(doujinshis)
27 if options.is_download:
28 doujinshi_ids = map(lambda d: d['id'], doujinshis)
30 doujinshi_ids = options.id
33 for id in doujinshi_ids:
34 doujinshi_info = doujinshi_parser(id)
35 doujinshi_list.append(Doujinshi(**doujinshi_info))
39 if not options.is_show:
40 downloader = Downloader(path=options.output_dir,
41 thread=options.threads, timeout=options.timeout)
43 for doujinshi in doujinshi_list:
44 doujinshi.downloader = downloader
50 doujinshi_dir = os.path.join(options.output_dir, str(doujinshi.id))
51 file_list = os.listdir(doujinshi_dir)
52 for index, image in enumerate(file_list):
54 next_ = file_list[file_list.index(image) + 1]
58 image_html += '<img src="{0}" class="image-item {1}" attr-prev="{2}" attr-next="{3}">\n'\
59 .format(image, 'current' if index == 0 else '', previous, next_)
62 with open(os.path.join(os.path.dirname(__file__), 'doujinshi.html'), 'r') as template:
63 html = template.read()
65 data = html.format(TITLE=doujinshi.name, IMAGES=image_html)
66 with open(os.path.join(doujinshi_dir, 'index.html'), 'w') as f:
69 logger.log(15, 'HTML Viewer has been write to \'{0}\''.format(os.path.join(doujinshi_dir, 'index.html')))
71 if not platform.system() == 'Windows':
72 logger.log(15, '🍺 All done.')
74 logger.log(15, 'All done.')
77 [doujinshi.show() for doujinshi in doujinshi_list]
80 def signal_handler(signal, frame):
81 logger.error('Ctrl-C signal received. Quit.')
85 signal.signal(signal.SIGINT, signal_handler)
87 if __name__ == '__main__':