"""

"""

   1 import string, re, time, os
   2 from MoinMoin.Page import Page
   3 from MoinMoin import user, config, wikiutil
   4 
   5 def execute(macro, text, alert_re=re.compile(r'(<!>|/!\\)')):
   6     pages = wikiutil.getPageList(config.text_dir)
   7     l = []
   8     for page in pages:
   9         if len(page)>3 and string.lower(page[:4]) == 'help':
  10             continue
  11         page = Page(page)
  12         if alert_re.search(page.get_raw_body()):
  13             l.append((os.path.getmtime(page._text_filename()), page))
  14     l.sort()
  15     l.reverse()
  16     ret = ["<table border><tr><th>Page Name</th><th>Last Modified</th></tr>"]
  17     tnow = time.time()
  18     for mod, page in l:
  19         tdiff = int(tnow - float(mod)) / 60
  20         if tdiff < 1440:
  21             mod = "%dh&nbsp;%dm&nbsp;ago"%(tdiff/60, tdiff%60)
  22         elif tdiff < 43200:
  23             mod = "%dd&nbsp;%dh&nbsp;ago"%(tdiff/1440, (tdiff/60)%24)
  24         else:
  25             time_tuple = user.current.getTime(mod)
  26             mod = time.strftime("%D %M %Y", time_tuple)
  27         ret.append('<tr><td><a href="%s">%s</a></td><td>%s</td></tr>'%(
  28             page.page_name, page.split_title(), mod))
  29     ret.append("</table>")
  30     return string.join(ret, "\n")

MoinMoin: macro/AttentionPages.py (last edited 2007-10-29 19:13:34 by localhost)