Example #1
0
 public function apostar($endpoint, $request, $currentCMD)
 {
     $apostarCMDDAO = new ApostarCMDDAO();
     $resultApostarCMD = $apostarCMDDAO->select($request->get_chat_id());
     if (!isset($resultApostarCMD['partido'])) {
         $this->log->debug("No hay partido");
         $this->updatePartido($endpoint, $request);
         //se borra el teclado.Y se pide Descripción
         $object = new stdClass();
         $object->hide_keyboard = true;
         return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), '¿A qué quieres apostar?', json_encode($object));
     } else {
         if (!isset($resultApostarCMD['descrip'])) {
             $this->log->debug("Ya hay partido, no hay descrip");
             $this->updateDescrip($endpoint, $request, $resultApostarCMD, $currentCMD);
             //Se pide la importe
             $text = 'Vale, dime el importe';
             return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
         } else {
             if (!isset($resultApostarCMD['importe'])) {
                 $this->log->debug("Ya hay partido y descrip, pero no hay importe");
                 $importe = $request->get_text();
                 $importe = str_replace(',', '.', $importe);
                 if (is_numeric($importe)) {
                     $this->updateImporte($endpoint, $request, $resultApostarCMD);
                 } else {
                     $this->log->debug("Error, no es un número");
                     $text = 'El importe de la apuesta debe ser un número, ' . Utils::getInsultoSingular();
                     return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
                 }
                 $this->log->debug("Ya tengo todo para hacer la apuesta");
                 //Llamar api apostar
                 $result = $this->crearApuesta($endpoint, $request, $currentCMD);
                 //Se borra el comando actual
                 $currentCMDDAO = new CurrentCMDDAO();
                 $currentCMD = $currentCMDDAO->delete($request->get_chat_id());
                 if ($result == null) {
                     $text = 'Apuesta creada correctamente.' . PHP_EOL . 'Puedes verla con el comando /mispartidos';
                     return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
                 }
                 $emoji_alert = Utils::convert_emoji(0x26a0);
                 $text = $emoji_alert . '*Error:*' . PHP_EOL . $result;
                 return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
             } else {
                 $this->log->debug("Aqui no debería llegar nunca.");
             }
         }
     }
 }
Example #2
0
 private function preguntarPartido($endpoint, $request, $urlApi)
 {
     $this->log->debug("preguntar partidos ");
     $params = $request->get_command_params();
     $text = '';
     $jsonTokenUser = Utils::callApi($request, 'tokenusuario/' . $request->get_chat_id() . '?token=' . TOKEN_API_BOT, $urlApi);
     $tokenUsuario = json_decode($jsonTokenUser, true);
     //Si hay token de usuario del chat, se invoca el comando con el token
     if ($tokenUsuario[0]['token']) {
         $finUrl = '?token=' . $tokenUsuario[0]['token'];
         $jsonPartidos = Utils::callApi($request, 'partidos/usuario/' . $tokenUsuario[0]['token'], $urlApi);
         $partidos = json_decode($jsonPartidos);
         $text = '¿A que partido quieres apostar?' . PHP_EOL . PHP_EOL;
         $fechaaux = '';
         $arr = array();
         foreach ($partidos as $part) {
             setlocale(LC_ALL, "es_ES");
             $fecha = strftime("%d %b %Y", strtotime($part->fecha));
             if ($fecha != $fechaaux) {
                 $text .= '*' . $fecha . '*' . PHP_EOL;
                 $fechaaux = $fecha;
             }
             $text .= '*     ' . substr($part->hora, 0, 5) . ': *' . $part->local->nombre_corto . ' vs ' . $part->visitante->nombre_corto . PHP_EOL;
             $InlineKeyboardButton = new stdClass();
             $InlineKeyboardButton->text = substr($part->hora, 0, 5) . ': ' . $part->local->nombre_corto . ' vs ' . $part->visitante->nombre_corto;
             $InlineKeyboardButton->callback_data = '/apostar ' . $params[0] . ' ' . $part->id;
             array_push($arr, $InlineKeyboardButton);
         }
         $inline_keyboard = new stdClass();
         $inline_keyboard->inline_keyboard = [$arr];
         return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), $text, json_encode($inline_keyboard));
     }
 }
Example #3
0
 private function cama4($endpoint, $request)
 {
     //force_reply
     $object = new stdClass();
     //ForceReply
     $object->force_reply = true;
     return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), 'ForceReply', json_encode($object));
 }
Example #4
0
 static function get_grupo($endpoint, $request, $comando_original)
 {
     if (!self::usuarios_simples($request->get_chat_id())) {
         $InlineKeyboardButton = new stdClass();
         $InlineKeyboardButton->text = 'ChampionsLimb';
         $InlineKeyboardButton->callback_data = '/' . $comando_original . ' ChampionsLimb';
         $InlineKeyboardButton2 = new stdClass();
         $InlineKeyboardButton2->text = 'GusLimb';
         $InlineKeyboardButton2->callback_data = '/' . $comando_original . ' GusLimb';
         $inline_keyboard = new stdClass();
         $arr = array($InlineKeyboardButton, $InlineKeyboardButton2);
         $inline_keyboard->inline_keyboard = [$arr];
         return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), 'Dime el grupo, pringao!', json_encode($inline_keyboard));
     } else {
         switch ($request->get_chat_id()) {
             case ID_YONI:
             case ID_CAS:
             case ID_JAVI:
             case ID_KETU:
             case ID_PACO:
             case ID_RIOJANO:
             case ID_BARTOL:
             case ID_VICENTE:
             case ID_IBAN:
             case GUSLIMB_GROUPID:
                 return "GusLimb";
                 break;
             case CHAMPIONSLIMB_GROUPID:
                 return "ChampionsLimb";
                 break;
             default:
                 return null;
         }
     }
 }
