def main(): patches = {} merged_champions = {} with codecs.open(os.path.join(data_dir, "patches"), "r", "utf-8") as file: patches = json.load(file) summaries = "" for patch in patches.values(): summaries += patch['summary'] for champion in patch['champions']: if champion['name'] in merged_champions: merged_champions[champion['name']].short_summary += ' ' + champion['short_summary'] merged_champions[champion['name']].summary += ' ' + champion['summary'] else: merged_champions[champion['name']] = Champion(champion['name']) merged_champions[champion['name']].short_summary = champion['short_summary'] merged_champions[champion['name']].summary = champion['summary'] summary = generate_patch_summary(summaries) for champion in merged_champions.values(): champion.short_summary = generate_sentence(champion.short_summary, 20, 1) champion.summary = generate_sentence(champion.summary, 15, 2) generated_patch = Patch('generated', summary) generated_patch.champions = merged_champions with codecs.open(os.path.join(out_dir, "patch"), "w", "utf-8") as file: json.dump(generated_patch, file, default=patch_serialize, indent=4)
def parse_patch(number): patch = None url = url_start + number + url_end print_bullet_point(url, 2) request = requests.get(url) if request.status_code == requests.codes.ok: soup = BeautifulSoup(request.text, "html.parser") container = soup.find("div", {"id": "patch-notes-container"}) if container is None: print_bullet_point("ERROR: Could not find patch-notes-container", 4) else: patch_summary = parse_summary(container) patch = Patch(number, patch_summary) patch.champions = parse_champions(container) else: print_bullet_point("ERROR: status_code " + str(request.status_code), 4) return patch