/*
#!/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 sql
define('sqlhost','localhost'); //ip de la base de donne
define('sqllogin','root'); //login de connection la db
define('sqlpassword','');//pass de connection la db
define('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 date
define('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 '[ERREUR] '.$errstr.' ('.$errno.')
\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 '[PONG] '.$pong.'
';
}
//--------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 '[JOIN] J ai joins le salon '.$salon_liste[$i].'
';
}
echo '[JOIN] J ai joins le salon '.$salon_addpre.'
';
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 sql
function 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 sql
function deconnection() { mysql_close(); }
//--------fonction dupe
function 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 nuke
function 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 '[NUKE] '.$rlz.' ('.$motif.') ('.$date.' '.$heure.')
';
}
deconnection();
}
//--------fonction de deconnection de la base sql
function deconnection() { mysql_close(); }
//--------fonction unnuke
function 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 '[UNUKE] '.$rlz.' ('.$date.' '.$heure.')
';
}
deconnection();
}
//--------fonction addpre
function 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 '[RLZ] '.$rlz.' dans '.$section.' ('.$date.' '.$heure.')
';
}
deconnection();
}
//--------fonction correctionsections
function 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 !join
function 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 '[JOIN] J ai joins le salon '.$salon.'
';
}
else { send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow)); }
}
deconnection();
}
//--------fonction !part
function 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 '[PART] J ai quitt le salon '.$salon.'
';
}
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 '[DELUSER] Le membre'.$login.' a t supprim
';
}
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 !adduser
function 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 '[ADDUSER] '.$login.' a t ajout dans le groupe '.$status.'
';
}
}
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 !ban
function 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 !unban
function 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 !voice
function 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 !devoice
function 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 !halfop
function 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 !dehalfop
function 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 !op
function 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 !deop
function 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 !kick
function 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 !invite
function 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 '[INVITE] '.$nom.' s est invit sous le pseudo'.$tmpuser.'
';
}
else
{
send("PRIVMSG ".$tmpuser." :".codecouleur(msg_not_allow));
}
deconnection();
}
//--------fonction !ident
function 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 '[IDENT] '.$nom.' s est invit sous le pseudo'.$tmpuser.'
';
}
else
{
send("PRIVMSG ".$tmpuser." :".codecouleur(msg_ident_bad));
}
deconnection();
}
//--------fonction !stat
function 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 !version
function version($tmpsalon)
{
send("PRIVMSG ".$tmpsalon." :".codecouleur("%couleur%2[%couleur%14VERSION%couleur%2] %couleur%7PreBot-PHP v0.0.1 by omBres"));
}
//--------fonction !db
function 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 $fp
function send($tmp) { global $fp; fputs($fp,$tmp."\n"); }
//--------fonction left
function 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;
}
?>