summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-11-03 21:59:41 -0300
committerJesusaves <cpntb1@ymail.com>2022-11-03 21:59:41 -0300
commit473c64986c17c198300c368b0f4f42543f9043be (patch)
tree7c774397f195ddc12801574b2de75db140608e40
parent17ab5f3411b88bbf060007f7a57c5d960708c079 (diff)
downloadtools-473c64986c17c198300c368b0f4f42543f9043be.tar.gz
tools-473c64986c17c198300c368b0f4f42543f9043be.tar.bz2
tools-473c64986c17c198300c368b0f4f42543f9043be.tar.xz
tools-473c64986c17c198300c368b0f4f42543f9043be.zip
TMW Wiki Tools, although it is not handling contributors yet
-rw-r--r--Makefile1
-rwxr-xr-xwiki/tmw_deploy.py94
2 files changed, 95 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 7398b94..a9a013a 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,7 @@ testxml:
.PHONY: wiki
wiki:
+ cd wiki ; ./tmw_deploy.py
cd wiki ; ./wikigen.py
cd wiki ; mv *.md ../../wiki/
@cd contrib_xsl ; make wiki
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']))
+