[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
|
isgroup = request.cfg.cache.page_group_regex.search
|
||||||
grouppages = request.rootpage.getPageList(user='', filter=isgroup)
|
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:
|
for pg in grouppages:
|
||||||
pged = PageEditor(request, pg)
|
pged = PageEditor(request, pg)
|
||||||
pagelines = pged.getlines()
|
pagelines = pged.getlines()
|
||||||
for lin in pagelines:
|
for lin in pagelines:
|
||||||
srchS = srch.match(lin)
|
srchS = srch.match(lin)
|
||||||
if srchS:
|
if srchS:
|
||||||
st = srchS.group()
|
dic = srchS.groupdict()
|
||||||
st = st[3:]
|
st = dic["wikiname"] or dic["wikiname2"]
|
||||||
try:
|
try:
|
||||||
usr = userlist.index(st)
|
usr = userlist.index(st)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue