diff options
Diffstat (limited to 'wiki/tmw_deploy.py')
-rwxr-xr-x | wiki/tmw_deploy.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/wiki/tmw_deploy.py b/wiki/tmw_deploy.py new file mode 100755 index 0000000..2f497d9 --- /dev/null +++ b/wiki/tmw_deploy.py @@ -0,0 +1,94 @@ +#!/usr/bin/python3 + +import requests, os, traceback, subprocess, markdown + +## Load Credentials +with open("login.txt") as f: + username = f.read().replace('\n', '') +with open("password.txt") as f: + authoken = f.read().replace('\n', '') + +## Setup (also handles cookies on its own due to Session) +url = "https://wiki.themanaworld.org/api.php" +S = requests.Session() + +#r=S.post("%s?action=edit&format=json" % url) + +## Pre Login +r=S.get("%s?action=query&meta=tokens&format=json&type=login" % url) + +assert r.status_code == 200 + +token = r.json()['query']['tokens']['logintoken'] +login=dict() +login["action"]="login" +login["lgname"]=username +login["lgpassword"]=authoken +login["lgtoken"]=token +login["format"]="json" + +## *Actual* Login +r=S.post("%s" % url, data=login) +assert r.status_code == 200 +assert r.json()['login']['result'] == "Success" + +## Retrieve CSRF Token +r=S.get("%s?action=query&meta=tokens&format=json" % url) +CSRF = r.json()['query']['tokens']['csrftoken'] + +## Update quests +for wiki in os.listdir('../../wiki/q'): + try: + with open('../../wiki/q/%s' % wiki) as f: + bf=markdown.markdown(f.read()) + + data=dict() + data["action"]="edit" + data["title"]="Moubootaur_Legends:Q/%s" % wiki.replace('.md', '') + data["text"]=bf + data["summary"]="Auto-generated from quests.xml file" + data["notminor"]=True # Not a minor edit I guess + data["bot"]=True + data["format"]="json" + data["token"]=CSRF + + r=S.post("%s" % url, data=data) + print("%s - %s" % (wiki, r.json()['edit']['result'])) + except: + traceback.print_exc() + print("%s - FAILED" % wiki) + +## Update Monsters and Items wikis +subprocess.call('./tmw_wikigen.py', shell=True) +with open('Items.md') as f: + bf=f.read() + +data=dict() +data["action"]="edit" +data["title"]="Moubootaur_Legends:Items" +data["text"]=bf +data["summary"]="Auto-generated by deploy scripts" +data["notminor"]=True # Not a minor edit I guess +data["bot"]=True +data["format"]="json" +data["token"]=CSRF + +r=S.post("%s" % url, data=data) +print("%s - %s" % (wiki, r.json()['edit']['result'])) + +with open('Monsters.md') as f: + bf=f.read() + +data=dict() +data["action"]="edit" +data["title"]="Moubootaur_Legends:Monsters" +data["text"]=bf +data["summary"]="Auto-generated by deploy scripts" +data["notminor"]=True # Not a minor edit I guess +data["bot"]=True +data["format"]="json" +data["token"]=CSRF + +r=S.post("%s" % url, data=data) +print("%s - %s" % (wiki, r.json()['edit']['result'])) + |