Пример #1
0
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)
Пример #2
0
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