summaryrefslogtreecommitdiff
path: root/wiki/tmw_deploy.py
blob: 2f497d952a269a7489c94ee0336452566a6cb4ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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']))