def main(args): """ メイン。 :param args: ArgumentParser.parse_args() によって解釈された引数 :rtype: bool """ is_debug = int(os.getenv("PYTHON_TEST", 0)) mailadrs = args.mail[0] if args.mail else None password = args.password[0] if args.password else None # # エラーの除外 # if hasattr(args, "dmc"): sys.exit(Err.unexpected_commands.format("--dmc")) if hasattr(args, "smile"): sys.exit(Err.unexpected_commands.format("--smile")) videoid = utils.validator(args.VIDEO_ID) if not videoid: sys.exit(Err.invalid_videoid) if not (args.getthumbinfo or args.thumbnail or args.comment or args.video): sys.exit( Err.not_specified.format("--thumbnail、 --comment、 --video のいずれか")) if args.getthumbinfo: file_name = args.out[0] if isinstance(args.out, list) else None return utils.print_info(videoid, file_name) # # 本筋 # log_level = "DEBUG" if is_debug else args.loglevel logger = utils.NTLogger(log_level=log_level, file_name=utils.LOG_FILE_ND) destination = utils.make_dir(args.dest[0]) database = get_infos(videoid, logger=logger) res_t = False if args.thumbnail: res_t = Thumbnail(logger=logger).start(database, destination) if not (args.comment or args.video): # サムネイルのダウンロードだけならここで終える。 return res_t session = utils.LogIn(mail=mailadrs, password=password).session res_c = False if args.comment: res_c = Comment(logger=logger, session=session).start(database, destination, args.xml) res_v = False if args.video: res_v = Video(logger=logger, session=session).start(database, destination) return res_c | res_v | res_t
def __init__(self, mail=None, password=None, logger=None, session=None): """ :param str | None mail: :param str | None password: :param NTLogger logger: :param requests.Session session: """ super().__init__(logger=logger) self.session = session or utils.LogIn(mail=mail, password=password).session
def test_login_3(self): assert "-" in utils.LogIn(*AUTH_N).token
def test_login_2(self): if AUTH_P[0] is not None: sess = utils.LogIn(*AUTH_P).session assert "-" in utils.LogIn(None, None, session=sess).token
def test_login_1(self): if AUTH_P[0] is not None: _ = utils.LogIn(*AUTH_P).session sess = utils.LogIn().session assert utils.LogIn(*AUTH_N, session=sess).is_login is True
def __init__(self, mail=None, password=None, logger=None): """ 使い方: MYLISTに動画を追加する: mylist MYLIST --add sm1 sm2 sm3 IDを一行ごとに書いたファイルからMYLISTに動画を追加する: mylist MYLIST --add +C:/Users/Me/Desktop/ids.txt MYLISTをそのIDで指定する: mylist 12345678 --id --add sm1 sm2 sm3 MYLISTから動画を削除する: mylist MYLIST --delete sm1 sm2 sm3 MYLIST の中のもの全てを削除する: mylist MYLIST --delete * MYLIST の中のもの全てを削除する(確認なし): mylist MYLIST --delete * --yes MYLIST の中の動画を --to に移す: mylist MYLIST --to なんとかかんとか --move sm1 sm2 sm3 MYLIST の中のもの全てを --to に移す: mylist MYLIST --to なんとかかんとか --move * MYLIST の中の動画を --to に写す: mylist MYLIST --to なんとかかんとか --copy sm1 sm2 sm3 MYLIST の中のもの全てを --to に写す: mylist MYLIST --to なんとかかんとか --copy * 特定のマイリストの中身を一覧にする: mylist MYLIST --export 全てのマイリストの名前を一覧にする: mylist * --show 全てのマイリストの中身を一覧にする(タブ区切り): mylist * --show --everything --out D:/Downloads/all.txt 全てのマイリストの中身を一覧にする(表形式): mylist * --show --show --everything --out D:/Downloads/all.txt 全てのマイリストの中身を一覧にする: mylist * --export --everything --out D:/Downloads/all.txt マイリスト全体のメタデータを一覧にする: mylist * --export --out D:/Downloads/all.txt 指定したマイリストに登録されたIDをファイルに出力する: mylist MYLIST --export --out C:/Users/Me/Desktop/file.txt 指定した名前で新しいマイリストを作る: mylist MYLIST --create 指定した名前のマイリストを削除する: mylist MYLIST --purge 指定した名前のマイリストを削除する(確認なし): mylist MYLIST --purge --yes 他のコマンド: それぞれにはログインに必要な情報を与えられる: mylist MYLIST --add sm9 --mail <メールアドレス> --pass <パスワード> 引数がどの様に解釈されるかを確認したいとき (確認するだけで、プログラムは実行しません): mylist --export --id 12345678 --out ../file.txt --what ログ出力の詳細さを変える: mylist --loglevel WARNING # エラー以外表示しない 引用符を含むマイリスト名の指定方法: * 「"マイ'リ'スト"」 を指定するには 「"\"マイ'リ'スト\""」 * 「'マイ"リ"スト'」 を指定するには 「"'マイ\"リ\"スト'"」 :param str | None mail: メールアドレス :param str | None password: パスワードの組 :param NTLogger logger: :rtype: None """ super().__init__(logger=logger) __login = utils.LogIn(mail=mail, password=password) self.session = __login.session self.token = __login.token self.mylists = self.get_mylists_info()