Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Re: Re: creation liste

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: adresse@cachée
  • To: adresse@cachée
  • Subject: Re: [sympa-fr] Re: Re: creation liste
  • Date: Fri, 06 Dec 2002 09:18:22 +0100

On 6 Dec 2002 at 8:30, Aumont - Comite Reseaux des U wrote:

> Pour de sombre raisons de programmation orientée objet, Sympa ne peut pas
> actuellement créer dynamiquement la liste des proprio de listes.
>

J'ai écrit (j'ai fini hier) un petit script en perl qui récupére toutes les
adresses mails (triées et avec élimination des doublons) contenues dans
les fichiers config et qui sert de fichier include pour la liste listmestres.

Bien sûr, je récupère de cette façon les adresses des propriétaires et des
modérateurs, mais je pense qu'il est possible de l'améliorer... (je débute
en PERL...)

Le tout mis dans la crontab...

Voici le script :

#!/usr/bin/perl

# lecture du répertoire pour récupérer la liste des listes
opendir LISTES, "/home/sympa/expl" or die "Impossible d'ouvrir le répertoire";
@listes = readdir LISTES;

# ouverture du fichier de sortie
# open (SORTIE, "+>/home/sympa/expl/listmestres/membres.ini") or die
"Impossible de créer le fichier";

open (SORTIE, ">/home/sympa/expl/listmestres/membres.ini") or die "Impossible
de créer le fichier";
# ouverture du fichier de config pour chaque liste et extraction des adresses
e-mail contenues dedans
foreach $liste (@listes) {
open (ENTREE,"/home/sympa/expl/$liste/config") ;
while (<ENTREE>) {
$Ligne=<ENTREE>;
# si la ligne contient une adresse e-mail alors récupération de
l'adresse
if ($Ligne =~ m/\@/)
{
@Ligne = split ' ', $Ligne;
print SORTIE @Ligne[1]."\n";
}
}
close ENTREE;
}
close SORTIE;
close LISTES;
close ENTREE;

# tri du fichier de sortie
open (ENTREE,"/home/sympa/expl/listmestres/membres.ini");
@mails = <ENTREE>;
close ENTREE;
@t_mails = sort @mails;
$temp1='';
$temp2='';
open (SORTIE,">/home/sympa/expl/listmestres/membres");
for (@t_mails)
{
$temp1=$_;
if ($temp1 ne $temp2) {print SORTIE $temp1;}
$temp2=$temp1;

}
close SORTIE;
#FIN


Dans le même ordre d'idée, j'ai créé une liste de l'ensemble des inscrits au
serveur en utilisant la requête suivante pour la source de données :

SELECT email_user FROM user_table

sur la base sympa


--------------------------------------------------------
Philippe Young
Gestionnaire du robot de listes de l'académie de Créteil




Archives gérées par MHonArc 2.6.19+.

Haut de le page