]> git.lizzy.rs Git - nhentai.git/blob - nhentai/command.py
project is now Py3 and Py2 compatible
[nhentai.git] / nhentai / command.py
1 #!/usr/bin/env python2.7
2 # coding: utf-8
3 import signal
4
5 from nhentai.cmdline import cmd_parser, banner
6 from nhentai.parser import doujinshi_parser, search_parser, print_doujinshi
7 from nhentai.doujinshi import Doujinshi
8 from nhentai.downloader import Downloader
9 from nhentai.logger import logger
10
11
12 def main():
13     banner()
14     options = cmd_parser()
15
16     doujinshi_ids = []
17     doujinshi_list = []
18
19     if options.keyword:
20         doujinshis = search_parser(options.keyword, options.page)
21         print_doujinshi(doujinshis)
22         if options.is_download:
23             doujinshi_ids = map(lambda d: d['id'], doujinshis)
24     else:
25         doujinshi_ids = options.ids
26
27     if doujinshi_ids:
28         for id in doujinshi_ids:
29             doujinshi_info = doujinshi_parser(id)
30             doujinshi_list.append(Doujinshi(**doujinshi_info))
31     else:
32         exit(0)
33
34     if options.is_download:
35         downloader = Downloader(path=options.saved_path,
36                                 thread=options.threads, timeout=options.timeout)
37         for doujinshi in doujinshi_list:
38             doujinshi.downloader = downloader
39             doujinshi.download()
40     else:
41         map(lambda doujinshi: doujinshi.show(), doujinshi_list)
42
43     logger.log(15, u'🍺 All done.')
44
45
46 def signal_handler(signal, frame):
47     logger.error('Ctrl-C signal received. Quit.')
48     exit(1)
49
50
51 signal.signal(signal.SIGINT, signal_handler)
52
53 if __name__ == '__main__':
54     main()