aboutsummaryrefslogtreecommitdiff
path: root/sbdata/wiki.py
diff options
context:
space:
mode:
Diffstat (limited to 'sbdata/wiki.py')
-rw-r--r--sbdata/wiki.py15
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()
+ }