Commit efd79e16 authored by Daniel Pérez Fernández's avatar Daniel Pérez Fernández 🕶
Browse files

Update Poll Plugin and update readme

- Add more translations
- Add more controls for users errors
- Minor improvements
- Improved the command endpoll
- Update readme
parent 2045ab2d
......@@ -51,7 +51,8 @@ Para que funcione nuestro bot, debemos hacer los siguiente:
|/qr o !qr (texto)| Convierte texto o enlaces en códigos qr|!qr TEXTO|
|/progeso o !progreso |Muestra el porcertaje del progreso actual del año||
|!archive (url)|Muestra la última captura disposible de una web en Archive.org y permite guardar una nueva captura de la misma|!archive https://wikipedia.org|
|/sendpoll o !sendpoll Pregunta; Opción 1 ; Opción 2| Crea encuestas, puedes añadir hasta 10 opciones separadas por punto y coma (;)|!sendpoll ¿Esto es una encuesta?; Si; No|
|/endpoll o !endpoll (respeusta)| Cierra una encuesta previamente creada con el bot, solo tienes que responder al mensaje de la encuesta con el comando !endpoll||
🚨 respuesta 🚨 -> Indica que esos comandos requieren que respondas al mensaje/imagen/... del usuario sobre el que quieres aplicar la acción
......
......@@ -9,26 +9,26 @@ var texto = msg.text.substring(5);
var array = texto.split(";"); // Conver text to Array
if (array.length >= 3) { // Check if array have 3 elements
// Bucle para quitar los espacios del array al final y al principio
//Loop to remove spaces from the array at the end and beginning
for (var i = 0; i <= (array.length - 1); i++) {
var mod_array = array[i].trim(); // Guardamos en una variable temporalmente el texto sin los espacios
array.splice(i, 1,mod_array); // Guardamos en el array el texto sin espacios
var mod_array = array[i].trim(); // Temporarily save the text without spaces
array.splice(i, 1,mod_array); // Save the text without spaces in "array"
}
// Bucle para recortar el texto dentro de los valores permitidos por la API
// Loop to trim the text within the values ​​allowed by the API
for (var i = 0; i <= (array.length - 1); i++){
if (i == 0) {
var aux = array[i].substr(0,254); // Cortamos la cadena de la pregunta debido max 255 caracteres
var aux = array[i].substr(0,254); // "Cut" the string of the question due max 255 characters allow
array.splice(i, 1,aux);
}
else{
var aux = array[i].substr(0,99); // cortamos cadena opciones 100 caracteres permitidos
var aux = array[i].substr(0,99); // "Cut" the string options due max 100 characters allow
array.splice(i, 1,aux);
}
}
var options_poll = []; // Creamos un array vacio para poder guardar las respuestas
var options_poll = []; // Create an empty array to save the answers
// Creamos un bucle para guardar las opciones en un nuevo array llamado "options poll"
// Loop to save answers in new array called "options poll"
for (var i = 1; i <= (array.length - 1); i++){ // "var i" strart with element 1 of the array, because element 0 is the question
if (i <= 10) { // Only save array positions 1 to 10
var aux = array[i];
......@@ -36,7 +36,6 @@ for (var i = 1; i <= (array.length - 1); i++){ // "var i" strart with element 1
}
}
console.log(options_poll);
// Checking Chat Type -- Comprobación del tipo de Chat
if(msg.chat.type == 'private'){
app.bot.sendMessage(msg.chat.id, app.i18n.__('Command only available for supergroups'));
......@@ -45,15 +44,23 @@ else{
app.bot.deleteMessage(msg.chat.id, msg.message_id);
app.bot.sendPoll(msg.chat.id, array[0], options_poll,{parse_mode : "Markdown"});
}
// Error cuando el array tiene menos de 3 elementos
// Error when the array has less than 3 elements
}else{
app.bot.sendMessage(msg.chat.id, "Error");
app.bot.sendMessage(msg.chat.id, app.i18n.__('⛔️ Error, the poll has to have a minimum of two options\n Example: /poll Question; Answer 1; Answer 2'),{parse_mode : "Markdown"});
}
});
app.bot.onText(/^\!endpoll|^\/endpoll/, function(msg) {
var replyId_messageId = msg.reply_to_message.message_id;
app.bot.stopPoll(msg.chat.id,replyId_messageId);
var chat_id = msg.chat.id;
try {
var replyId_messageId = msg.reply_to_message.message_id;
if (msg.reply_to_message.poll.is_closed == true){
app.bot.sendMessage(msg.chat.id, "Encuesta previamente cerrada");
}
if (msg.reply_to_message.poll.is_closed == false){ // Check if poll is not close
app.bot.stopPoll(msg.chat.id,replyId_messageId); // Close Poll
}
} catch (error) {
app.bot.sendMessage(chat_id, "Tienes que responder directamente al mensaje de la encuesta con el comando /endpoll");
}
});
\ No newline at end of file
......@@ -49,5 +49,8 @@
"Go to the message" : "Go to the message",
"This command is exclusive for users. Its function is to send alerts to the admins." : "This command is exclusive for users. Its function is to send alerts to the admins.",
"Tg X: Go to the message" : "Tg X: Go to the message",
"To use the !pin command you need to reply to the message you want to anchor" : "To use the !pin command you need to reply to the message you want to anchor"
"To use the !pin command you need to reply to the message you want to anchor" : "To use the !pin command you need to reply to the message you want to anchor",
"⛔️ Error, the poll has to have a minimum of two options\n Example: /poll Question; Answer 1; Answer 2" : "⛔️ Error, the poll has to have a minimum of two options\n Example: /poll Question; Answer 1; Answer 2",
"🚨 Previously closed poll" : "🚨 Previously closed poll",
"You need to reply to poll message with the command /endpoll" : "You need to reply to poll message with the command /endpoll"
}
......@@ -49,5 +49,8 @@
"Go to the message" : "Ir al mensaje",
"This command is exclusive for users. Its function is to send alerts to the admins." : "Este comando es de uso exclusivo para los usuarios. Su función es enviar alertas a los administradores del grupo.",
"Tg X: Go to the message" : "Tg X: Ir al mensaje",
"To use the !pin command you need to reply to the message you want to anchor" : "Para usar el comando !pin tienes que responder al mensaje que quieras anclar"
"To use the !pin command you need to reply to the message you want to anchor" : "Para usar el comando !pin tienes que responder al mensaje que quieras anclar",
"⛔️ Error, the poll has to have a minimum of two options\n Example: /poll Question; Answer 1; Answer 2" : "⛔️ Error, la encuesta tiene que tener un mínimo de dos opciones.\n Ej: /poll Pregunta; Opción 1 ; Opción 2",
"🚨 Previously closed poll" : "🚨 Encuesta previamente cerrada",
"You need to reply to poll message with the command /endpoll" : "Tienes que responder directamente al mensaje de la encuesta con el comando /endpoll"
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment