import json import sys import requests if len(sys.argv) < 2: print("Usage: python extract_release_notes.py <save_file_name>") sys.exit(1) save_file_name = sys.argv[1] def build_html(data, first_launch=False): html = "" for i, element in enumerate(data): if element['type'] == 0: if first_launch and i == 0: html += f"<h3>{element['value']}</h3>".replace('\n', '<br/>') continue if element['value'] == '\n': continue else: html += f"<span>{element['value']}</span>".replace('\n', '<br/>') elif element['type'] == 8: html += f"<{element['value']}>{build_html(element['children'])}</{element['value']}>" return html response = requests.get("https://music-desktop-application.s3.yandex.net/stable/release-notes/ru.json") if not response.ok: print("Failed to download file") sys.exit(1) notes = {} element_key: str for element_key in response.json().keys(): if not element_key.startswith("desktop-release-notes."): continue notes[element_key] = build_html(response.json()[element_key], True) with open(save_file_name, "w", encoding='utf-8') as file: file.write(json.dumps(notes, ensure_ascii=False, indent=4))