Source code for bbarchivist.scripts.tcldelta

#!/usr/bin/env python3
"""Grab latest delta update for TCL API devices."""

import sys  # load arguments

from bbarchivist import argutils  # arguments
from bbarchivist import decorators  # enter to exit
from bbarchivist import scriptutilstcl  # script frontends

__author__ = "Thurask"
__license__ = "WTFPL v2"
__copyright__ = "2017-2018 Thurask"


[docs]def grab_args(): """ Parse arguments from argparse/questionnaire. Invoke a function with those arguments. """ parser = argutils.default_parser("bb-tcldelta", "Check for delta updates for TCL devices") parser.add_argument("curef", help="PRD to check", default=None, nargs="?") parser.add_argument("fvver", help="Current OS version", default=None, nargs="?") parser.add_argument( "-d", "--download", dest="download", help="Download update file", action="store_true", default=False) parser.add_argument( "-o", "--original-filename", dest="original", help="Save with original filename (implies -d)", action="store_true", default=False) parser.add_argument( "-r", "--remote", dest="remote", help="Get latest OTA versions from remote server", action="store_true", default=False) parser.add_argument( "-x", "--export", dest="export", help="Write XML to logs folder", action="store_true", default=False) args = parser.parse_args(sys.argv[1:]) parser.set_defaults() if args.curef is None: args = questionnaire(args) elif args.fvver is None and not args.remote: args = questionnaire(args) tcldelta_main(args.curef, args.fvver, args.download, args.original, args.export) decorators.enter_to_exit(True)
[docs]def questionnaire(args): """ Clear up missing arguments. :param args: Arguments. :type args: argparse.Namespace """ if args.curef is None: args.curef = input("CUREF: ") if args.fvver is None: args.fvver = input("STARTING OS: ") return args
[docs]def tcldelta_main(curef, fvver, download=False, original=False, export=False, remote=False): """ Scan one PRD and produce download URL and filename. :param curef: PRD of the phone variant to check. :type curef: str :param fvver: Current firmware version. :type fvver: str :param download: If we'll download the file that this returns. Default is False. :type download: bool :param original: If we'll download the file with its original filename. Default is False. :type original: bool :param export: Whether to export XML response to file. Default is False. :type export: bool :param remote: Whether to get OTA version from remote server. Default is False. :type remote: bool """ if remote: fvver = scriptutilstcl.tcl_delta_remote(curef) scriptutilstcl.tcl_prd_scan(curef, download, mode=2, fvver=fvver, original=original, export=export)
if __name__ == "__main__": grab_args()