diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-11-03 21:59:41 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-11-03 21:59:41 -0300 |
commit | 473c64986c17c198300c368b0f4f42543f9043be (patch) | |
tree | 7c774397f195ddc12801574b2de75db140608e40 | |
parent | 17ab5f3411b88bbf060007f7a57c5d960708c079 (diff) | |
download | tools-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-- | Makefile | 1 | ||||
-rwxr-xr-x | wiki/tmw_deploy.py | 94 |
2 files changed, 95 insertions, 0 deletions
@@ -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'])) + |