Spaces:
Paused
Paused
| import argparse | |
| from mainLogic.startup.Login.call_login import LoginInterface | |
| from mainLogic import downloader | |
| from mainLogic.utils import glv_var | |
| from mainLogic.utils.Debugger import Debugger | |
| from mainLogic.utils.glv_var import debugger | |
| def parse_arguments(): | |
| """Parse command-line arguments.""" | |
| parser = argparse.ArgumentParser(description='PhysicsWallah M3u8 parser.') | |
| parser.add_argument('--csv-file', type=str, help='Input csv file. Legacy Support too.') | |
| parser.add_argument('--id', type=str, | |
| help='PhysicsWallh Video Id for single usage. Incompatible with --csv-file. Must be used with --name') | |
| parser.add_argument('--name', type=str, | |
| help='Name for the output file. Incompatible with --csv-file. Must be used with --id') | |
| parser.add_argument('--dir', type=str, help='Output Directory') | |
| parser.add_argument('--verbose', action='store_true', help='Verbose Output') | |
| parser.add_argument('--shell', action='store_true', help='Start the shell') | |
| parser.add_argument("--command",default="",help="Command to execute in shell") | |
| parser.add_argument('--shell-i','-i',action='store_true', help='Start the interactive shell (v2)') | |
| parser.add_argument('--tmp-dir', type=str, help='Temporary Directory') | |
| parser.add_argument('--webui', nargs='?', const=-1, type=int, help='Start the Webui') | |
| parser.add_argument('--simulate', action='store_true', | |
| help='Simulate the download process. No files will be downloaded. Incompatible wit h ' | |
| '--csv-file. Must be used with --id and --name') | |
| parser.add_argument('--version', action='version', version='%(prog)s 1.0') | |
| parser.add_argument('--login', action='store_true', help='Login to PhysicsWallah') | |
| parser.add_argument('--phone', type=str, help='Phone number for login (optional)') | |
| parser.add_argument('--ignore-token', action='store_true', help='Ignore the token.') | |
| parser.add_argument('--sync', action='store_true', help='Sync the token.') | |
| parser.add_argument("--new-dl","-L",action='store_true',help="New Downloader") | |
| parser.add_argument("--batch-name","-B",type=str,help="Batch Id") | |
| parser.add_argument("--topic-name","-T",type=str,help="Topic name ") | |
| parser.add_argument("--lecture-url","-U",type=str,help="Lecture URL") | |
| return parser.parse_args() | |
| if __name__ == "__main__": | |
| args = parse_arguments() | |
| if args.login: | |
| LoginInterface.cli() | |
| elif args.phone: | |
| LoginInterface.cli(args.phone) | |
| if args.command: | |
| from beta.shellLogic import logic | |
| command = args.command.split()[0] | |
| args = args.command.split()[1:] | |
| logic.execute( | |
| command, | |
| args | |
| ) | |
| exit(0) | |
| if args.ignore_token: | |
| glv_var.vars['ig_token'] = True | |
| if args.shell_i: | |
| from beta.shellLogic.shell_var import app | |
| app.run() | |
| try: | |
| from beta.Syncer.main import Syncer | |
| sync = Syncer() | |
| except Exception as e: | |
| debugger.error(f"Error in Syncer: {e}") | |
| pass | |
| downloader.main( | |
| csv_file=args.csv_file, | |
| id=args.id, | |
| name=args.name, | |
| batch_name=args.batch_name, | |
| topic_name=args.topic_name, | |
| lecture_url=args.lecture_url, | |
| directory=args.dir, | |
| tmp_dir=args.tmp_dir, | |
| verbose=args.verbose, | |
| shell=args.shell, | |
| webui_port=args.webui, | |
| simulate=args.simulate | |
| ) | |