CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

[Semi-HS] Administration scriptée

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 15:43:52

A vrai dire, si l´interface d´administration était bien conçue, je n´aurais pas à écrire de tels programmes. Une nouveauté ? Je ne pense pas, mais l´approche est assez rare. Il y a déjà un programme qui a fonctionnement similaire : c´est celui qui fait les statistiques des différents forums (Sauf que lui est écrit en C + Lex&Yacc).

Uriel99
Uriel99
Niveau 10
23 décembre 2005 à 20:43:49

J´avoue que je comprends pas trop comment ça fonctionne, mais l´interet je le vois bien: entre autres chsoes, si un troll squatte le forum, j´ai pas besoin d´ouvrir tous les sujets pour voir ou il a trollé, je rentre son nom, et le programme me renvoie la liste...

Ca promet :)

leolio24
leolio24
Niveau 9
23 décembre 2005 à 21:18:13

je connais pas vraiment Prel mais ca me fait vaguement penser a du script sous linux!en tout cas sympa ton truc hitman, et encore mieux si ca peut s´appliquer au forum!
(bon ok mon post est un peu HS, disons que c´est un post d´encouragement:))

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:21:10

Voilà une première version fonctionnelle !

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:29:31
  1. !/usr/bin/perl -w

use LWP::UserAgent;
use HTML::Form;
use LWP::Simple;

sub exploreMessages {
my ($page, $titre, $numeroPage, $lien) = @_;
my $message = "";
my $auteur = "";

$page =~ s/\n//g;

while ( $page =~ m°<tr><td width="50%"><span class="msg_auteur">(.*?)</table></form>°g ) {
$message = $1;
$message =~ m°<input type="hidden" name="pxo" value="(.*?)">°;
$auteur = $1;
$message =~ m°<td colspan="2" class="message_forum">(.*?)</tr>°;
$message = $1;
$message =~ s/é/é/g;
$message =~ s/´/´/g;
$message =~ s/&eagrave;/è/g;
$message =~ s/à/à/g;
$message =~ s/<BR>/ /g;
$message =~ s/\n/ /g;
$message =~ s/\r/ /g;
$message =~ s/ +/ /g;

#Exemple de filtre :

if ($auteur =~ m°bliz+ar°i) {
print "Boulet sptotted : $auteur, $titre, page $numeroPage\n";
print ETAT "Boulet sptotted : $auteur, $titre, page $numeroPage, Lien direct = $lien\n";
}

}
}

sub exploreTopic {
my ($lien, $titre) = @_;

my $resteUnePage = 0;

my $question = HTTP::Request->new(GET=>"$lien");
my $reponse = $userAgent->request($question);
my $page = $reponse->content;

#print "Feuille n°1\n";
exploreMessages($page, $titre, 1, $lien);

my $numeroPage=2;
while ( $page =~ m°<td align="right"><p><a href="http://www.jeuxvideo.com/forums/(.*?)"> Page suivante ° ) {

$lien = "http://www.jeuxvideo.com/forums/$1";
#print "Feuille n°$numeroPage\n";
$numeroPage++;
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;

exploreMessages($page, $titre, $numeroPage, $lien);
$resteUnePage = 1;

}

if ($resteUnePage == 1) {
$page =~ m°<a href="http://www.jeuxvideo.com/forums/(.*?)"> Derni°;
$lien = "http://www.jeuxvideo.com/forums/$1";
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;
exploreMessages($page, $titre, $numeroPage+1, $lien);
}

}

sub parcoursPages {
my ($adresse,$profondeur) = @_;

my $numeroPage = 1;

while ($profondeur>0) {
print "Exploration de la page $numeroPage\n";
my $question = HTTP::Request->new(GET=>"$adresse");
my $reponse= $userAgent->request($question);
my $page = $reponse->content;
$page =~ s/\n//g;

while ( $page =~ m°<a
href="http://www.jeuxvideo.com/forums/1-9725-(.*?)
</tr>°g ) {
$topic = $1;
$topic =~ s/é/é/g;
$topic =~ s/´/´/g;
$topic =~ s/&eagrave;/è/g;
$topic =~ s/à/à/g;
$topic =~ s/">/\n/g;
$topic =~ s°</a></td><td><p>°\n°g;
$topic =~ s°</a></td><td><p class="topic_mod°°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td>°\n°g;
$ligne =
"http://www.jeuxvideo.com/forums/1-9725-$topic\n";

my($lien, $titre, $auteur, $posts, $date) = split(/\n/, $ligne);
print "Parcours du topic <$titre> créé par $auteur\n";
exploreTopic("$lien", "$titre");
}
$profondeur--;
$page =~ m°<td align="right"><p><a
href="http://www.jeuxvideo.com/forums/0-9725-(.*?)
"> Page suivante°;
$adresse = "http://www.jeuxvideo.com/forums/0-9725-$1";
$numeroPage++;
}
}

