args.py 952 B

12345678910111213141516171819202122232425262728293031323334
  1. import argparse
  2. from urllib3.util import parse_url
  3. desc = '''Starting program with parameters'''
  4. class ValidateUrl(argparse.Action):
  5. def __call__(self, parser, namespace, values, option_string=None):
  6. if not self.__validate(values):
  7. parser.error(f"Please enter a valid URL. Got: {values}")
  8. setattr(namespace, self.dest, values)
  9. def __validate(self, url) -> bool:
  10. try:
  11. result = parse_url(url)
  12. return all([result.scheme, result.netloc])
  13. except:
  14. return False
  15. class ArgParser:
  16. def __init__(self) -> None:
  17. self.parser = argparse.ArgumentParser(description=desc)
  18. self.args = None
  19. self.parser.add_argument(
  20. "--link", default=None,
  21. help="Insert youtube video URL",
  22. action=ValidateUrl,
  23. type=str
  24. )
  25. def parse(self):
  26. self.args = self.parser.parse_args()