import os, json from mwclient import Site from pprint import pprint from jinja2 import Template from functions import pandoc, page_props site = Site(host='hub.xpub.nl/sandbox', path='/itchwiki/') wd = os.path.dirname(os.path.abspath(__file__)) # working directory imgdir = os.path.join(wd, 'images') imgsjson_fn = os.path.join(wd, 'images.json') with open(imgsjson_fn, 'r') as imgsjson_file: images_info = json.load(imgsjson_file) static_html = os.path.join(wd, 'static_html') os.makedirs(static_html, exist_ok=True) # create images/ dir 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 page_html_template = ''' {{title}}

{{ title }}

{{ content }}
''' page_template = Template(page_html_template) for img_info in images_info.values(): print(img_info) page_name = img_info['name'] page = site.pages[page_name] # print(page) # pprint(page.__dict__) # print(dir(page)) pagetext = page.text() pageproperties = page_props(wikicontent=pagetext) print(pageproperties) if pageproperties.get('Title'): pagetext_html = pandoc(pwd=wd ,content=pagetext, format_in='mediawiki', format_out='html') # print('pagetext', pagetext) # print('pagetext_html', pagetext_html) page_html = page_template.render(title=pageproperties.get('Title'), date=pageproperties.get('Date'), imgsrc=os.path.join(imgdir, img_info.get('filename')), content=pagetext_html, part=pageproperties.get('Part'), partof=pageproperties.get('Partof')) htmlpage_fn = "{}_{}.html".format( pageproperties.get('Title').replace(" ", ""), pageproperties.get('Part').zfill(3) ) print(htmlpage_fn) with open(os.path.join(static_html, htmlpage_fn), 'w') as htmlfile: htmlfile.write(page_html)