my $adresse =
´http://www.jeuxvideo.com/forums/0-9725-0-1-0-1-0-
0.htm´;
$userAgent = LWP::UserAgent->new(agent=>´VilZilla/1.00 [fr] (X11; I; Linux 4.0.0 i686; Nav)´);

open(ETAT, ">ETAT.TXT");
parcoursPages($adresse, 20);
close(ETAT);

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:31:16

Il y a comme un bug, le pied de page de JV a dégagé...

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:31:52

C´est bon, il est revenu...

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:41:55

Tu peux également filtrer :
- Le titre des topics
- Le contenu des messages
- Les intervenants

Donc, tu peux parfaitement récupérer la liste de ceux qui répondent régulièrement aux topics de trolling, par exemple.

leolio24
leolio24
Niveau 9
23 décembre 2005 à 21:47:12

re HS:a non vu comme ca ca ne ressemble plus du tout a du script de linux! (desolé et encore desolé pour mes messages qui ne servent a rien...)

Uriel99
Uriel99
Niveau 10
23 décembre 2005 à 21:47:28

Merci mais heu... Comment je l´utilise? ^^´

Autant je comprends grossierement les lignes de code (mes connaissances en scripts et programmation sont tres rudimentaires...), autant je ne sais pas comment utiliser ce code.

Je charge ça dans un interpreteur, un truc du genre? ^^´

désolé ...

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:51:01

Ouaip, il te faut un interpréteur perl. L´idéal, si tu as Linux, est de bosser sous Linux et d´installer tous les packages relatifs à perl, et surtout, LWP et HTML.

Normalement, sous Linux, une fois tout installé, il te suffira de faire, après lui avoir donné les droits d´exécution (chmod 700 nomduscript ou chmod +x nomduscript), ./nomduscript et ça fonctionnera.

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:52:05

Au fait, dans quel domaine bosses-tu / étudies-tu ?

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 21:59:30

Je teste un truc...

Uriel99
Uriel99
Niveau 10
23 décembre 2005 à 22:00:34

J´ai pas mis Nux chez moi, je passe trop de temps à jouer... Et ma derniere experience avec une Debian 2.2 ne m´a pas laissé de souvenirs imperissables (sauf des emmerdes :rire: ). Faudrait vraimetn que j´y passe ceci dit :)

Bon je vais me chopper un interpreteur Perl sous windaube, ça doit se trouver ça :)

Sinon, sur le papier je suis technicien informatique et reseau, avec un beau DUT en genie des telecoms et reseaux... En pratique j´ai appris 3 fois plus de choses seul à bricoler qu´à l´école, parce que la formation "microsoft et cisco" c´est pas genial quand même... Surtout quand c´est fait par un prof qui a une semaine d´avance sur ses eleves (le prof de reseau en premiere année avait bac +13 en electronique mais c´etait une quiche en reseau, il confondait même la distance max de transmission entre deux points et sur un reseau complet...)

Donc voilà, techicien au rabais, vive le systeme éducatif français. M´enfin heureusement qu´on peut apprendre tout seul. Mais bon du coup je gere beaucoup mieux le hardware et l´administration windows (oxymore?) que le reste...

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 22:17:56

Oui, j´ai également connu ça, les profs complètement "outcast" ... Les pauvres... J´en profite pour poster une mise à jour et pour te conseiller de télécharger http://www.activestate.com/Products/ActivePerl/ :
Free et open source.

Pseudo supprimé
Pseudo supprimé 23 décembre 2005 à 22:18:45
  1. !/usr/bin/perl -w

use LWP::UserAgent;
use HTML::Form;
use LWP::Simple;

sub exploreMessages {
my ($page, $titre, $numeroPage, $lien) = @_;
my $message = "";
my $auteur = "";

$page =~ s/\n//g;

open(ETAT, ">>ETAT.TXT");
while ( $page =~ m°<tr><td width="50%"><span class="msg_auteur">(.*?)</table></form>°g ) {
$message = $1;
$message =~ m°<input type="hidden" name="pxo" value="(.*?)">°;
$auteur = $1;
$message =~ m°<td colspan="2" class="message_forum">(.*?)</tr>°;
$message = $1;
$message =~ s/é/é/g;
$message =~ s/´/´/g;
$message =~ s/&eagrave;/è/g;
$message =~ s/à/à/g;
$message =~ s/<BR>/ /g;
$message =~ s/\n/ /g;
$message =~ s/\r/ /g;
$message =~ s/ +/ /g;

#Exemple de filtre :
if ($auteur =~ m°hitman°i) {
print "Trouvé : $auteur dans le topic <$titre> à la page $numeroPage\n";
print( ETAT "Trouvé : $auteur dans le topic <$titre> à la page $numeroPage [Lien direct = $lien]\n");
}

}
close(ETAT);
}

