Pour les modérateurs


Clonage de ce site

Vous êtes modérateur d'un groupe Freecycle et vous désirez avoir un site similaire à celui-ci, que vous pourrez personnaliser ? Faites-nous signe, et nous serons contents de créer un clone de ce site qu'il ne vous restera plus qu'à éditer selon vos préférences ! Ce clone sera juste un point de départ, vous pourrez ajouter ou supprimer des pages, modifier l'ordre du menu à gauche de l'écran, changer les couleurs, etc.

 
Quel est le "Clone du jour" ?
Le même qu'hier.

Comment faire le ménage parmi les utilisateurs marqués "bouncing"

Lorsque Yahoo! Group fait suivre les messages envoyés à la liste à chacun des membres, il est possible que cela ne se passe pas bien. Par exemple il se peut que l'adresse email de l'abonné ne soit plus valide, ou bien ait dépassé son quota alloué.

Dans ce cas, Yahoo! cesse d'envoyer les courriers temporairement et, peu après, rangera le compte en question dans la liste des "bouncing members" (je ne sais pas comment cela a été traduit sur Yahoo! Groupe en français mais on pourrait parler des "membres pour lesquels il y a eu un renvoi à l'expéditeur"). Ces comptes ne reçoivent donc plus les courriers de la liste, bien qu'ils en soient toujours membres.

Dans le cas de Freecycle Paris, le ménage n'avait jamais été fait sur cette liste et elle comptait donc plus de 2000 adresses fin 2009. Il a fallu faire le ménage, et surtout décider qui garder et qui supprimer de la liste. Voici donc la méthode utilisée, qui peut s'avérer utile pour gérer les "bouncings" de votre groupe.

Méthodologie

Avant-propos : personne n'est obligé de suivre cette méthode. Vous pouvez nous contacter pour donner votre avis.

La première étape consiste à passer en revue tous les compte en état de "bounce" et de faire l'une des trois actions suivantes :
  1. L'adresse mail n'est plus valable : on peut supprimer le compte.
  2. L'abonnement peut être réactivé : on le réactive manuellement.
  3. Dans tous les autre cas : on envoie une demande de réactivation.
Ensuite on attend, par exemple 15 jours à 3 semaines, et on recommence. Mais cette fois-ci, on constatera qu'on aura beaucoup plus de comptes réactivables immédiatement ou dont l'adresse email est invalide. Selon le cas, on réactivera ou retirera le membre de la liste. Pour ceux pour qui la réactivation n'a rien donné (donc 15 jours à 3 semaines plus tard), on les supprime. À la fin, il ne reste donc que les comptes qui se sont mis en état de "bounce" récemment.

