[wiki/macro] LostSoulsInGroups : gestion des cas [[|]]
This commit is contained in:
parent
f8e0ced954
commit
d0d7f71576
1 changed files with 13 additions and 3 deletions
|
@ -31,15 +31,25 @@ def macro_LostSoulsInGroups(macro, args):
|
|||
isgroup = request.cfg.cache.page_group_regex.search
|
||||
grouppages = request.rootpage.getPageList(user='', filter=isgroup)
|
||||
|
||||
srch = re.compile("^ \* [^ ]*", re.M)
|
||||
# Expression matchant un WikiNom
|
||||
wikiname_expr = "[^][| ]+"
|
||||
# Cas où le wikinom est tout seul
|
||||
wikiname_alone = "(?P<wikiname>%s)" % wikiname_expr
|
||||
# Cas où il est avec des [[]], éventuellement avec un |
|
||||
wikiname_aliased = "\[\[([^|]+\|)?(?P<wikiname2>%s)\]\]" % wikiname_expr
|
||||
# Fusion des cas
|
||||
wikiname = "(%s|%s)" % (wikiname_alone, wikiname_aliased)
|
||||
# Contexte
|
||||
srch = "^ \* %s" % wikiname
|
||||
srch = re.compile(srch)
|
||||
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:]
|
||||
dic = srchS.groupdict()
|
||||
st = dic["wikiname"] or dic["wikiname2"]
|
||||
try:
|
||||
usr = userlist.index(st)
|
||||
except ValueError:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue