blob: 2f497d952a269a7489c94ee0336452566a6cb4ba (
plain) (
tree)
|
|
#!/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']))
|