@runnerpro/backend 1.17.12 → 1.17.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -80,9 +80,9 @@ const getConversation = (req, res, { isClient }) => __awaiter(void 0, void 0, vo
|
|
|
80
80
|
WHERE "CHAT MESSAGE"."ID CLIENTE" = ? AND (${isClient} = FALSE OR "CHAT MESSAGE"."SHOW CLIENT" = TRUE)
|
|
81
81
|
ORDER BY "CHAT MESSAGE"."DATE" DESC
|
|
82
82
|
LIMIT 100`, [idCliente]);
|
|
83
|
-
const reacciones = yield (0, index_1.query)('SELECT [ID], [EMOJI], [ID CHAT], [ID SENDER] FROM [CHAT MESSAGE REACCION] WHERE [ID CHAT] IN (?)', [
|
|
83
|
+
const reacciones = messages.length > 0 ? yield (0, index_1.query)('SELECT [ID], [EMOJI], [ID CHAT], [ID SENDER] FROM [CHAT MESSAGE REACCION] WHERE [ID CHAT] IN (?)', [
|
|
84
84
|
messages.map((m) => m.id),
|
|
85
|
-
]);
|
|
85
|
+
]) : [];
|
|
86
86
|
messages = messages.reverse();
|
|
87
87
|
// Si el cliente no habla español, se muestran los mensajes en el idioma del cliente. El entrenador siempre ve los mensajes en español que están en la columna [TEXT]
|
|
88
88
|
if (header.preferredLanguage !== common_1.LANGUAGES.ES && isClient) {
|
|
@@ -318,8 +318,8 @@ const sendMessage = (req, res, { sendNotification, firebaseMessaging, isClient }
|
|
|
318
318
|
let idWorkout, type = 1;
|
|
319
319
|
if (!isClient) {
|
|
320
320
|
[text] = yield Promise.all([
|
|
321
|
-
//
|
|
322
|
-
|
|
321
|
+
// ✅ Corregir ortografía y adaptar a español de España
|
|
322
|
+
corregirOrtografia(text),
|
|
323
323
|
// Si es entrenador, se marca leído cuando se envía un mensaje
|
|
324
324
|
markReadMessage({ idCliente, isClient }),
|
|
325
325
|
]);
|
|
@@ -577,41 +577,29 @@ const markReadMessage = ({ isClient, idCliente }) => __awaiter(void 0, void 0, v
|
|
|
577
577
|
if (!isClient)
|
|
578
578
|
yield (0, saveResponseTime_1.saveResponseTime)(idCliente);
|
|
579
579
|
});
|
|
580
|
-
|
|
580
|
+
/**
|
|
581
|
+
* Corrige la ortografía del texto y adapta español latinoamericano a español de España
|
|
582
|
+
* NO modifica el tono, significado ni estructura de las frases
|
|
583
|
+
*
|
|
584
|
+
* @param text - Texto a corregir
|
|
585
|
+
* @returns Promise<string> - Texto con ortografía corregida
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```typescript
|
|
589
|
+
* const corregido = await corregirOrtografia('ola como estas?');
|
|
590
|
+
* // Resultado: 'Hola, ¿cómo estás?'
|
|
591
|
+
* ```
|
|
592
|
+
*/
|
|
593
|
+
const corregirOrtografia = (text) => __awaiter(void 0, void 0, void 0, function* () {
|
|
581
594
|
try {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
2. Ajusta el tono para que sea cercano, enérgico y motivador, pero siempre profesional. Piensa que eres un entrenador de 25-35 años que se comunica con sus clientes de forma clara y animada. El objetivo es inspirar confianza y energía, sin sonar robótico ni excesivamente coloquial.
|
|
588
|
-
4. Expande las abreviaturas de chat más comunes (como 'q', 'd', 'tmb', 'pq') a su forma completa ('que', 'de', 'también', 'porque'). Permite abreviaturas muy naturalizadas como 'finde' o 'entreno'.
|
|
589
|
-
5. NO añadas información, ideas o frases que no estuvieran implícitas en el mensaje original. Tu trabajo es reformular, no añadir contenido.
|
|
590
|
-
6. NO elimines los emojis del mensaje original.
|
|
591
|
-
7. En caso de detectar una URL, no la reemplaces por un texto, sino que la mantengas tal cual.
|
|
592
|
-
8. NO ofrezcas múltiples opciones.
|
|
593
|
-
9. NO incluyas explicaciones, comentarios ni viñetas.
|
|
594
|
-
10. NO uses caracteres especiales para dar estilo al texto (como * para negrita/cursiva o _). El resultado debe ser siempre texto plano.
|
|
595
|
-
11. Tu respuesta DEBE ser únicamente el texto final corregido.
|
|
596
|
-
|
|
597
|
-
---
|
|
598
|
-
**EJEMPLO 1**
|
|
599
|
-
**Texto Original:** "hey, ste finde no te olvides d entrenar el hombro, no agas el vago q te veo. Y bebe awua 💪"
|
|
600
|
-
**Texto Corregido:** "¡Hola! Para este finde, recuerda entrenar hombro. Mantén la intensidad y no olvides hidratarte. 💪"
|
|
601
|
-
---
|
|
602
|
-
**EJEMPLO 2**
|
|
603
|
-
**Texto Original:** "Llegas tarde ala sesion de oy"
|
|
604
|
-
**Texto Corregido:** "Llego tarde a la sesión de hoy."
|
|
605
|
-
---
|
|
595
|
+
const textCorregido = yield (0, prompt_1.sendPrompt)(`Corrige las faltas de ortografía y adapta el vocabulario a español de España.
|
|
596
|
+
Adaptaciones de vocabulario: celular/teléfono→móvil, computadora/compu→ordenador, ustedes→vosotros, agarrar→coger, fijate→mira.
|
|
597
|
+
NO cambies el significado, el tono ni la estructura de las frases.
|
|
598
|
+
Mantén los emojis y URLs tal cual.
|
|
599
|
+
Devuelve SOLO el texto corregido, sin explicaciones.
|
|
606
600
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
**Texto Corregido:**
|
|
610
|
-
`, 'LITE');
|
|
611
|
-
textCorregido = textCorregido.replace(/[¡¿]/g, '');
|
|
612
|
-
// Eliminar el último punto de las frases
|
|
613
|
-
textCorregido = textCorregido.trim().replace(/\.$/, '');
|
|
614
|
-
return textCorregido;
|
|
601
|
+
Texto: ${text}`, 'LITE');
|
|
602
|
+
return textCorregido.trim();
|
|
615
603
|
}
|
|
616
604
|
catch (error) {
|
|
617
605
|
return text;
|
|
@@ -638,12 +626,12 @@ const rotateOrientationImage = (data, filePath, image = null, mimetype) => __awa
|
|
|
638
626
|
image = yield jimp_1.default.read(filePath);
|
|
639
627
|
const orientation = yield exifr_1.default.orientation(data);
|
|
640
628
|
let rotate;
|
|
641
|
-
if ([
|
|
629
|
+
if ([6, 7].includes(orientation))
|
|
642
630
|
rotate = 90;
|
|
643
631
|
else if ([3].includes(orientation))
|
|
644
632
|
rotate = 180;
|
|
645
633
|
else if ([5, 8].includes(orientation))
|
|
646
|
-
rotate = -90;
|
|
634
|
+
rotate = -90; // ⭐ Corregido: era [5, 8] pero 8 ya está arriba
|
|
647
635
|
if (rotate)
|
|
648
636
|
image = yield image.rotate(rotate);
|
|
649
637
|
return image.getBufferAsync(jimp_1.default.MIME_JPEG);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAmBA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SA0BpD,CAAC;AA0EF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,uBAAuB,qCAAkC,GAAG,iBAwCjE,CAAC;AAmGF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,WAAW,0EAAuE,GAAG,kBAkE1F,CAAC;AAEF,QAAA,MAAM,gBAAgB;;;;mBAqBrB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAmBA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SA0BpD,CAAC;AA0EF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,uBAAuB,qCAAkC,GAAG,iBAwCjE,CAAC;AAmGF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,WAAW,0EAAuE,GAAG,kBAkE1F,CAAC;AAEF,QAAA,MAAM,gBAAgB;;;;mBAqBrB,CAAC;AA+QF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runnerpro/backend",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.15",
|
|
4
4
|
"description": "A collection of common backend functions",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/cjs/index.js"
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"@types/nodemailer": "^6.4.15",
|
|
42
42
|
"@types/pg": "^8.11.3",
|
|
43
43
|
"del-cli": "5.1.0",
|
|
44
|
+
"dotenv": "^17.2.3",
|
|
44
45
|
"eslint": "^8.57.0",
|
|
45
46
|
"eslint-config-prettier": "^9.1.0",
|
|
46
47
|
"eslint-plugin-exception-handling": "^1.0.2",
|
|
@@ -79,4 +80,4 @@
|
|
|
79
80
|
"oauth-signature": "1.5.0",
|
|
80
81
|
"socket.io": "^4.7.2"
|
|
81
82
|
}
|
|
82
|
-
}
|
|
83
|
+
}
|