Untitled
unknown
plain_text
16 days ago
3.3 kB
2
Indexable
import os import sys import json import requests from argparse import ArgumentParser try: from utils import crypto from utils import data from utils.logger import Logger from utils.request import Request except ImportError: from realme_ota.utils import crypto from realme_ota.utils import data from realme_ota.utils.request import Request from realme_ota.utils.logger import Logger def save_to_txt(model, version, description_url, download_url, filename="ota_updates.txt"): """Функция для сохранения данных в текстовый файл""" with open(filename, "a", encoding="utf-8") as file: file.write("----------------------------------\n") file.write(f"*{model}*\n") file.write(f"Версия: {version}\n") file.write(f"Изменения: {description_url}\n") file.write(f"Ссылка: {download_url}\n") file.write("----------------------------------\n\n") def main(): parser = ArgumentParser() parser.add_argument("product_model", type=str, help="Модель устройства") parser.add_argument("ota_version", help="Версия OTA обновления") parser.add_argument("rui_version", type=int, choices=[1, 2, 3, 4, 5], help="Версия RealmeUI") parser.add_argument("nv_identifier", type=str, nargs='?', help="Идентификатор NV") args = parser.parse_args() logger = Logger(level=4) request = Request( req_version=1 if args.rui_version == 1 else 2, model=args.product_model, ota_version=args.ota_version, rui_version=args.rui_version, nv_identifier=args.nv_identifier, ) logger.log(f"Загрузка данных для {args.product_model} (RealmeUI V{args.rui_version})") try: request.set_vars() req_body, req_hdrs, plain_body = request.set_body_headers() except Exception as e: logger.die(f"Ошибка при подготовке запроса: {e}", 2) try: response = requests.post(request.url, data=req_body, headers=req_hdrs, timeout=30) response.raise_for_status() except Exception as e: logger.die(f"Ошибка при запросе к серверу: {e}", 1) try: json_response = json.loads(response.content) decrypted_content = json.loads(request.decrypt(json_response[request.resp_key])) except Exception as e: logger.die(f"Ошибка при обработке ответа: {e}", 2) try: model = args.product_model version = decrypted_content.get("versionName", "Неизвестно") description_url = decrypted_content.get("description", {}).get("url", "Нет данных") download_url = decrypted_content.get("components", [{}])[0].get("componentPackets", {}).get("url", "Нет данных") save_to_txt(model, version, description_url, download_url) logger.log("Данные успешно записаны в файл 'ota_updates.txt'") except Exception as e: logger.die(f"Ошибка при обработке данных: {e}", 1) if __name__ == "__main__": main()
Editor is loading...
Leave a Comment