<?php
// This program is an example on how to use the MZK library for making a BOT
// by sirdarckcat@gmail.com
$maestro="OWNER@mail.com";

include("mzk.php");
$t = new MezzengerKlient;
$t->onLogin = "avisa";
$t->debug=true;
$t->init("BOT@mail.com","password");
$t->login();
$t->main();
$t->quit();

function avisa(){
	global $t,$maestro;
	$t->onChatMessage_[$t->MessageToNew($maestro,"Hola Maestro")]="procesaMensaje";
}

// Ejemplo del uso de las respuestas
function comandoMaestro($mensaje,$donde){
	global $t;
	$mensaje=@split(' ',$mensaje);
	if(isset($mensaje[0])){
		if($mensaje[0][0]=="!"){
			switch(substr($mensaje[0],1)){
				case "di":
					return substr(join(' ',$mensaje),4);
				break;
				case "disculpate":
					return "Perdon Maestro";
				break;
				case "salte":
					$t->exitChat($donde);
					return false;
				break;
				case "cierrate":
					$t->quit();
					exit;
				break;
				case "invita":
					if(isset($mensaje[1]))$t->InviteToChat($donde,$mensaje[1]);
					return false;
				break;
				case "log":
					$inicio=(isset($mensaje[1]))?(int)$mensaje[1]:-1000;
					$fin=(isset($mensaje[2]))?(int)$mensaje[2]:1000;
					return substr($t->tellmylog(),$inicio,$fin);
				break;
				case "dile":
					if(isset($mensaje[1]))$quien=$mensaje[1];
					if(isset($mensaje[2]))$mnsaje=urldecode($mensaje[2]);
					if(isset($quien,$mnsaje))$t->SendText($quien,$mnsaje);
					return false;
				break;
				case "chats":
					$chats="";
					for ($i=0;$i<=$t->sbsindx;$i++){
						if(isset($t->sbsndxs[$i]) && $t->sbsndxs[$i] && is_resource($t->sbsocks[$i])){
							$chats.=$i."\r\n";
							for ($r=0;isset($t->sbconv[$i][$r]);$r++){
								$chats.="\t".$t->sbconv[$i][$r]."\r\n";
							}
							$chats.="\r\n-----\r\n";
						}else{
							$t->sbsndxs[$i]=false;
						}
					}
					return $chats;
				break;
				case "agrega":
					if(isset($mensaje[1]))$t->addContact($mensaje[1]);
					return false;
				break;
				case "borra":
					if(isset($mensaje[1]))$t->delContact($mensaje[1]);
					return false;
				break;
				case "hablale":
					if(isset($mensaje[1]))$t->onChatLoad_[$x=$t->NewChat()]=create_function('$id,$quien','global $t;$t->InviteToChat($id,"'.$mensaje[1].'");');
					return isset($x)?"Chat #$x":false;
				break;
				case "contactos":
					$cont="Todos:\r\n";
					for($i=0;isset($t->mycontacts[$i]);$i++){
						$cont.=$t->mycontacts[$i].",";
					}
					$cont.="\r\n\r\nConectados:\r\n";
					for($i=0;isset($t->onlinefriends[$i]);$i++){
						$cont.=$t->onlinefriends[$i]."\r\n\r\n";
					}
					return $cont;
				break;
				case "google":
					//if(isset($mensaje[1]))return google(urldecode($mensaje[1]));
					return false;
				break;
				case "nick":
					if(isset($mensaje[1]))$t->setNick(substr(join(' ',$mensaje),6));
				break;
				case "ayuda":
					return "!di MENSAJE		-- El bot dice MENSAJE
!disculpate		-- El bot se disculpa
!salte			-- El bot se sale de la conversacion
!cierrate		-- El bot cierra sesion y se va
!invita mail		-- El bot invita a alguien a la conversacion
!log i f		-- El bot muestra el log desde i hasta f
!dile # msg		-- El bot dice el msg al chat #
!chats			-- Muestra los chats activos
!agrega mail		-- Agrega a la lista de contactos a mail
!borra mail		-- Borra de la lista de contactos a mail
!hablale mail		-- Abre un chat con mail
!contactos		-- Te dice los contactos.";
				break;
			}
		}
		return false;
	}
}

// Ejemplo de asumir evento
function procesaMensaje($id,$donde,$que,$cual){
	global $t,$maestro;
	$que = @split(' ',$que);
	$cual = $t->ProcessMessage($cual);
	if($que[1]==$maestro && substr($cual[0]["Content-Type"],0,10)=="text/plain"){
		$texto=comandoMaestro($cual[1],$donde);
		if($texto)$t->SendText($donde,$texto);
	}elseif(isset($cual[0]["TypingUser"])){
		$t->SendTyping($donde);
	}elseif($que[1]!=$maestro){
		$t->SendText($donde,("Quien es ese ".urldecode($que[2]).", Maestro? me da miedo"));
	}
}
?>
