This commit is contained in:
2025-04-03 08:51:40 -05:00
commit 9ef8d75174
74 changed files with 50934 additions and 0 deletions
+264
View File
@@ -0,0 +1,264 @@
const sdk = require('matrix-js-sdk');
const fs = require('fs');
// const { ipcRenderer } = require('electron');
function saveScreenshot(dataUrl) {
// Obtener el contenido base64 de la imagen
const base64Data = dataUrl.replace(/^data:image\/png;base64,/, '');
// Especificar la ruta donde se guardará la captura de pantalla
const filePath = 'screenshot.png';
// Escribir la imagen en el disco
fs.writeFile(filePath, base64Data, 'base64', (error) => {
if (error) {
console.error('Error saving screenshot:', error);
} else {
console.log('Screenshot saved successfully:', filePath);
}
});
}
$('#helpdesk').on('submit', function (event) {
event.preventDefault();
$('#loader').css('display', 'flex');
var description = $('#description').val();
try {
const client = sdk.createClient({
baseUrl: "https://matrixadm.mind.brm.co",
accessToken: "syt_YnJhamFuLmFsZGFuYQ_GsGDJXWtpWkuTayxUIff_4OAXsg",
userId: "@brajan.aldana:matrixadm.mind.brm.co"
});
client.on("sync", (state, prevState, res) => {
if (state === "SYNCING" && prevState === "SYNCING") {
// La sincronización está en progreso
} else if (state === "SYNCING" && prevState !== "SYNCING") {
// La sincronización acaba de comenzar
} else if (state === "PREPARED" && prevState === "SYNCING") {
// La sincronización ha terminado, ahora puedes detener el cliente
client.stopClient();
}
});
var roomid = "!EKItKhtVBxGSvkbPtx:matrixadm.mind.brm.co";
client.startClient();
const info_msg = {
"body": "Status: **success**<br/> Build: by xoxys",
"msgtype": "m.notice",
"format": "org.matrix.custom.html",
"formatted_body": "<h4>Solicitud HelpDesk</h4><p>Usuario: <strong>EC9596Q</strong><br/>Cedula: <strong>1022969596</strong><br/>" + description + "</p>\n",
};
client.sendMessage(roomid, info_msg);
setTimeout(() => {
const filename = "C:/RpaClaro/video.webm";
const contentBuffer = fs.readFileSync(filename);
const blob = new Blob([contentBuffer], { type: "video/webm" });
client.uploadContent(blob, {
name: "video.webm",
type: "video/webm"
}).then(function (url) {
var content = {
msgtype: "m.video",
body: filename,
info: {
mimetype: "video/webm"
},
url: url.content_uri
};
client.sendMessage(roomid, content);
});
console.log('envio video');
}, 2000);
setTimeout(() => {
const filename = "C:/RpaClaro/logs.txt";
const contentBuffer = fs.readFileSync(filename);
const blob = new Blob([contentBuffer], { type: "text/plain" });
client.uploadContent(blob, {
name: "logs.txt",
type: "text/plain"
}).then(function (url) {
var content = {
msgtype: "m.file",
body: filename,
info: {
mimetype: "text/plain"
},
url: url.content_uri
};
client.sendMessage(roomid, content);
});
setTimeout(() => {
client.stopClient();
console.log('termino');
}, 5000);
console.log('envio txt');
}, 2000);
setTimeout(() => {
client.stopClient();
console.log('termino');
$('#loader').css('display', 'none');
$('#description').val('');
$('#close_drawer').trigger('click');
$('#description').attr('disabled', 'disabled');
$('#send').attr('disabled', 'disabled');
$('#record').css('display', 'block');
}, 5000);
} catch (e) {
console.error('Problema al enviar info Element', e);
}
});
$('#screenshot').on('click', function (event) {
console.log('screenshot');
ipcRenderer.send('screenshot');
ipcRenderer.once('screenshot-response', (event, response) => {
console.log('Respuesta del proceso principal:', response);
});
});
function handleStream(stream) {
const video = document.querySelector('video')
video.srcObject = stream
video.onloadedmetadata = (e) => video.play()
}
function handleError(e) {
console.log(e)
}
$('#record').on('click', function (event) {
console.log('record');
$('#record').css('display', 'none');
$('#close_drawer').trigger('click');
ipcRenderer.send('newNotification', { 'title': 'Recopilando evidencias', 'body': 'Grabando pantalla...' });
ipcRenderer.send('newLog', {window:'main', log: '-----------------------', msg: '-----------------------', splash: false});
ipcRenderer.send('newLog', {window:'main', log: 'SOLICITUD HELPDESK', msg: 'SOLICITUD HELPDESK', splash: false});
ipcRenderer.send('newLog', {window:'main', log: '-----------------------', msg: '-----------------------', splash: false});
ipcRenderer.send('newLog', {window:'main', log: 'Recopilando evidencias', msg: 'Recopilando evidencias', splash: false});
ipcRenderer.send('record');
ipcRenderer.once('record-response', async (event, response) => {
console.log('devolvio ventana');
ipcRenderer.send('newLog', {window:'main', log: 'Respuesta del proceso principal: '+ response, 'msg': 'Respuesta del proceso principal', splash: false});
setTimeout(async () => {
try {
const stream = await navigator.mediaDevices.getUserMedia({
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: response,
minWidth: 1280,
maxWidth: 1280,
minHeight: 720,
maxHeight: 720,
},
},
});
const mediaRecorder = new MediaRecorder(stream);
const chunks = [];
mediaRecorder.ondataavailable = (event) => {
if (event.data.size > 0) {
chunks.push(event.data);
}
};
mediaRecorder.onstop = () => {
const blob = new Blob(chunks, { type: 'video/webm' });
blob.arrayBuffer().then((buffer) => {
ipcRenderer.send('save-video', buffer);
ipcRenderer.send('newLog', {window:'main', log:'Termino recopilacion', msg: 'Termino recopilacion', splash: false});
$('#open_drawer').text('Solicitar HelpDesk');
$('#open_drawer').trigger('click');
$('#description').removeAttr('disabled');
$('#send').removeAttr('disabled');
});
};
mediaRecorder.start();
// Después de un tiempo (por ejemplo, 5000 ms), detener la grabación
setTimeout(async () => {
mediaRecorder.stop();
stream.getTracks().forEach((track) => track.stop());
}, 22000);
} catch (e) {
console.error('Error:', e);
}
}, 2000);
});
ipcRenderer.once('send-video', async (event, response) => {
ipcRenderer.send('newLog', {window:'splash', log:'Enviando video', msg: 'Enviando video', splash: true});
const client = sdk.createClient({
baseUrl: "https://matrixadm.mind.brm.co",
accessToken: "syt_YnJhamFuLmFsZGFuYQ_GsGDJXWtpWkuTayxUIff_4OAXsg",
userId: "@brajan.aldana:matrixadm.mind.brm.co"
});
client.startClient();
client.once('sync', function (state, prevState, res) {
console.log(state);
});
var roomid = "!EKItKhtVBxGSvkbPtx:matrixadm.mind.brm.co";
const filename = "C:/Users/LENOVO/Desktop/REPOS/rpa-claro/video.webm";
const contentBuffer = fs.readFileSync(filename);
const blob = new Blob([contentBuffer], { type: "video/webm" });
client.uploadContent(blob, {
name: "video.webm",
type: "video/webm"
}).then(function (url) {
var content = {
msgtype: "m.video",
body: filename,
info: {
mimetype: "video/webm"
},
url: url.content_uri
};
client.sendMessage(roomid, content);
});
setTimeout(() => {
client.stopClient();
console.log('termino');
}, 2000);
ipcRenderer.send('newLog', { 'log': 'Envio video', 'msg': '' });
});
});