import datetime

import pywikibot
site = pywikibot.Site()

def MovedPagesGenerator(ts, old_ts):
    request = pywikibot.data.api.ListGenerator(site=site, listaction='logevents', letype='move', lestart=ts, leend=old_ts, lelimit='max')
    for item in request:
        if item['ns'] == 0:
            yield {'old': item['title'], 'new': item['move']['new_title'], 'user': item['user'], 'comment':item['comment']}


def SubPageGenerator(name):
    request = pywikibot.data.api.ListGenerator(site=site, listaction='allpages', apprefix=name, apnamespace=1, aplimit='max')
    return [item['title'] for item in request]

def create_timestamp(old=False):
    now = datetime.datetime.utcnow() - datetime.timedelta(days=2)
    if old:
        now -= datetime.timedelta(days=1)
    return now.strftime('%Y-%m-%dT%H:00:00Z')


def main():
    #get page list
    ts = create_timestamp()
    old_ts = create_timestamp(old=True)
    gen = MovedPagesGenerator(ts, old_ts)
    logtext = ''
    for item in gen:
        log = False
        old = item['old']
        new = item['new']
        user = item['user']
        cmt = item['comment']
        new_page = pywikibot.Page(site, new)
        if not new_page.toggleTalkPage().exists(): #skip if no talkpage exists
            continue
        subpages = SubPageGenerator(old+'/') #skip if no subpages
        if not subpages:
            continue
        summary = "Bot: Finishing move by [[User:%s]] (%s)" % (user, cmt)
        done = []
        for pg in subpages:
            wk_pg = pywikibot.Page(site, pg)
            if wk_pg.toggleTalkPage().exists(): #has a mainsapce page, therefore a false positive
                continue
            n_title = pg.replace(old, new)
            wk_pg.move(n_title, summary)
            done.append([pg, n_title])
        print u'Will log %s --> %s' % (old, new)
        logtext += u'* [[%s]] --> [[%s]] by [[User:%s|]]\n' % (old, new, user)
        for i in done:
            logtext += u'** [[%s]] --> [[%s]] finished by [[User:Ehime|]]\n' % (i[0], i[1])
    if not logtext:
        print u'Nothing was moved, won\'t update the log.'
        return
    p = pywikibot.Page(
        site, u'User:Ehime/Logs')
    current_text = p.get()
    newtext = current_text + '\n' + logtext
    p.put(newtext, u'BOT: Updating log')
  File "<ipython-input-1-de232ef1a6c2>", line 51
    print u'Will log %s --> %s' % (old, new)
                              ^
SyntaxError: invalid syntax