diff options
Diffstat (limited to 'sbdata/wiki.py')
-rw-r--r-- | sbdata/wiki.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sbdata/wiki.py b/sbdata/wiki.py new file mode 100644 index 0000000..7e029a5 --- /dev/null +++ b/sbdata/wiki.py @@ -0,0 +1,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() + } |