You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
5 years ago
|
import os, argparse, sys, re, json
|
||
|
from mwclient import (Site,
|
||
|
errors)
|
||
|
|
||
|
# API CALL
|
||
|
# https://hub.xpub.nl/sandbox/itchwiki/api.php?action=smwbrowse&browse=pvalue¶ms={ "limit": 1500, "offset": 0, "property" : "Title", "search": "" }&format=json
|
||
|
# generated orgs.json
|
||
|
# >>> result = site.api('query', prop='coordinates', titles='Oslo|Copenhagen')
|
||
|
# login
|
||
|
site = Site(host='hub.xpub.nl/sandbox', path='/itchwiki/')
|
||
|
|
||
|
wd =os.path.dirname(os.path.abspath(__file__)) # parent working directory
|
||
|
with open(os.path.join(wd, 'login.txt'), 'r') as login: # read login user & pwd
|
||
|
loginlines = login.read()
|
||
|
user, pwd = loginlines.split('\n')
|
||
|
site.login(username=user, password=pwd) # login to wiki
|
||
|
|
||
|
# To query a large number of ite:
|
||
|
|
||
|
for i in range(0, 1500, 100):
|
||
|
# variable i will increase 100 at each iteration
|
||
|
# between 0 and 1400
|
||
|
# and will make the offset parameter change
|
||
|
print('\n', f'Querying from {i} to {i+100}', '\n')
|
||
|
|
||
|
ask_query = f'[[Category:Title]]|format=json|limit=100|offset={i}'
|
||
|
|
||
|
response = site.api(action='ask', query=ask_query)
|
||
|
for pagetitle in response['query']['results']:
|
||
|
print(pagetitle)
|
||
|
page = site.pages[pagetitle]
|
||
|
# # text = page.text()
|
||
|
page.save('{{Publication}}\n[[Category:Title]]')
|