From 473c64986c17c198300c368b0f4f42543f9043be Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 3 Nov 2022 21:59:41 -0300 Subject: TMW Wiki Tools, although it is not handling contributors yet --- Makefile | 1 + wiki/tmw_deploy.py | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100755 wiki/tmw_deploy.py 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'])) + -- cgit v1.2.3-60-g2f50