Example #5
0
 static function pregunta_grupo($endpoint, $request)
 {
     $chatDao = new ChatDAO();
     $arrGrupos = $chatDao->selectGruposChat($request->get_chat_id());
     $arrButtons = array();
     foreach ($arrGrupos as $grupo) {
         array_push($arrButtons, [$grupo->nombre]);
     }
     $inline_keyboard = new stdClass();
     $inline_keyboard->keyboard = $arrButtons;
     $inline_keyboard->resize_keyboard = true;
     $inline_keyboard->one_time_keyboard = true;
     return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), 'Dime el grupo, pringao!', json_encode($inline_keyboard));
 }
Example #6
0
 private function preguntarPartido($endpoint, $request, $urlApi)
 {
     $this->log->debug("preguntar partidos ");
     $text = '';
     $jsonTokenUser = Utils::callApi($request, 'tokenusuario/' . $request->get_chat_id() . '?token=' . TOKEN_API_BOT, $urlApi);
     $tokenUsuario = json_decode($jsonTokenUser, true);
     //Si hay token de usuario del chat, se invoca el comando con el token
     if ($tokenUsuario[0]['token']) {
         $finUrl = '?token=' . $tokenUsuario[0]['token'];
         $jsonPartidos = Utils::callApi($request, 'partidos/usuario/' . $tokenUsuario[0]['token'], $urlApi);
         $partidos = json_decode($jsonPartidos);
         $text = '¿A que partido quieres apostar?' . PHP_EOL . PHP_EOL;
         $fechaaux = '';
         $arr = array();
         foreach ($partidos as $part) {
             setlocale(LC_ALL, "es_ES");
             $fecha = strftime("%d %b %Y", strtotime($part->fecha));
             if ($fecha != $fechaaux) {
                 $text .= '*' . $fecha . '*' . PHP_EOL;
                 $fechaaux = $fecha;
             }
             $text .= '*     ' . substr($part->hora, 0, 5) . ': *' . $part->local->nombre_corto . ' vs ' . $part->visitante->nombre_corto . PHP_EOL;
             array_push($arr, [$part->id . ' | ' . substr($part->hora, 0, 5) . ': ' . $part->local->nombre_corto . ' vs ' . $part->visitante->nombre_corto]);
         }
         if (count($arr) == 0) {
             $text = 'No tienes partidos pendientes';
             return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
         } else {
             $object = new stdClass();
             $object->keyboard = $arr;
             $object->resize_keyboard = true;
             $object->one_time_keyboard = true;
             return Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), $text, json_encode($object));
         }
     } else {
         $text = 'No he podido identificarte, cama';
         return Response::create_text_response($endpoint, $request->get_chat_id(), $text);
     }
 }
Example #7
0
 static function ejecutar($endpoint, $request)
 {
     $logStatic = Logger::getLogger('com.hotelpene.limbBot.Comandos');
     $func = $request->get_command();
     if ($func != null) {
         if ($request->is_private_chat()) {
             //Sólo se permiten estos comandos desde chats privados
             if ($func == 'cancel') {
                 $currentCMDDAO = new CurrentCMDDAO();
                 $currentCMD = $currentCMDDAO->delete($request->get_chat_id());
                 $object = new stdClass();
                 $object->hide_keyboard = true;
                 $response = Response::create_text_replymarkup_response($endpoint, $request->get_chat_id(), 'Cancelado', json_encode($object));
             } else {
                 $response = ComandosDev::ejecutar($func, $endpoint, $request);
             }
         }
         if (!isset($response)) {
             $response = ComandosLimb::ejecutar($func, $endpoint, $request);
         }
         if (!isset($response)) {
             $response = ComandosFutbol::ejecutar($func, $endpoint, $request);
         }
         if (!isset($response)) {
             $response = ComandosOffTopic::ejecutar($func, $endpoint, $request);
         }
         return $response;
     } else {
         $logStatic->debug("No es un comando: " . $request->get_text());
         //Buscar si hay algun comando en curso
         $currentCMDDAO = new CurrentCMDDAO();
         $currentCMD = $currentCMDDAO->select($request->get_chat_id());
         if ($currentCMD['grupo'] == null) {
             $grupoDAO = new GrupoDAO();
             $grupoVO = $grupoDAO->selectByNombre($request->get_text());
             if ($grupoVO != null) {
                 $currentCMDDAO->updateGrupo($request->get_chat_id(), $grupoVO->id);
                 $func = $currentCMD['cmd'];
                 return $response = ComandosLimb::ejecutar($func, $endpoint, $request);
             }
         }
         if ($currentCMD != null) {
             $logStatic->debug("Hay un comando en marcha: " . $currentCMD['cmd']);
             if ($currentCMD['cmd'] == 'apostar') {
                 $apostarCMD = new ApostarCMD();
                 return $apostarCMD->apostar($endpoint, $request, $currentCMD);
             } else {
                 $grupoDAO = new GrupoDAO();
                 $grupoVO = $grupoDAO->selectByNombre($request->get_text());
                 if ($grupoVO != null) {
                     $currentCMDDAO->updateGrupo($request->get_chat_id(), $grupoVO->id);
                     $func = $currentCMD['cmd'];
                     return $response = ComandosLimb::ejecutar($func, $endpoint, $request);
                 }
             }
         } else {
             $logStatic->debug("NO Hay un comando en marcha.");
         }
     }
     return false;
 }