rendered paste body<?/*#!/usr/bin/php -q<?$pid = pcntl_fork();if ($pid == -1) { die("impossible de forker"); } elseif ($pid) { exit();} else { }if (!posix_setsid()) { die("impossible de se dtacher du terminal");}*///---------------------------------------------//---------------------------------------------// PreBot-PHP v1 - par omBres pour les potes// contact : essaye sur IRC :p //---------------------------------------------//---------------------------------------------// PreBot-PHP est un bot dvelopp en php qui permet d'ajouter des releases// sur une base sql. Il est multiplateforme (Unix, Windows, etc..). Pour le// faire fonctionner, il suffit d avoir un interpreteur php et une base sql.// Tous les tests ont t ralis sur une debian et windows XP avec apache2 // + php4 + sql + phpmyadmin.//// Liste des commandes disponibles:// Commandes sur le salon addpre:// * !addpre release section pour ajouter une release// * !nuke release motif pour nuker une release// * !unnuke release ou !unuke release pour dnuker une release// Commandes publiques// * !db ou !bd : donne le nombre total de releases dans la base// * !stat ou !stats pseudo : donne le nbre de rlz ajoute par pseudo// * !version : retourne la version du bot// * !pre ou !dupe release: pour rechercher une release//// Commandes addeurs// * !ident login pass (en pv du bot) : permet de s'identifier// * !invite (en pv du bot) pour s'inviter sur le salon addpre//// Commandes administrateurs// * Toutes les commandes + les suivantes// * !b ou !ban pseudo/host pour bannir une personne ou un host// * !unban ou !deban pseudo/host pour dbannir une personne ou un host// * !op pseudo pour opper une personne// * !deop pseudo pour dopper une personne// * !voice ou !v pseudo pour voicer un personne// * !devoice ou !dv pseudo pour devoicer une personne// * !halfop ou !h pseudo pour halfoper une personne// * !dehalfop ou !dh pour dehalfoper une personne// * !kick pseudo pour kicker une personne// * !kickban ou !kb pseudo pour bannir puis kicker une personne// * !join #salon (password) pour joindre un salon (en pv du bot)// * !part #salon pour quitter un salon (en pv du bot)// * !adduser pseudo pass email {ADMIN,ADDEUR,MEMBRE} pour ajouter une personne (en pv du bot)// * !deluser pseudo pour supprimer une personne (en pv du bot)//// Configuration (cf. plus bas):// * Paramtres de connexion la base sql// * Configuration IRC// * Configuration du skin//// Installation:// * Installer la base de donne vierge contenant les tables sur votre// serveur SQL (prebot-php.sql).// * Configurer le fichier prebot-php.php, section configuration// * Uploader prebot-php.php sur votre host et dans un explorateur // (ou dans la console sous linux) lancer la page.// * Par dfault, il existe un administrateur dont le login est test// et le pass est test. // Identifiez-vous au bot (tapez en pv !ident test test) puis crez// votre compte administrateur (!adduser login pass email@fai.fr admin).// Logguez-vous avec ce compte (!ident login pass en pv du bot) puis// supprimer le compte de test (!deluser test).////---------------------------------------------//---------------------------------------------//-------Paramtres de connection la base sqldefine('sqlhost','localhost'); //ip de la base de donnedefine('sqllogin','root'); //login de connection la dbdefine('sqlpassword','');//pass de connection la dbdefine('sqldb','prebot'); //nom de la db//---------------------------------------------//-------Configuration IRC$serveur = "irc.voila.fr";$port = 6667;$pseudo = "testprebot";$identd = "prebot";$salon_addpre = "#addpre";$salon_addprepass = "passchan"; //password du salon addpre mettre "" si pas de pass$salon_liste = array("#tests","#a","#b","#c","#d"); //maximum de salons conseills: 5 - Seuls ces salons auront les annonces de pre (pas les salons ajouter avec la commande !join)$salon_pass = array("","","","",""); //password des salons - mettre "" si un salon n' a pas de password$allowquerycmd = true; //true: autorise l execution des commandes lorsque la demande se fait en pv du bot sinon false//---------------------------------------------//--------Configuration du Skin// %couleur% + num pour la couleur (ctrl=K)// %gras% pour le gras (ctrl+b)// %souligne% pour le soulign (ctrl+u)// %nbrlz% pour le nbre de rlz// %hostid% pour l'hostname d identification// %user% pour l user// %status% pour le status// %salon% pour le salon// %section% pour la section// %rlz% pour la release// %nuke% pour la raison du nuke// %nbresult% pour le nombre de resultat// %date% pour la datedefine('msg_not_allow',"%couleur%2[%couleur%14FUCK%couleur%2] %couleur%7Vous n'tes pas autoris excuter cette requte - Logguez-vous");define('msg_kick',"%couleur%7Casse Toi Grosse Pute :)");define('msg_db',"%couleur%2[%couleur%14PreBot-PHP%couleur%2] %couleur%7Database %couleur%2[%couleur%14%nbrlz% Releases%couleur%2]");define('msg_ident_good',"%couleur%2[%couleur%14IDENT%couleur%2] %couleur%7Membre logu (HostID: %hostid%)");define('msg_ident_bad',"%couleur%2[%couleur%14IDENT%couleur%2] %couleur%7Mauvais login ou password");define('msg_stats_bad',"%couleur%2[%couleur%14STATS%couleur%2] %couleur%7Le nom d'utilisateur n'est pas valide");define('msg_stats_good',"%couleur%2[%couleur%14STATS%couleur%2] %couleur%7%user% a ajout %nbrlz% releases"); define('msg_invite_good',"%couleur%2[%couleur%14INVITE%couleur%2] %couleur%7%user% s'invite sous le pseudo %invite%"); define('msg_adduser_bad',"%couleur%2[%couleur%14ADDUSER%couleur%2] %couleur%7Format invalide: !adduser login pass email {ADMIN,ADDEUR,MEMBRE}");define('msg_adduser_exist',"%couleur%2[%couleur%14ADDUSER%couleur%2] %couleur%7%user% existe dj dans la base de donne - Choisissez un autre login");define('msg_adduser_good',"%couleur%2[%couleur%14ADDUSER%couleur%2] %couleur%7%user% a t ajout dans le groupe %status%");define('msg_deluser_bad',"%couleur%2[%couleur%14DELUSER%couleur%2] %couleur%7Vous devez prcisez un pseudo valide");define('msg_deluser_good',"%couleur%2[%couleur%14DELUSER%couleur%2] %couleur%7%user% a t supprim de la base de donnes");define('msg_join_good',"%couleur%2[%couleur%14JOIN%couleur%2] %couleur%7J ai joins le salon %salon%");define('msg_join_bad',"%couleur%2[%couleur%14JOIN%couleur%2] %couleur%7Vous devez prcisez un salon");define('msg_part_good',"%couleur%2[%couleur%14PART%couleur%2] %couleur%7J ai quitt le salon %salon%");define('msg_part_bad',"%couleur%2[%couleur%14PART%couleur%2] %couleur%7Vous devez prcisez un salon");define('msg_annonce_rlz',"%couleur%2[%couleur%14%section%%couleur%2] %couleur%7%rlz%");define('msg_annonce_nuke',"%couleur%2[%couleur%14NUKE%couleur%2] %couleur%7%rlz% (%couleur%4%nuke%%couleur%7)");define('msg_annonce_unuke',"%couleur%2[%couleur%14UNUKE%couleur%2] %couleur%7%rlz%");define('msg_dupe_search',"%couleur%2[%couleur%14PreBot-PHP%couleur%2] %couleur%7Recherche <%couleur%14%rlz%%couleur%7> - %nbresult% rsultats ");define('msg_dupe_good',"%couleur%2[%couleur%14PreBot-PHP%couleur%2] %couleur%12%rlz% %couleur%7(%date%) %couleur%2[%couleur%14%section%%couleur%2]");define('msg_dupe_bad',"%couleur%2[%couleur%14PreBot-PHP%couleur%2] %couleur%7 Vous devez prcisez au moins 3 caractres");//--------FIN DE CONFIGURATION - NE RIEN MODIFIER SOUS CETTE LIGNE//---------------------------------------------//---------------------------------------------set_time_limit(0); //pour eviter le ping timeout$fp = fsockopen($serveur, $port, &$errno, &$errstr, 10);if(!$fp) { echo '<font color="#FF0000">[ERREUR] '.$errstr.' ('.$errno.')</font><br>\n';} else { send("NICK $pseudo"); send("USER $identd \"$identd\" \"$serveur\" :$identd"); while(!feof($fp)) { $tmp = fgets($fp,512); echo $tmp; $tmp = str_replace("\r", "", $tmp); $tmp = str_replace("\n", "", $tmp); $tab_tmp=explode(" ",$tmp); //-------Gestion du Ping if ($tab_tmp[0] == "PING") { $pong = "PONG ".strstr($tab_tmp[1],":"); send($pong); echo '<font color="#CCCCCC">[PONG] '.$pong.'</font><br>'; } //--------Test si offset good elseif (isset($tab_tmp[1])) { //-------Joindre les salons if ($tab_tmp[1] == "001") { for ($i = 0; $i < sizeof($salon_liste); $i++) { send("JOIN ".$salon_liste[$i].' '.$salon_pass[$i]); echo '<font color="#FF9900">[JOIN] J ai joins le salon '.$salon_liste[$i].'</font><br>'; } echo '<font color="#FF9900">[JOIN] J ai joins le salon '.$salon_addpre.'</font><br>'; send("JOIN ".$salon_addpre.' '.$salon_addprepass); } //-------Ecoute des textes sur salons et pv if ($tab_tmp[1] == "PRIVMSG") { if ((isset($tab_tmp[2])) && (isset($tab_tmp[3]))) { $tmpuser = str_replace(":","",strtok($tmp,"!")); //on recupre l'user $tmpsalon = $tab_tmp[2]; //on recupre le salon ou le pseudo du bot si c est un pv $tmpcmd = str_replace(":","",$tab_tmp[3]); //on recupre la commande $hostid = str_replace(":","",$tab_tmp[0]); if (strcmp($tmpsalon,$salon_addpre) == 0) { if (strcmp($tmpcmd,"!addpre") == 0) { if ((isset($tab_tmp[4])) && (isset($tab_tmp[5]))) { $rlz = $tab_tmp[4]; $section = correctionsections($tab_tmp[5]); addpre($rlz,$section,$salon_liste,$hostid); } } if (strcmp($tmpcmd,"!nuke") == 0) { if ((isset($tab_tmp[4])) && (isset($tab_tmp[5]))) { $rlz = $tab_tmp[4]; $motif = $tab_tmp[5]; nuke($rlz,$motif,$salon_liste); } } if ((strcmp($tmpcmd,"!unuke") == 0) || (strcmp($tmpcmd,"!unnuke") == 0)) { if (isset($tab_tmp[4])) { $rlz = $tab_tmp[4]; unuke($rlz,$salon_liste); } } } if (left($tmpsalon,1) == "#") { if ((strcmp($tmpcmd,"!db") == 0) || (strcmp($tmpcmd,"!bd") == 0)) { db($tmpsalon); } elseif ((strcmp($tmpcmd,"!stat") == 0) || (strcmp($tmpcmd,"!stats") == 0)) { if (isset($tab_tmp[4])) { stats($tmpsalon,$tab_tmp[4]); } else { send("PRIVMSG ".$tmpsalon." :".codecouleur(msg_stats_bad)); } } elseif ((strcmp($tmpcmd,"!version") == 0) || (strcmp($tmpcmd,"!info") == 0)) { version($tmpsalon); } elseif ((strcmp($tmpcmd,"!pre") == 0) || (strcmp($tmpcmd,"!dupe") == 0)) { if (isset($tab_tmp[4])) { $i = 5; $rlz = $tab_tmp[4]; while ($i < 10) { if (isset($tab_tmp[$i])) { $rlz = $rlz."%".$tab_tmp[$i]; $i = $i + 1; } else { $i = 15; } } if (strlen($rlz) < 3) { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_dupe_bad)); } else { dupe($tmpuser,$rlz); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_dupe_bad)); } } //commandes op elseif ((strcmp($tmpcmd,"!b") == 0) || (strcmp($tmpcmd,"!ban") == 0)) { if (isset($tab_tmp[4])) { ban($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!unban") == 0) || (strcmp($tmpcmd,"!deban") == 0)) { if (isset($tab_tmp[4])) { unban($tmpsalon,$tab_tmp[4],$hostid); } } elseif (strcmp($tmpcmd,"!op") == 0) { if (isset($tab_tmp[4])) { op($tmpsalon,$tab_tmp[4],$hostid); } } elseif (strcmp($tmpcmd,"!deop") == 0) { if (isset($tab_tmp[4])) { deop($tmpsalon,$tab_tmp[4],$hostid); } } elseif (strcmp($tmpcmd,"!kick") == 0) { if (isset($tab_tmp[4])) { kick($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!voice") == 0) || (strcmp($tmpcmd,"!v") == 0)) { if (isset($tab_tmp[4])) { voice($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!devoice") == 0) || (strcmp($tmpcmd,"!dv") == 0)) { if (isset($tab_tmp[4])) { devoice($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!halfop") == 0) || (strcmp($tmpcmd,"!h") == 0)) { if (isset($tab_tmp[4])) { halfop($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!dehalfop") == 0) || (strcmp($tmpcmd,"!dh") == 0)) { if (isset($tab_tmp[4])) { dehalfop($tmpsalon,$tab_tmp[4],$hostid); } } elseif ((strcmp($tmpcmd,"!kickban") == 0) || (strcmp($tmpcmd,"!kb") == 0)) { if (isset($tab_tmp[4])) { ban($tmpsalon,$tab_tmp[4],$hostid); kick($tmpsalon,$tab_tmp[4],$hostid); } } } else { if ((strcmp($tmpcmd,"!ident") == 0)) { if ((isset($tab_tmp[4])) && (isset($tab_tmp[5]))) { $login = $tab_tmp[4]; $pass = $tab_tmp[5]; ident($tmpuser,$login,$pass,$hostid); } } elseif (strcmp($tmpcmd,"!invite") == 0) { invite($tmpuser,$salon_addpre,$hostid); } elseif (strcmp($tmpcmd,"!adduser") == 0) { if ((isset($tab_tmp[4])) && (isset($tab_tmp[5])) && (isset($tab_tmp[6])) && (isset($tab_tmp[7]))) { $login = $tab_tmp[4]; $pass = $tab_tmp[5]; $email = $tab_tmp[6]; $status = $tab_tmp[7]; adduser($tmpuser,$hostid,$login,$pass,$email,$status); } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_adduser_bad)); } } elseif (strcmp($tmpcmd,"!deluser") == 0) { if (isset($tab_tmp[4])) { $login = $tab_tmp[4]; deluser($tmpuser,$hostid,$login); } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_deluser_bad)); } } elseif (strcmp($tmpcmd,"!join") == 0) { if (isset($tab_tmp[4])) { $salon = $tab_tmp[4]; if (isset($tab_tmp[5])) { $chanpass = $tab_tmp[5]; } else { $chanpass = ""; } joindre($tmpuser,$hostid,$salon,$chanpass); } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_join_bad)); } } elseif (strcmp($tmpcmd,"!part") == 0) { if (isset($tab_tmp[4])) { $salon = $tab_tmp[4]; partir($tmpuser,$hostid,$salon); } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_part_bad)); } } elseif ((strcmp($tmpcmd,"!version") == 0) || (strcmp($tmpcmd,"!info") == 0)) { version($tmpuser); } elseif ($allowquerycmd == true) //si mode commande en pv est allow { if ((strcmp($tmpcmd,"!db") == 0) || (strcmp($tmpcmd,"!bd") == 0)) { db($tmpuser); } elseif ((strcmp($tmpcmd,"!stat") == 0) || (strcmp($tmpcmd,"!stats") == 0)) { if (isset($tab_tmp[4])) { stats($tmpuser,$tab_tmp[4]); } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_stats_bad)); } } elseif ((strcmp($tmpcmd,"!pre") == 0) || (strcmp($tmpcmd,"!dupe") == 0)) { if (isset($tab_tmp[4])) { $i = 5; $rlz = $tab_tmp[4]; while ($i < 10) { if (isset($tab_tmp[$i])) { $rlz = $rlz."%".$tab_tmp[$i]; $i = $i + 1; } else { $i = 15; } } if (strlen($rlz) < 3) { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_dupe_bad)); } else { dupe($tmpuser,$rlz); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_dupe_bad)); } } } } } } } } fclose($fp); return "OK";}//--------Fonction de connection a la base sqlfunction connection() { echo mysql_connect(sqlhost, sqllogin, sqlpassword); // Connexion MySQL echo mysql_select_db(sqldb); // Slection de la base dupe}//--------fonction de deconnection de la base sqlfunction deconnection() { mysql_close(); }//--------fonction dupefunction dupe($tmpuser,$rlz){ connection(); $rlz = '%'.$rlz.'%'; $req = mysql_query("SELECT count(*) FROM release WHERE release_nom LIKE '".$rlz."' LIMIT 3;"); $res = mysql_result($req,0); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%nbresult%","$res",str_replace("%rlz%","$rlz",msg_dupe_search)))); if ($res > 0) { $req = mysql_query("SELECT * FROM release WHERE release_nom LIKE '".$rlz."' LIMIT 3;"); while ($donnees = mysql_fetch_array($req)) { $section = $donnees['release_section']; $time = $donnees['release_timestamp']; $rlzgood = $donnees['release_nom']; send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%section%","$section",str_replace("%date%","$time",str_replace("%rlz%","$rlzgood",msg_dupe_good))))); } } deconnection();}//--------fonction nukefunction nuke($rlz,$motif,$salon_liste){ connection(); $req = mysql_query("SELECT count(*) FROM release WHERE release_nom = '".$rlz."';"); $res = mysql_result($req,0); if ($res > 0) { $date = date("Y-m-d"); $heure = date("H:i:s"); $req = mysql_query("UPDATE release SET release_nuke = '".$motif."' WHERE release_nom = '".$rlz."' LIMIT 1 ;"); for ($i = 0; $i < sizeof($salon_liste); $i++) { send("PRIVMSG ".$salon_liste[$i]." :".codecouleur(str_replace("%nuke%","$motif",str_replace("%rlz%","$rlz",msg_annonce_nuke)))); } echo '<font color="#FF0000">[NUKE] '.$rlz.' ('.$motif.') ('.$date.' '.$heure.')</font><br>'; } deconnection();}//--------fonction de deconnection de la base sqlfunction deconnection() { mysql_close(); }//--------fonction unnukefunction unuke($rlz,$salon_liste){ connection(); $req = mysql_query("SELECT count(*) FROM release WHERE release_nom = '".$rlz."';"); $res = mysql_result($req,0); if ($res > 0) { $date = date("Y-m-d"); $heure = date("H:i:s"); $req = mysql_query("UPDATE release SET release_nuke = '' WHERE release_nom = '".$rlz."' LIMIT 1 ;"); for ($i = 0; $i < sizeof($salon_liste); $i++) { send("PRIVMSG ".$salon_liste[$i]." :".codecouleur(str_replace("%rlz%","$rlz",msg_annonce_unuke))); } echo '<font color="#FF0000">[UNUKE] '.$rlz.' ('.$date.' '.$heure.')</font><br>'; } deconnection();}//--------fonction addprefunction addpre($rlz,$section,$salon_liste,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM release WHERE release_nom = '".$rlz."';"); $res = mysql_result($req,0); if ($res == 0) { $date = date("Y-m-d"); $heure = date("H:i:s"); $req = mysql_query("INSERT INTO release ( `release_id` , `release_nom` , `release_timestamp` , `release_nuke` , `release_section` ) VALUES ('', '".$rlz."', NOW( ) , NULL , '".$section."');"); for ($i = 0; $i < sizeof($salon_liste); $i++) { send("PRIVMSG ".$salon_liste[$i]." :".codecouleur(str_replace("%section%","$section",str_replace("%rlz%","$rlz",msg_annonce_rlz)))); } $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res2 > 0) { $req2 = mysql_query("SELECT membre_total_rlz FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res2 = mysql_result($req2,0); $nbrlz = $res2 + 1; $req2 = mysql_query("UPDATE membre SET membre_total_rlz = '".$nbrlz."' membre_host = '".$hostid."' LIMIT 1;"); } echo '<font color="#009900">[RLZ] '.$rlz.' dans '.$section.' ('.$date.' '.$heure.')</font><br>'; } deconnection();}//--------fonction correctionsectionsfunction correctionsections($section){ $tmp = eregi("[[:punct:]]COVERS|COVER",$section,$regs); if (isset($regs[0])) { return "COVERS"; } $tmp = eregi("[[:punct:]]PS2|[[:punct:]]PS2DVD|[[:punct:]]PS2CD[[:punct:]]|[[:punct:]]PS2DVD|PS2",$section,$regs); if (isset($regs[0])) { return "PS2"; } $tmp = eregi("[[:punct:]]eBOOK|BOOK|eBOOK",$section,$regs); if (isset($regs[0])) { return "eBOOK"; } $tmp = eregi("day|IMAGESET",$section,$regs); if (isset($regs[0])) { return "0DAY"; } $tmp = eregi("[[:punct:]]XXX|XXX",$section,$regs); if (isset($regs[0])) { return "XXX"; } $tmp = eregi("[[:punct:]]NGC|NGC",$section,$regs); if (isset($regs[0])) { return "NGC"; } $tmp = eregi("[[:punct:]]GBA|GBA",$section,$regs); if (isset($regs[0])) { return "GBA"; } $tmp = eregi("[[:punct:]]MDVDR[[:punct:]]|MUSiC",$section,$regs); if (isset($regs[0])) { return "MDVDR"; } $tmp = eregi("[[:punct:]]DVDR[[:punct:]]|DVD",$section,$regs); if (isset($regs[0])) { return "DVDR"; } $tmp = eregi("MP3",$section,$regs); if (isset($regs[0])) { return "MP3"; } $tmp = eregi("ANIME",$section,$regs); if (isset($regs[0])) { return "ANiMES"; } $tmp = eregi("SVCD",$section,$regs); if (isset($regs[0])) { return "SVCD"; } $tmp = eregi("DOX",$section,$regs); if (isset($regs[0])) { return "DOX"; } $tmp = eregi("VCD",$section,$regs); if (isset($regs[0])) { return "VCD"; } $tmp = eregi("APP",$section,$regs); if (isset($regs[0])) { return "APPS"; } $tmp = eregi("MV|ViD",$section,$regs); if (isset($regs[0])) { return "MVIDEO"; } $tmp = eregi("[[:punct:]]PSP[[:punct:]]|PSP",$section,$regs); if (isset($regs[0])) { return "PSP"; } $tmp = eregi("[[:punct:]]NDS[[:punct:]]|NDS",$section,$regs); if (isset($regs[0])) { return "NDS"; } $tmp = eregi("[[:punct:]]PPC[[:punct:]]|PPC",$section,$regs); if (isset($regs[0])) { return "PPC"; } $tmp = eregi("[[:punct:]]S\d\dE\d\d[[:punct:]]|[[:punct:]]S\dE\d[[:punct:]]|(?i)TV|SERiE|TV",$section,$regs); if (isset($regs[0])) { return "TV"; } $tmp = eregi("[[:punct:]]XBOX360|XBOX360",$section,$regs); if (isset($regs[0])) { return "XBOX360"; } $tmp = eregi("[[:punct:]]XBOXDVD|[[:punct:]]XBOX[[:punct:]]|XBOX",$section,$regs); if (isset($regs[0])) { return "XBOX"; } $tmp = eregi("GAME",$section,$regs); if (isset($regs[0])) { return "GAMES"; } $tmp = eregi("[[:punct:]]X[Vv]iD[[:punct:]]|XViD",$section,$regs); if (isset($regs[0])) { return "XViD"; } $tmp = eregi("[[:punct:]]Di[Vv]X[[:punct:]]|DiVX",$section,$regs); if (isset($regs[0])) { return "DiVX"; } return "OTHER";}//--------fonction !joinfunction joindre($tmpuser,$hostid,$salon,$chanpass){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("JOIN ".$salon." ".$chanpass); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%salon%","$salon",msg_join_good))); echo '<font color="#FF9900">[JOIN] J ai joins le salon '.$salon.'</font><br>'; } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } } deconnection();}//--------fonction !partfunction partir($tmpuser,$hostid,$salon){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("PART ".$salon); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%salon%","$salon",msg_part_good))); echo '<font color="#FF9900">[PART] J ai quitt le salon '.$salon.'</font><br>'; } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } } deconnection();}//--------fonction !deluser function deluser($tmpuser,$hostid,$login){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { $req2 = mysql_query("SELECT count(*) FROM membre WHERE membre_nom = '".$login."';"); $res2 = mysql_result($req2,0); if ($res2 > 0) { $req = mysql_query("DELETE FROM membre WHERE membre_nom = '".$login."' LIMIT 1 ;"); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%user%","$login",msg_deluser_good))); echo '<font color="#0033FF">[DELUSER] Le membre'.$login.' a t supprim</font><br>'; } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_deluser_bad)); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } deconnection();}//--------fonction !adduserfunction adduser($tmpuser,$hostid,$login,$pass,$email,$status){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { $req2 = mysql_query("SELECT count(*) FROM status WHERE status_desc = '".$status."';"); $res2 = mysql_result($req2,0); if ($res2 > 0) { $req = mysql_query("SELECT status_id FROM status WHERE status_desc = '".$status."' LIMIT 1;"); $resstatus = mysql_result($req,0); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_nom = '".$login."';"); $resbool = mysql_result($req,0); if ($resbool != 0) { send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%user%","$login",msg_adduser_exist))); } else { $req = mysql_query("INSERT INTO membre ( `membre_nom` , `membre_pass` , `membre_mail` , `membre_total_rlz` , `membre_status` , `membre_host` ) VALUES ('".$login."', '".md5($pass)."', '".$email."', '0', '".$resstatus."', NULL);"); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%status%","$status",str_replace("%user%","$login",msg_adduser_good)))); echo '<font color="#0033FF">[ADDUSER] '.$login.' a t ajout dans le groupe '.$status.'</font><br>'; } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_adduser_bad)); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } deconnection();}//--------fonction !banfunction ban($tmpsalon,$banni,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." +b ".$banni); } } deconnection();}//--------fonction !unbanfunction unban($tmpsalon,$banni,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." -b ".$banni); } } deconnection();}//--------fonction !voicefunction voice($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." +v ".$user); } } deconnection();}//--------fonction !devoicefunction devoice($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." -v ".$user); } } deconnection();}//--------fonction !halfopfunction halfop($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." +h ".$user); } } deconnection();}//--------fonction !dehalfopfunction dehalfop($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." -h ".$user); } } deconnection();}//--------fonction !opfunction op($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." +o ".$user); } } deconnection();}//--------fonction !deopfunction deop($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("MODE ".$tmpsalon." -o ".$user); } } deconnection();}//--------fonction !kickfunction kick($tmpsalon,$user,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_status FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $res = mysql_result($req,0); if ($res == 100) { send("KICK ".$tmpsalon." ".$user." :".codecouleur(msg_kick)); } } deconnection();}//--------fonction !invitefunction invite($tmpuser,$salon_addpre,$hostid){ connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_host = '".$hostid."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("SELECT membre_nom FROM membre WHERE membre_host = '".$hostid."' LIMIT 1;"); $nom = mysql_result($req,0); send("PRIVMSG ".$salon_addpre." :".codecouleur(str_replace("%user%","$nom",str_replace("%invite%","$tmpuser",msg_invite_good)))); send("INVITE ".$tmpuser." ".$salon_addpre); echo '<font color="#99FF66">[INVITE] '.$nom.' s est invit sous le pseudo'.$tmpuser.'</font><br>'; } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); } deconnection();}//--------fonction !identfunction ident($tmpuser,$login,$pass,$hostid) { connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_nom = '".$login."' AND membre_pass = '".md5($pass)."';"); $res = mysql_result($req,0); if ($res > 0) { $req = mysql_query("UPDATE `membre` SET `membre_host` = '".$hostid."' WHERE `membre_nom` = '".$login."' LIMIT 1 ;"); send("PRIVMSG ".$tmpuser." :".codecouleur(str_replace("%hostid%","$hostid",msg_ident_good))); echo '<font color="#99FF66">[IDENT] '.$nom.' s est invit sous le pseudo'.$tmpuser.'</font><br>'; } else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_ident_bad)); } deconnection();}//--------fonction !statfunction stats($tmpsalon,$tmpnick) { connection(); $req = mysql_query("SELECT count(*) FROM membre WHERE membre_nom = '".$tmpnick."';"); $res = mysql_result($req,0); if ($res >0) { $req = mysql_query("SELECT membre_total_rlz FROM membre WHERE membre_nom = '".$tmpnick."';"); $res = mysql_result($req,0); send("PRIVMSG ".$tmpsalon." :".codecouleur(str_replace("%nbrlz%",$res,str_replace("%user%",$tmpnick,msg_stats_good)))); } else { send("PRIVMSG ".$tmpsalon." :".codecouleur(msg_stats_bad)); } deconnection();}//--------fonction !versionfunction version($tmpsalon) { send("PRIVMSG ".$tmpsalon." :".codecouleur("%couleur%2[%couleur%14VERSION%couleur%2] %couleur%7PreBot-PHP v0.0.1 by omBres"));}//--------fonction !dbfunction db($tmpsalon) { connection(); $req = mysql_query("SELECT count(*) FROM release;"); $nbrlz = mysql_result($req,0); send("PRIVMSG ".$tmpsalon." :".codecouleur(str_replace("%nbrlz%","$nbrlz",msg_db))); deconnection();}//--------fonction d'ecriture sur le socket $fpfunction send($tmp) { global $fp; fputs($fp,$tmp."\n"); }//--------fonction leftfunction left($str,$nbr) { return substr($str,0,$nbr);}function codecouleur($phrase) { $phrase = str_replace("%couleur%",chr(3),$phrase); $phrase = str_replace("%gras%",chr(2),$phrase); $phrase = str_replace("%souligne%",chr(31),$phrase); return $phrase;}?>