Advertisement
jackox

itemalert4.gs

Jun 20th, 2024 (edited)
642
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //ItemAlert v4 Google Apps Script
  2. //itemalert4.gs
  3.  
  4. function doGet(e){
  5.   var dispositivo = e.parameter.disp;
  6.   var mensaje = e.parameter.mensaje;
  7.   var desc = e.parameter.desc;
  8.   var eburl = e.parameter.eburl;
  9.   var precio = e.parameter.precio;
  10.   var imagen = e.parameter.imagen;
  11.  
  12.   //Si la variable dispositivo es 1 o 2 la llamada viene de Python
  13.   if (dispositivo==1 || dispositivo==2){
  14.     itemalert(dispositivo,mensaje);
  15.     iabasedatos(dispositivo,desc,eburl,precio,imagen);
  16.     var HTMLString = "<h1>DISPOSITIVO " + dispositivo + ", " + mensaje + "</h1><br>" + Logger.getLog();
  17.   } else {//De los contrario la llamada viene de CronJob
  18.     monitoreo();
  19.     var HTMLString = "<h1>MONITOREO</h1>";
  20.   }
  21.   HTMLOutput = HtmlService.createHtmlOutput(HTMLString);
  22.   return HTMLOutput;
  23. }
  24.  
  25. //Función que recibe mensajes de error o de ok para un dispositivo
  26. //y lo almacena en la hoja del dispositivo para monitoreo por CronJob
  27. function itemalert(dispositivo,mensaje){
  28.   var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
  29.   var libro = SpreadsheetApp.getActiveSpreadsheet();
  30.   var hoja =libro.getSheetByName("Dispositivo" + dispositivo);
  31.  
  32.   hoja.appendRow([ fecha,mensaje ]);
  33. }
  34.  
  35. //Función que recibe los datos de una publicación para un dispositivo
  36. //y los almacena en la BD
  37. function iabasedatos(dispositivo,desc,eburl,precio,imagen){
  38.     var libro = SpreadsheetApp.getActiveSpreadsheet();
  39.     var hojaInicio =libro.getSheetByName("Inicio");
  40.     var hojaBD =libro.getSheetByName("BD");
  41.  
  42.   Logger.log('Punto 2');
  43.    
  44.     hojaInicio.getRange(16,3).setValue(desc);
  45.     hojaInicio.getRange(17,3).setValue('https://www.ebay.com/itm/' + eburl);
  46.     encontrado = hojaInicio.getRange(22, 3).getValue();
  47.    
  48.     if(encontrado=='NO'){
  49.     aviso = hojaInicio.getRange(26, 3).getValue();
  50.         hojaBD.appendRow([ dispositivo,desc,'https://www.ebay.com/itm/' + eburl,precio,imagen,aviso ]);
  51.         if(aviso=='SI'){
  52.             var mensaje = "<p>" + desc + "</p>";
  53.             mensaje += "<p>Precio = " + precio + "</p>";
  54.             mensaje += "<p>Enlace = https://www.ebay.com/itm/" + eburl + "</p>";
  55.             mensaje += "<p><img src='https://i.ebayimg.com/thumbs/images/g/" + imagen + "/s-l225.jpg'></p>";
  56.       MailApp.sendEmail({
  57.       to: '[email protected]',
  58.       subject: 'ItemAlert:' + desc, mensaje,
  59.       htmlBody: mensaje
  60.     });
  61.         }
  62.     }
  63. }
  64.  
  65. //Función que recibe el monitoreo de CronJob cada determinados minutos
  66. //para verificar que los dispositivos se encuentren funcionando correctamente
  67. function monitoreo(){
  68.   var libro = SpreadsheetApp.getActiveSpreadsheet();
  69.   var hojaInicio =libro.getSheetByName("Inicio");
  70.   var hojaMonitoreo =libro.getSheetByName("Monitoreo");
  71.   var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
  72.  
  73.   monitoreoxdispositivo(1);
  74.   monitoreoxdispositivo(2);
  75.  
  76.   Estado1 = hojaInicio.getRange(3, 5).getValue();
  77.   Estado2 = hojaInicio.getRange(4, 5).getValue();
  78.  
  79.   //Verifica que alguno de los dos dispositivos este en línea, en caso contrario envía un correo de aviso
  80.   if(Estado1=='En linea' || Estado1=='En linea'){
  81.     hojaMonitoreo.appendRow([ fecha,'Dispositivos funcionando correctamente' ]);
  82.   }else{
  83.     hojaMonitoreo.appendRow([ fecha,'Ambos dispositivos se encuentran apagados o en error' ]);
  84.       MailApp.sendEmail('[email protected]', 'ItemAlert: Apagados o con error', 'Ambos dispositivos se encuentran apagados o en error');
  85.   }
  86. }
  87.  
  88. //Función para revisar el estado de cada dispositivo
  89. function monitoreoxdispositivo(dispositivo){
  90.   var libro = SpreadsheetApp.getActiveSpreadsheet();
  91.   var hoja = libro.getSheetByName("Dispositivo" + dispositivo);
  92.   var hojaMonitoreo =libro.getSheetByName("Monitoreo");
  93.   var hojaInicio =libro.getSheetByName("Inicio");
  94.  
  95.   var fecha = Utilities.formatDate(new Date(), "GMT-6", "MMMM dd, yyyy HH:mm:ss");
  96.  
  97.   nuevo = hoja.getRange(1, 9).getValue();
  98.   anterior = hoja.getRange(1, 11).getValue();
  99.   mensaje = hoja.getRange(1, 12).getValue();
  100.  
  101.   if(nuevo>anterior && mensaje=='NoeBayErrors!'){
  102.     hoja.getRange(1,4).setValue('En linea');
  103.   }
  104.   if(nuevo==anterior){
  105.     hoja.getRange(1,4).setValue('Apagado');
  106.   }
  107.   if(mensaje=!'NoeBayErrors!'){
  108.     hoja.getRange(1,4).setValue('Error');
  109.     hojaMonitoreo.appendRow([ fecha,'Error en Dispoditivo ' + dispositivo ]);
  110.     //Envía correo para avisar del error
  111.     MailApp.sendEmail('[email protected]', 'ItemAlert: Dispositivo ' + dispositivo + ' con error', 'Dispositivo ' + dispositivo + ' con error');
  112.   }
  113.  
  114.   hoja.getRange(1,11).setValue(nuevo);
  115.  
  116.   if(nuevo>=500){
  117.     hoja.getRange("A1:B510").clearContent();
  118.     hoja.getRange(1,11).setValue(0);
  119.   }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement