import urllib2, json, pprint, re import xml.etree.ElementTree as ET import subprocess, shlex sid = '1234' useragent = "Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101" endpoint = "http://pzwiki.wdka.nl/mw-mediadesign/api.php?format=json&" # API MODULES def api_request(action, pagename): #get page: content, metadata, images, imageifnp url = endpoint + action.format(pagename) request = urllib2.urlopen(url) jsonp = json.loads(request.read() ) json_dic= (jsonp.get('query').get('pages')) # pprint.pprint( json_dic ) page_id = json_dic.keys()[0] page_content = json_dic.get(page_id) print 'API Resquest URL:', url return page_content def api_page(pageid, query): print 'API query:', query if query == 'content': api_response = api_request('action=query&pageids={}&prop=revisions&rvprop=content', pageid) response = ((api_response.get('revisions'))[0])['*'] elif query == 'metadata': response = api_request('action=query&pageids={}&prop=info', pageid) elif query == 'articleimgs': response = api_request('action=query&pageids={}&prop=images', pageid) elif query == 'imageinfo': pagename = pageid # in imageinfo titles are used instead of id response = api_request('action=query&titles=File:{}&prop=imageinfo&iiprop=url&iiurlwidth=500', pagename) # iiurlwidht dermines with of thumbnail return response def api_thumb_url(filename): '''get thumbnail url of image''' page_content_dict = api_page(filename, 'imageinfo') if 'imageinfo' in page_content_dict.keys(): thumburl = ((page_content_dict.get('imageinfo'))[0].get('thumburl')) return thumburl # http://pzwiki.wdka.nl/mw-mediadesign/api.php?format=json&action=query&titles=File:2x2 905.jpg&prop=imageinfo&iiprop=url&iiurlwidth=300 # http://pzwiki.wdka.nl/mw-mediadesign/api.php?format=json&action=query&pageids=10603&prop=revisions&rvprop=content # http://pzwiki.wdka.nl/mw-mediadesign/api.php?format=json&action=query&titles=Graduation_Website_Braindump&prop=revisions&rvprop=content # XML MODULES def write_html_file(html_tree, filename): doctype = "" html = doctype + ET.tostring(html_tree, encoding='utf-8', method='html') edited = open(filename, 'w') #write edited.write(html) edited.close() # Conversion Modules def pandoc2html(mw_content): if mw_content: mw_content = mw_content.encode('utf-8') # convert from mw to html args_echo =shlex.split( ('echo "{}"'.format(mw_content)) ) args_pandoc = shlex.split( 'pandoc -f mediawiki -t html5' ) p1 = subprocess.Popen(args_echo, stdout=subprocess.PIPE) p2 = subprocess.Popen(args_pandoc, stdin=p1.stdout, stdout=subprocess.PIPE) html = (p2.communicate())[0] return html