#!/usr/bin/env python3 # -*- coding: utf-8 -*- # pylint: disable=C0111,C0326,C0103 """Query existence of missing OTAs.""" import json import requests from requests.exceptions import RequestException import tcllib from tcllib.devices import DesktopDevice, MobileDevice # 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 versions = json.loads(versions_json) num_versions = 0 for i in versions: num_versions += versions[i]["num_missing"] print("Got {} devices and a total of {} missing OTAs.".format(len(versions), num_versions)) 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) print("✔", end="", flush=True) except RequestException as e: print("✖", end="", flush=True) continue num_item += 1 print("") tcllib.FotaCheck.write_info_if_dumps_found()