# -*- coding: utf-8 -*- """ MoinMoin - LostSoulsInGroups macro List all items in custom groups that do not have user accounts (either haven't registered yet or have been deleted or there's a typo) @copyright: 2007 Alexander "Loki" Agibalov @license: GNU GPL, see COPYING for details. changes: 12.2007 - conversion to new syntax by Bolesław Kulbabiński """ from MoinMoin import wikiutil, user from MoinMoin.Page import Page from MoinMoin.PageEditor import PageEditor import re, sys def macro_LostSoulsInGroups(macro, args): request = macro.request _ = macro.request.getText sRet = u"

Éléments dans des groupes custom qui ne correspondent pas à un compte wiki :

" sRet = sRet + u"" userlist = [] lostsouls = {} for uid in user.getUserList(request): userlist.append(user.User(request, uid).name) isgroup = request.cfg.cache.page_group_regex.search grouppages = request.rootpage.getPageList(user='', filter=isgroup) srch = re.compile("^ \* [^ ]*", re.M) for pg in grouppages: pged = PageEditor(request, pg) pagelines = pged.getlines() for lin in pagelines: srchS = srch.match(lin) if srchS: st = srchS.group() st = st[3:] try: usr = userlist.index(st) except ValueError: if lostsouls.has_key(pg): temp_lst = lostsouls[pg] temp_lst.append(st) lostsouls[pg] = temp_lst else: lostsouls[pg] = [st] for k, v in lostsouls.iteritems(): st = u'' % (Page(request, k).link_to(request), ", ".join(v)) sRet = sRet + st sRet = sRet + "
%s%s
" return macro.formatter.rawHTML(sRet) def execute(macro, args): try: return wikiutil.invoke_extension_function( macro.request, macro_LostSoulsInGroups, args, [macro]) except ValueError, err: return macro.request.formatter.text( "<>" % err.args[0])