Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ItemAlert v4 Google Apps Script
- //itemalert4.gs
- function doGet(e){
- var dispositivo = e.parameter.disp;
- var mensaje = e.parameter.mensaje;
- var desc = e.parameter.desc;
- var eburl = e.parameter.eburl;
- var precio = e.parameter.precio;
- var imagen = e.parameter.imagen;
- //Si la variable dispositivo es 1 o 2 la llamada viene de Python
- if (dispositivo==1 || dispositivo==2){
- itemalert(dispositivo,mensaje);
- iabasedatos(dispositivo,desc,eburl,precio,imagen);
- var HTMLString = "<h1>DISPOSITIVO " + dispositivo + ", " + mensaje + "</h1><br>" + Logger.getLog();
- } else {//De los contrario la llamada viene de CronJob
- monitoreo();
- var HTMLString = "<h1>MONITOREO</h1>";
- }
- HTMLOutput = HtmlService.createHtmlOutput(HTMLString);
- return HTMLOutput;
- }
- //Función que recibe mensajes de error o de ok para un dispositivo
- //y lo almacena en la hoja del dispositivo para monitoreo por CronJob
- function itemalert(dispositivo,mensaje){
- var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
- var libro = SpreadsheetApp.getActiveSpreadsheet();
- var hoja =libro.getSheetByName("Dispositivo" + dispositivo);
- hoja.appendRow([ fecha,mensaje ]);
- }
- //Función que recibe los datos de una publicación para un dispositivo
- //y los almacena en la BD
- function iabasedatos(dispositivo,desc,eburl,precio,imagen){
- var libro = SpreadsheetApp.getActiveSpreadsheet();
- var hojaInicio =libro.getSheetByName("Inicio");
- var hojaBD =libro.getSheetByName("BD");
- Logger.log('Punto 2');
- hojaInicio.getRange(16,3).setValue(desc);
- hojaInicio.getRange(17,3).setValue('https://www.ebay.com/itm/' + eburl);
- encontrado = hojaInicio.getRange(22, 3).getValue();
- if(encontrado=='NO'){
- aviso = hojaInicio.getRange(26, 3).getValue();
- hojaBD.appendRow([ dispositivo,desc,'https://www.ebay.com/itm/' + eburl,precio,imagen,aviso ]);
- if(aviso=='SI'){
- var mensaje = "<p>" + desc + "</p>";
- mensaje += "<p>Precio = " + precio + "</p>";
- mensaje += "<p>Enlace = https://www.ebay.com/itm/" + eburl + "</p>";
- mensaje += "<p><img src='https://i.ebayimg.com/thumbs/images/g/" + imagen + "/s-l225.jpg'></p>";
- MailApp.sendEmail({
- subject: 'ItemAlert:' + desc, mensaje,
- htmlBody: mensaje
- });
- }
- }
- }
- //Función que recibe el monitoreo de CronJob cada determinados minutos
- //para verificar que los dispositivos se encuentren funcionando correctamente
- function monitoreo(){
- var libro = SpreadsheetApp.getActiveSpreadsheet();
- var hojaInicio =libro.getSheetByName("Inicio");
- var hojaMonitoreo =libro.getSheetByName("Monitoreo");
- var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
- monitoreoxdispositivo(1);
- monitoreoxdispositivo(2);
- Estado1 = hojaInicio.getRange(3, 5).getValue();
- Estado2 = hojaInicio.getRange(4, 5).getValue();
- //Verifica que alguno de los dos dispositivos este en línea, en caso contrario envía un correo de aviso
- if(Estado1=='En linea' || Estado1=='En linea'){
- hojaMonitoreo.appendRow([ fecha,'Dispositivos funcionando correctamente' ]);
- }else{
- hojaMonitoreo.appendRow([ fecha,'Ambos dispositivos se encuentran apagados o en error' ]);
- MailApp.sendEmail('[email protected]', 'ItemAlert: Apagados o con error', 'Ambos dispositivos se encuentran apagados o en error');
- }
- }
- //Función para revisar el estado de cada dispositivo
- function monitoreoxdispositivo(dispositivo){
- var libro = SpreadsheetApp.getActiveSpreadsheet();
- var hoja = libro.getSheetByName("Dispositivo" + dispositivo);
- var hojaMonitoreo =libro.getSheetByName("Monitoreo");
- var hojaInicio =libro.getSheetByName("Inicio");
- var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
- nuevo = hoja.getRange(1, 9).getValue();
- anterior = hoja.getRange(1, 11).getValue();
- mensaje = hoja.getRange(1, 12).getValue();
- if(nuevo>anterior && mensaje=='NoeBayErrors!'){
- hoja.getRange(1,4).setValue('En linea');
- }
- if(nuevo==anterior){
- hoja.getRange(1,4).setValue('Apagado');
- }
- if(mensaje=!'NoeBayErrors!'){
- hoja.getRange(1,4).setValue('Error');
- hojaMonitoreo.appendRow([ fecha,'Error en Dispoditivo ' + dispositivo ]);
- //Envía correo para avisar del error
- MailApp.sendEmail('[email protected]', 'ItemAlert: Dispositivo ' + dispositivo + ' con error', 'Dispositivo ' + dispositivo + ' con error');
- }
- hoja.getRange(1,11).setValue(nuevo);
- if(nuevo>=500){
- hoja.getRange("A1:B510").clearContent();
- hoja.getRange(1,11).setValue(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement