diff --git a/README.md b/README.md index b83c863..564f230 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ mypassword ## Run -* all toguether `run.sh` +* all toguether `./run.sh` * `python3 download_imgs.py` * Downloads all images from wiki to `images/` directory diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 diff --git a/sandbox/ask_wiki.py b/sandbox/ask_wiki.py new file mode 100644 index 0000000..4877191 --- /dev/null +++ b/sandbox/ask_wiki.py @@ -0,0 +1,60 @@ + +import os +from mwclient import Site +from datetime import datetime +from pprint import pprint + + +site = Site(host='hub.xpub.nl/sandbox', path='/itchwiki/') +wd = os.path.dirname(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 + + +query = ('[[File:+]][[Title::+]][[Date::+]]|?Title|?Date|?Part|sort=Date,Title,Part|order=asc,asc,asc') +print('Query:', query) + +# examples: +# [[File:+]][[Year::+]] +# [[File:+]][[Year::1984]] +# same as: api.php?action=ask&query=[[File:%2B]][[Year::1984]] +# can write compound query such as Year::2000 Medium::Flyer + + +def unpack_response(response): + # printout is ordered dict + d = {} + printouts = response['printouts'] + page = response['fulltext'] + d['page'] = page + for prop in printouts: + p_item = answer['printouts'][prop] + for prop_val in p_item: + if isinstance(prop_val, dict) is False: + d[prop] = prop_val + else: + # if len(prop_val) > 0: + props = list(prop_val.keys()) + if 'fulltext' in props: + val = prop_val.get('fulltext') + elif 'timestamp' in props: + val = datetime.fromtimestamp(int(prop_val.get('timestamp'))) + else: + val = list(prop_val.values())[0] + d[prop] = val + return(d) + + +for answer in site.ask(query): + print(answer, answer.keys()) + # print('printouts:', answer['printouts']['Title']) + printout_dict = unpack_response(answer) + pprint(printout_dict) + + + + +