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
95
96
97
98
99
100
101
102
103
104
|
#!/usr/bin/python3
import requests, os, traceback, subprocess, markdown
exit(0)
## 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()
S.proxies={'https': "socks5://localhost:2121"} # <- Proxy mandatory
#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
try:
r=S.post("%s" % url, data=login)
assert r.status_code == 200
assert r.json()['login']['result'] == "Success"
except:
traceback.print_exc()
print(repr(r))
print(r.text)
print("Also, make sure the IP you have used is allowed.")
exit(1)
## 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']))
|