28 lines
		
	
	
		
			733 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			733 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python
 | |
| """URL encode or decode text."""
 | |
| 
 | |
| from argparse import ArgumentParser
 | |
| from urllib import parse
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     cli = ArgumentParser(description=__doc__)
 | |
|     cli.add_argument('command',
 | |
|                      choices=['encode', 'decode'],
 | |
|                      help='type of processing to perform on text')
 | |
|     cli.add_argument('text',
 | |
|                      nargs='?',
 | |
|                      help='optional text read from stdin when omitted')
 | |
|     args = cli.parse_args()
 | |
|     print({
 | |
|         'encode': parse.quote_plus,
 | |
|         'decode': parse.unquote_plus,
 | |
|     }[args.command](args.text if args.text else input()))
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     try:
 | |
|         main()
 | |
|     except KeyboardInterrupt:
 | |
|         exit(130)
 |