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 | |
) | |