Merge pull request #8 from KevinMidboe/CLI
Prompt for user input has been moved out to a funtion. Reflecting cha…
This commit is contained in:
		
							
								
								
									
										56
									
								
								src/cli.py
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								src/cli.py
									
									
									
									
									
								
							| @@ -1,37 +1,59 @@ | |||||||
| #!usr/bin/env python3.6 | #!usr/bin/env python3.6 | ||||||
| from guessit import guessit |  | ||||||
| import click | import click | ||||||
|  | from guessit import guessit | ||||||
|  |  | ||||||
| from core import scan_folder, moveHome  | from core import scan_folder, moveHome  | ||||||
| from video import Video | from video import Video | ||||||
| from exceptions import InsufficientInfoError | from exceptions import InsufficientNameError | ||||||
|  |  | ||||||
|  | def moveHome(video): | ||||||
|  |     print('Would have moved: {}'.format(video)) | ||||||
|  |  | ||||||
|  | def tweet(video): | ||||||
|  |     pass | ||||||
|  |  | ||||||
|  | def prompt(name): | ||||||
|  |     manual_name = input("Insufficient name: '{}'\nInput name manually: ".format(name))  | ||||||
|  |  | ||||||
|  |     if manual_name is 'q': | ||||||
|  |         assert KeyboardInterrupt | ||||||
|  |     if manual_name is 's': | ||||||
|  |         return None | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     return manual_name | ||||||
|  |  | ||||||
| @click.command() | @click.command() | ||||||
| @click.argument('path') | @click.argument('path') | ||||||
| def main(path): | @click.option('--daemon', '-d', daemon) | ||||||
|     videos, insufficient_info = scan_folder(path) | def main(path, daemon): | ||||||
|     # print('Sweet lemonade: {} {}'.format(videos, insufficient_info)) |     videos, insufficient_name = scan_folder(path) | ||||||
|  |  | ||||||
|     for video in videos: |     for video in videos: | ||||||
|         moveHome(video) |         moveHome(video) | ||||||
|  |  | ||||||
|     while len(insufficient_info) >= 1: |     while len(insufficient_name) >= 1: | ||||||
|         for file in insufficient_info: |         for file in insufficient_name: | ||||||
|             supplementary_info = input("Insufficient info for match file: '{}'\nSupplementary info: ".format(file))  |             try: | ||||||
|  |                 manual_name = prompt(file) | ||||||
|                  |                  | ||||||
|             if supplementary_info is 'q': |                 if manual_name is None: | ||||||
|                 exit(0) |                     insufficient_name.pop() | ||||||
|             if supplementary_info is 's': |  | ||||||
|                 insufficient_info.pop() |  | ||||||
|                     continue |                     continue | ||||||
|                  |                  | ||||||
|                 try: |                 try: | ||||||
|                 video = Video.fromguess(file, guessit(supplementary_info)) |                     video = Video.fromguess(file, guessit(manual_name)) | ||||||
|                 print(video) |  | ||||||
|                     moveHome(video) |                     moveHome(video) | ||||||
|                 insufficient_info.pop() |                     insufficient_name.pop() | ||||||
|             except InsufficientInfoError: |  | ||||||
|                 pass |                 except InsufficientNameError: | ||||||
|  |                     continue  | ||||||
|  |                      | ||||||
|  |             except KeyboardInterrupt: | ||||||
|  |                 # Logger: Received interrupt, exiting parser. | ||||||
|  |                 # should the class objects be deleted ? | ||||||
|  |                 print('Interrupt detected. Exiting') | ||||||
|  |                 exit(0) | ||||||
|             |             | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     main() |     main() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user