sub exploreTopic {
my ($lien, $titre) = @_;

my $question = HTTP::Request->new(GET=>"$lien");
my $reponse = $userAgent->request($question);
my $page = $reponse->content;

#print "Feuille n°1\n";
exploreMessages($page, $titre, 1, $lien);

my $numeroPage=2;
while ( $page =~ m°<td align="right"><p><a href="http://www.jeuxvideo.com/forums/(.*?)"> Page suivante ° ) {

$lien = "http://www.jeuxvideo.com/forums/$1";
#print "Feuille n°$numeroPage\n";
$numeroPage++;
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;

exploreMessages($page, $titre, $numeroPage, $lien);

}

if ($page =~ m°<td align="right"><p><a href="http://www.jeuxvideo.com/forums/(.*?)"> Dernière page <°) {
$lien = "http://www.jeuxvideo.com/forums/$1";
print "Exploration de la dernière page : <$lien>...\n";
$question = HTTP::Request->new(GET=>"$lien");
$reponse = $userAgent->request($question);
$page = $reponse->content;
exploreMessages($page, $titre, $numeroPage, $lien);
}

}

sub parcoursPages {
my ($adresse,$profondeur) = @_;

my $numeroPage = 1;

while ($profondeur>0) {
print "Exploration de la page $numeroPage\n";
my $question = HTTP::Request->new(GET=>"$adresse");
my $reponse= $userAgent->request($question);
my $page = $reponse->content;
$page =~ s/\n//g;

while ( $page =~ m°<a
href="http://www.jeuxvideo.com/forums/1-9725-(.*?)
</tr>°g ) {
$topic = $1;
$topic =~ s/é/é/g;
$topic =~ s/´/´/g;
$topic =~ s/&eagrave;/è/g;
$topic =~ s/à/à/g;
$topic =~ s/">/\n/g;
$topic =~ s°</a></td><td><p>°\n°g;
$topic =~ s°</a></td><td><p class="topic_mod°°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td><td><p>°\n°g;
$topic =~ s°</p></td>°\n°g;
$ligne =
"http://www.jeuxvideo.com/forums/1-9725-$topic\n";

my($lien, $titre, $auteur, $posts, $date) = split(/\n/, $ligne);
print "Parcours du topic <$titre> créé par $auteur\n";
exploreTopic("$lien", "$titre");
}
$profondeur--;
$page =~ m°<td align="right"><p><a
href="http://www.jeuxvideo.com/forums/0-9725-(.*?)
"> Page suivante°;
$adresse = "http://www.jeuxvideo.com/forums/0-9725-$1";
$numeroPage++;
}
}

my $adresse =
´http://www.jeuxvideo.com/forums/0-9725-0-1-0-1-0-
0.htm´;
$userAgent = LWP::UserAgent->new(agent=>´VilZilla/1.00 [fr] (X11; I; Linux 4.0.0 i686; Nav)´);

parcoursPages($adresse, 20);

Uriel99
Uriel99
Niveau 10
29 décembre 2005 à 21:50:04

heu...

je sais que j´abuse, mais ça serait possible que tu m´envoies le script par mail? J´ai une erreur quand je le lance. Les forums jv.com ont tendance modifier la syntaxe des textes, genre en ajoutant des espace, etc... Et je ne sais pas corriger ça moi-même -_-

Le message exact est:

script: (chemin d´acces)
ligne: 123
caract: 0
erreur: (in cleanup) unrecognized character \xB4
code: 80004005
source: PerScript Error

Sinon, comment je passe les parametres au script, genre le mot-clef à rechercher, tout ça?

Oui, j´ai honte... patapay ^^´

xillis
xillis
Niveau 10
30 décembre 2005 à 09:24:15

Je pense surtout qu´il serais beaucoup plus efficace de posséder une liste de mot clé à modérer pour déjà effectué une partie du travail.

Les expressions régulières pourraient à la limite mais bon.... amélioré un peu la chose mais étant donné que les messages sont stockés en base de données, je ne voit pas trop l´interet

Uriel99
Uriel99
Niveau 10
30 décembre 2005 à 09:48:03

Bah .. Pour moi l´interet premier serait surtout de lancer une recherche sr le nom d´n floodeur pourvoir s´il a floodé dans un topic qu´il n´a pas créé. C´est diffile d´avoir une base pré-existente pour ça ^^´

xillis
xillis
Niveau 10
30 décembre 2005 à 09:53:56

Un système de statistique relativement bien pensé permettrais de le faire.

Par exemple un ratio de post sur un temps déterminer sur un topic particulier.

Je pense que des voies sont à explorer de ce côté là.

La vidéo du moment