diff --git a/tclcheck_gapfill.py b/tclcheck_gapfill.py index b695c3c..6fe7e93 100644 --- a/tclcheck_gapfill.py +++ b/tclcheck_gapfill.py @@ -6,20 +6,18 @@ """Query existence of missing OTAs.""" import json - import requests -from requests.exceptions import RequestException -import tcllib -from tcllib.devices import DesktopDevice, MobileDevice +from tcllib import ansi +from tcllib.devices import MobileDevice +from tcllib.requests import RequestRunner, CheckRequest, ServerVoteSelector, \ + write_info_if_dumps_found # 1. Fetch list of missing OTAs (e.g. from ancient versions to current) # 2. Query updates from FOTA servers (and store XML) # (3. Upload will be done manually with upload_logs.py) -dev = MobileDevice() -fc = tcllib.FotaCheck() print("Loading list of missing OTAs.") versions_json = requests.get("https://tclota.birth-online.de/json_otaversions.php").text @@ -30,22 +28,25 @@ for i in versions: print("Got {} devices and a total of {} missing OTAs.".format(len(versions), num_versions)) +dev = MobileDevice() + +runner = RequestRunner(ServerVoteSelector()) +runner.max_tries = 20 + num_item = 1 for prd, data in versions.items(): print("{}:".format(prd), end="", flush=True) for ver in data["missing_froms"]: print(" {}".format(ver), end="", flush=True) - try: - dev.curef = prd - dev.fwver = ver - fc.reset_session(dev) - check_xml = fc.do_check(dev, max_tries=20) - curef, fv, tv, fw_id, fileid, fn, fsize, fhash = fc.parse_check(check_xml) + dev.curef = prd + dev.fwver = ver + chk = CheckRequest(dev) + runner.run(chk) + if chk.success: print("✔", end="", flush=True) - except RequestException as e: + num_item += 1 + else: print("✖", end="", flush=True) - continue - num_item += 1 print("") -tcllib.FotaCheck.write_info_if_dumps_found() +write_info_if_dumps_found()