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()
}
|