diff --git a/wiki/macro/PagesClubs.py b/wiki/macro/PagesClubs.py
index 10846f29..93a230e0 100644
--- a/wiki/macro/PagesClubs.py
+++ b/wiki/macro/PagesClubs.py
@@ -1,87 +1,19 @@
# -*- encoding: iso-8859-15 -*-
import os
-
-class account:
- """Classe représentant la page perso d'un club"""
-
- def __init__(self, login):
- """Instanciation avec le `login' du club"""
- self.login = login
-
- _info = None
- def info(self, champ):
- """Retourne le contenu du champ `champ' dans le fichier info"""
- if self._info == None:
- try:
- lignes = file("/home/club/%s/.info" % self.login)
- except IOError:
- lignes = []
-
- # self._info est un dictionnaire qui reprend le contenu du .info
- self._info = dict(map(lambda z: (unicode(z[0].lower(),"iso-8859-15"),
- unicode(z[1],"iso-8859-15")),
- filter(lambda w: len(w) == 2 and len(w[1]),
- map(lambda x: map(lambda y: y.strip(),
- x.split(":")),
- lignes))))
- print self._info
-
- if self._info.has_key(champ.lower()):
- return self._info[champ.lower()]
- else:
- return u""
-
- def chemin(self):
- """Chemin vers le www"""
- return u"/home/club/%s" % self.login
-
- def url(self):
- """URL vers la page du club"""
- return u"http://clubs.ens-cachan.fr/%s/" % self.login
-
- def logo(self):
- """URL du logo s'il y en a un"""
- if self.info("logo"):
- # Le logo peut être en absolu ou en relatif
- if self.info("logo").startswith("/home/club%s" % self.login):
- logo = self.info("logo").replace("/home/club/%s" % self.login, "")
- else:
- logo = self.info("logo")
- if os.path.isfile("/home/club/%s/%s" % (self.login, logo)):
- return u"%s%s" % (self.url(), logo)
- return u"http://perso.crans.org/pageperso.png"
-
- def __str__(self):
- """Renvoie le code HTML correspondant au fichier .info"""
- html = [ u'
' ]
- return u'\n'.join(html)
+import PagesPerso
def comptes():
"""Retourne la liste des comptes"""
-
-def execute(macro, args):
-
- # La liste des comptes :
- dirs = filter(lambda x: os.path.isdir(u"/home/club/%s" % x),
+ return filter(lambda x: os.path.isdir(u"/home/club/%s" % x) and not os.path.islink(u"/home/club/%s" % x),
os.listdir(u"/home/club"))
- dirs.sort()
- html = u"""
- """
+def url(self):
+ """URL vers la page perso"""
+ return u"http://clubs.ens-cachan.fr/%s/" % self.login
- for d in dirs:
- html = u"%s\n%s" % (html, account(d).__str__())
-
- html += u'
'
- return html
+PagesPerso.comptes = comptes
+PagesPerso.account.home = "/home/club"
+PagesPerso.account.www = ""
+PagesPerso.account.url = url
+execute = PagesPerso.execute
diff --git a/wiki/macro/PagesPerso.py b/wiki/macro/PagesPerso.py
index 3100af18..6cf053a9 100644
--- a/wiki/macro/PagesPerso.py
+++ b/wiki/macro/PagesPerso.py
@@ -4,17 +4,22 @@ import os
class account:
"""Classe représentant la page perso d'une personne"""
-
+
+ home = "/home"
+ www = "/www"
+
def __init__(self, login):
"""Instanciation avec le `login' de la personne"""
self.login = login
+ self.home = "%s/%s" % (self.home, login)
+ self.www = self.www
_info = None
def info(self, champ):
"""Retourne le contenu du champ `champ' dans le fichier info"""
if self._info == None:
try:
- lignes = file("/home/%s/.info" % self.login)
+ lignes = file("%s/.info" % self.home)
except IOError:
lignes = []
@@ -34,7 +39,7 @@ class account:
def chemin(self):
"""Chemin vers le www"""
- return u"/home/%s/www" % self.login
+ return u"%s%s" % (self.home, self.www)
def url(self):
"""URL vers la page perso"""
@@ -44,11 +49,11 @@ class account:
"""URL du logo s'il y en a un"""
if self.info("logo"):
# Le logo peut être en absolu ou en relatif
- if self.info("logo").startswith("/home/%s/www" % self.login):
- logo = self.info("logo").replace("/home/%s/www/" % self.login, "")
+ if self.info("logo").startswith(self.chemin()):
+ logo = self.info("logo").replace("%s/" % self.chemin(), "")
else:
logo = self.info("logo")
- if os.path.isfile("/home/%s/www/%s" % (self.login, logo)):
+ if os.path.isfile("%s/%s" % (self.chemin(), logo)):
return u"%s%s" % (self.url(), logo)
return u"http://perso.crans.org/pageperso.png"
@@ -65,12 +70,12 @@ class account:
def comptes():
"""Retourne la liste des comptes"""
+ return filter(lambda x: os.path.isdir(u"/home/%s/www" % x) and not os.path.islink(u"/home/%s/www" % x),
+ os.listdir(u"/home"))
+
def execute(macro, args):
-
- # La liste des comptes :
- dirs = filter(lambda x: os.path.isdir(u"/home/%s/www" % x),
- os.listdir(u"/home"))
+ dirs = comptes()
dirs.sort()
html = u"""