#!/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']))