# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - RecentlyCreatedPages Macro

    Show a list of recently created pages.

    @copyright: 2007 by Christian Groh < chr dot groh at googlemail dot com >
    @license: GNU GPL

"""

import time
from MoinMoin import wikiutil
from MoinMoin.logfile import editlog
from MoinMoin.util import timefuncs
from MoinMoin.Page import Page

Dependencies =["namespace"]

def execute(macro, args):

    request = macro.request

    # get param
    try:
        numberOfPages = int(args)
    except (KeyError, ValueError, TypeError):
        numberOfPages = 5

    # get data
    log = editlog.EditLog(request)
    counter = 0

    html=[]

    for line in log.reverse():
        page = Page(request, line.pagename)

        if not request.user.may.read(line.pagename):
            continue

        if not page.isStandardPage(includeDeleted=False):
            continue

        if line.action != 'SAVENEW':
            continue

        link = page.url(request)
        date = time.strftime("%d.%m.%y", timefuncs.tmtuple((wikiutil.version2timestamp(line.ed_time_usecs))) ) # UTC

        html.append(u'%s&nbsp;&nbsp;<a href="%s">%s</a><BR>' % (date, link, line.pagename))

        counter += 1
        if counter >= numberOfPages:
            break

    return u''.join(html)
