Untitled
unknown
plain_text
9 months ago
3.3 kB
6
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