aboutsummaryrefslogtreecommitdiff
path: root/sbdata/wiki.py
blob: 7e029a5cd2b3f79844984042e41c20b32abe9cbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import urllib.parse
import requests
import mwparserfromhell


def get_wiki_sources_by_title(*page_titles: str, wiki_host: str = 'wiki.hypixel.net') -> dict[str, mwparserfromhell.wikicode.Wikicode]:
    prepared_titles = "|".join(map(urllib.parse.quote, page_titles))
    api_data = requests.get(f'https://{wiki_host}/api.php?action=query&prop=revisions&titles={prepared_titles}&rvprop=content&format=json&rvslots=main').json()
    if "batchcomplete" not in api_data:
        print(f'Batch data not present in wiki response for: {page_titles}')

    return {
        page['title']: mwparserfromhell.parse(page['revisions'][0]['slots']['main']['*'])
        for _, page in api_data["query"]["pages"].items()
    }