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