Il est donc important d'envoyer des demandes de réactivation car c'est le délai (d'inactivité) depuis cette date qui va déterminer si le membre sera retiré de la liste ou pas.

Une liste non exhaustive de cas ci-dessous.

Cas simples

Les cas simples sont facilement reconnaissables, et l'action triviale : par exemple, on supprimera un abonné de la liste si son adresse email n'existe plus chez son opérateur.

L'adresse email n'existe plus

Voici ce qui est marqué en bas de la page : erreur du type 554. Le message varie selon que le compte était hébergé par yahoo! ou bien par un autre opérateur.

Par exemple, une dizaine de comptes @caramail.fr/com ont été facilement détectés dans ce cas-là.


Le compte est ré-activable
Cela arrive dans le cas où Yahoo! se rend compte que l'adresse email est redevenue fonctionnelle. Par exemple, comme ci-dessous suite à une demande de reactivation manuelle, le message a été accepté par la messagerie distante.
Opération : réactiver le compte manuellement.

Le compte n'a jamais reçu de demande de réactivation

Cela se voit car le nombre est à 0.
Décision : envoyer une demande de réactivation manuellement.

Cas complexes

Le compte a déjà reçu des demandes de réactivation

Dans le cas ci-dessous, 5 demandes de réactivation ont été reçues, la dernière datant de 2007, soit il y a 3 ans.
Décision : réenvoyer une demande de réactivation manuellement.
Alternative : supprimer, considérant que le compte est resté depuis trop longtemps inactif.

La réactivation récente est restée sans suite

Dans le cas ci-dessous, la demande de réactivation a été faite 3 semaines auparavant, et toujours pas de réponse.
Décision : suppression du membre.
Alternative : seconde chance, nouvelle demande de réactivation.

Quelques autres cas plus ou moins obscurs

Pas de serveurs de mails définis pour le domaine

Action : réactivation manuelle, le problème est peut-être temporaire.
Alternative : suppression.

Boîte aux lettres pleine

Action : réactivation manuelle, le problème est peut-être temporaire.
Alternative : suppression car l'utilisateur ne se sert plus de cette boîte.

Boîte aux lettres bloquée

Message retourné par les serveurs de Free.fr par exemple (il semblerait qu'il faille envoyer des mails depuis ce compte Free pour débloquer la situation).
Action : suppression.
Alternative : réactivation, et attendre 15 jours.

Alias inconnu ou illégal

Souvent retourné quand le compte utilisateur a été fermé. Notez que c'est le même code d'erreur (5.1.1) que le premier de la liste.
Action : suppression.

Le domaine a disparu (?)

Par exemple @machintrucbidule.fr n'existe plus, ou il n'y a plus moyen de contacter ses serveurs de mails.
Action : suppression (?)

L'utilisateur refuse volontairement les courriers de la liste

Action : suppression.


Précautions à prendre

Si vous avez des centaines d'abonnés en mode "bouncing", vous pouvez être tenté de les traiter tous le plus vite possible. Évidement, la méthode la plus rapide consiste à tous les supprimer, mais nous pensons que certains ont juste oublié qu'ils étaient abonnés à Freecycle(R), et seront contents de refaire partie du réseau.

Une méthode manuelle mais "rapide" consiste à cliquer sur tous les liens 'view profile" de chaque adresse listée sur la page des "bouncing", en ouvrant un onglet du navigateur à chaque fois (click bouton du milieu), de faire ça pour 3 pages (soit 30 comptes), puis de passer d'onglet en onglet et de choisir l'action adéquate en fonction du profil du compte (cf. ci-dessus).

Sauf que comme ça va un peu vite, parce que, disons-le franchement, on ne prend aucun risque (au pire on supprime un gars qui de toute façon ne reçoit plus les courriers de la liste), Yahoo! risque de ne pas aimer ça. Et dans ce cas il affiche une erreur "999" et vous dit que vous n'avez plus accès au groupe du tout. Heureusement, la suspension n'est que temporaire (quelques heures), mais c'est tout de même handicapant.

Il y a deux solutions qui fonctionnent bien :
  1. configurer un serveur proxy dans votre navigateur. Si vous êtes frappé par l'erreur 999, supprimez le proxy, et vous aurez de nouveaux accès au groupe.
  2. modérer lentement... sur la distance, en ne faisant pas plus de 100 comptes toutes les quelques heures.

Programme (script) pour la réactivation automatique des membres

Si vous êtes arrivés jusqu'à cette ligne, c'est que vous avez un réel problème avec le nombre de comptes dans l'état "bouncing". J'ai développé un petit programme qui parcourt la liste et envoie automatiquement une demande de réactivation ou réactive le compte si cette option est disponible.
Pour éviter l'erreur "999", le programme avance lentement. Cf. la fonction sleep().

// Debounce: Send reactivation requests to all the bouncing users.
// version 1.0
// Copyleft Oct. 2009 Stéphane Tsacas <Stephane.Tsacas+debounce@gmail.com>
// Disclaimer: use at your own risk. This is my first quick&dirty Chickenfoot hack,
// it might not be very robust. http://groups.csail.mit.edu/uid/chickenfoot/index.php
// Known bugs:
// - no test for the last page, script will exit with an "error"
// - go sloooowly or you'll get the 999 error from Yahoo! Maybe the sleep() should last even longer.
// - need to add a firstPageNumber parameter
// - you need to login manually before you can proceed.//
// Only parameters which can be changed are the 3 variables value below:// The first bounce page

var startPage = "http://groups.yahoo.com/group/freecycleparis/members?group=bounce&query=S%25";// The text of the link which goes to the user bounce history (bounce status column)
var historyLinkText = "View History";// The text of the link to move to the next page (top right)
var nextButton = "Next >";

var xbutton;
var xpage;
var vhlink;

go(startPage);

for (;;)
{
    // Find the next page "next >" text first.
    xpage = find(nextButton);

    // List of all View History links on that page.
    for (vhlink = find(historyLinkText); vhlink.hasMatch; vhlink = vhlink.next)
{
   // Visit the URL
   go(vhlink.element.childNodes[3]);
   wait();
   sleep(7.3);
   // List of all the buttons of the page
   for (xbutton = find("button"); xbutton.hasMatch; xbutton = xbutton.next)
{
   // If it is an Unbounce button
   if (xbutton.element.name == "Unbounce")
{
   click(xbutton.element.value); // Click it
   output(xbutton.element.value);
   break; // Exit this loop, go to next user
}
}
}
    // We finished all this page View History links, we have saved the search
    // to the link to the next page, extract URL. If not, we're done.
    if (! xpage.hasMatch
|| xpage.element.childNodes.length < 7
|| xpage.element.childNodes[7].tagName != "A") // Must match text AND be a link
break;
    output(xpage.element.childNodes[7]);
    go(xpage.element.childNodes[7]);
    wait();
    sleep(11.52);
}
output("done");


Programme (script) pour la modération de tous les utilisateurs


Les actions de ce programme visent à mettre en mode modéré chaque utilisateur. Les emails des membres doivent être stockés dans un fichier référencé par la variable file.
Notez les temps d'attente assez longs entre chaque utilisateur.
include("fileio.js");

var prefix="http://groups.yahoo.com/group/freecycleparis/members?query=";
var file = "file:///C:/Documents%20and%20Settings/slt/Mes%20documents/Downloads/fcmembertestlist.txt";

function zzz(min,max)
{
var x = Math.random() * 1000;
sleep((x % (max - min + 1)) + min);
}

members = read(file);
members = members.split("\n");

for (m in members)
{
if (members[m].length == 0) break;
url = prefix + members[m];
output(url);

go(url);
wait(); zzz(2, 5);
click("second Edit Membership");
wait(); zzz(2, 6);
click("Edit");
wait();
click("Messages posted by this member are moderated.");
wait(); zzz(2, 7);
click("Save Changes button");
wait(); zzz(2, 7);
click("Save Changes button");
wait(); zzz(2, 5);
}
output("done");







Comments