<?php
//FALTA FORMATEAER BIEN LOS VIDEOS SI ES QUE TRAE
//FORMATO <iframe width="560" height="315" src="https://www.youtube.com/embed/WFkEmQiBt_w" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
function traerdatosAPI()
{
  global $url;
  global $FECHAPROCESO;
  connecttodb();
  global $RESULTADOSPORPAGINA;
  global $IdCatAliadas;
  global $listadoimagenes;
  //file_put_contents('tonoinsert.txt', print_r("\n", true));
  $url = obtenerurl(1,1);
  $curl = curl_init();
  curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_AUTOREFERER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => array(
      'Accept: */*',
      'X-Auth-Token: 3906a891025b3434f264e9cd3368c1f9',
      'content-type: application/json; charset=utf-8 '
    ),
  )
  );
  $response = curl_exec($curl);
  curl_close($curl);
  $respuesta = json_decode($response, true);
  $cantidadregistros= $respuesta['count'];
  $cantidaddepaginas = intdiv($cantidadregistros, $RESULTADOSPORPAGINA)+1;
  $cantdeerroresdetraida = 0;
  $fechaInicial = date('Y-m-d H:i:s');
  $cantidaddealtas = 0;
  for ($i = 1; $i <= $cantidaddepaginas; $i++) {
  
    $fechaInicial = date('Y-m-d H:i:s');
    $url = obtenerurl($i,$RESULTADOSPORPAGINA);
    $curl = curl_init();
    curl_setopt_array(
      $curl,
      array(
        CURLOPT_URL => $url,
        CURLOPT_AUTOREFERER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'GET',
        CURLOPT_HTTPHEADER => array(
          'Accept: */*',
          'X-Auth-Token: 3906a891025b3434f264e9cd3368c1f9',
          'content-type: application/json; charset=utf-8 '
        ),
      )
    );
    $response = curl_exec($curl);
    curl_close($curl);
    $productossss = json_decode($response, true);
    if (isset($productossss)) {
      $cantidadregistrosdevueltos = count($productossss['result']);
      for ($j = 0; $j < $cantidadregistrosdevueltos; $j++) {
        if (isset($productossss['result'][$j])) {
          //inserta laboratorios
          $laboratoriotraido = str_replace("'", "",$productossss['result'][$j]['manufacturer']);
          $newlab = "";
          if (isset($laboratoriotraido)) $newlab = altamodfjlaboratorios($laboratoriotraido);
          
          //inserta marcas
          $marcatraida = $productossss['result'][$j]['brand'];
          $marcacorregida = "";
          if (isset($marcatraida)) {
            $marcacorregida = str_replace("'", "", $marcatraida['brand']);
            $newmarca = altamodfjmarcas($marcatraida['id'], $marcacorregida, $marcatraida['logo'], $marcatraida['code'], $newlab);
          }
          
          //inserta categorias
          $categoriatraida = $productossss["result"][$j]["categoryProvider"];
          $datos2insertar['jcatid'] = '0';
          $datos2insertar['jcatname'] = "";
          if (isset($categoriatraida)) {
            $newcategoria = altamodfjcategorias($categoriatraida["id"], $categoriatraida["parent"], $categoriatraida["code"], $categoriatraida["name"], $categoriatraida["path"]);
            $datos2insertar['jcatid'] = $categoriatraida["id"];
            $datos2insertar['jcatname'] = $categoriatraida["name"];
          }

          //inserta lanzamientos e imagenes si corresponde
          $datos2insertar['jid'] = $productossss["result"][$j]["id"];
          $datos2insertar['jthumbnail'] = $productossss["result"][$j]["thumbnail"];
          $datos2insertar['jactive'] = $productossss["result"][$j]["active"];
          $datos2insertar['jsku'] = $productossss["result"][$j]["sku"];
          $datos2insertar['jsku'] = intval($datos2insertar['jsku']);
          $datos2insertar['jdescription'] = $productossss["result"][$j]["description"];
          $datos2insertar['jtitle'] = $productossss["result"][$j]["title"];
          $datos2insertar['jvideo'] = $productossss["result"][$j]["video"];
          $datos2insertar['jpermLink'] = $productossss["result"][$j]["permLink"];
          if ($datos2insertar['jvideo'] != "" ){
            echo $datos2insertar['jvideo']; 
          }
          $listadoimagenes = array();
          $imagenesainsertar = $productossss['result'][$j]["images"];
          if (isset($imagenesainsertar[0]['name'])){
            for ($contador=0; $contador < count($imagenesainsertar); $contador++) { 
              array_push($listadoimagenes,$imagenesainsertar[$contador]['remote_url']);
            }
          }
          
          $importarsino = definirsiinserta($datos2insertar,$laboratoriotraido,$marcacorregida);
          if ($importarsino) {
            //$resultadoalta = altalanzamientos($datos2insertar['jtitle'], $IdCatAliadas, $datos2insertar['jsku'], "<p> SKU:" . $datos2insertar['jsku'] . "</p>", $datos2insertar['jdescription'], $datos2insertar['jvideo'], $datos2insertar['jpermLink']," " , " ", " ", "alta", $FECHAPROCESO);
            $resultadoalta = altalanzamientos($datos2insertar['jtitle'], $IdCatAliadas, $datos2insertar['jsku'], "Código DDS: " . $datos2insertar['jsku'] , $datos2insertar['jdescription'], $datos2insertar['jvideo'], $datos2insertar['jpermLink'],"Lab:" . $laboratoriotraido . ", Marca:" . $marcacorregida . ", Cat:" . $datos2insertar['jcatname'] , " ", " ", "alta", $FECHAPROCESO);
            if ($resultadoalta['Alta'] == "1"){
              for ($contador = 0; $contador < count($listadoimagenes); $contador++) {
                //$nombrearchivofoto = traerfoto($datos2insertar['jthumbnail']);
                //escribirlog(" foto: " . $listadoimagenes[$contador] . " -- articulo " . $datos2insertar['jsku']);
                $nombrearchivofoto = traerfoto($listadoimagenes[$contador]);
                if ($nombrearchivofoto != "") {
                  //$nombrefoto = substr($datos2insertar['jthumbnail'], -255);
                  $nombrefoto = $nombrearchivofoto;
                  $identificador = $resultadoalta['IdentificadortoSet'];
                  $posicion = 'lanzamientos';
                  $resultadoinsertariimagen = insertarimagen($nombrefoto, $identificador, $nombrearchivofoto, $posicion, $FECHAPROCESO,$contador);
                } else {
                  escribirlog(" identificador: " . $resultadoalta['IdentificadortoSet']);
                }
              }
              $cantidaddealtas++;
              $postId = insertarPost($datos2insertar['jtitle'], $datos2insertar['jsku']);
              setLanzamientosPostId($resultadoalta['Resultado'], $postId);
            }
          }else { //si no se importa
//            $renglon = $productossss['result'][$j];
//            file_put_contents('tonoinsert.txt', print_r($renglon, true), FILE_APPEND);
//              $resultadoalta = altalanzamientos($datos2insertar['jtitle'], $IdCatAliadas, $datos2insertar['jsku'], "<p> SKU:" . $datos2insertar['jsku'] . "</p>", $datos2insertar['jdescription'], $datos2insertar['jvideo'], $datos2insertar['jpermLink'],"Lab:" . $laboratoriotraido . "-Marca:" . $marcacorregida . "-Cat:" . $datos2insertar['jcatname'] , " ", " ", "alta", $FECHAPROCESO);
          }
        }
      }
      $cantdeerroresdetraida = 0;
    }else{
      echo "**********************************" . "\n";
      echo "error en url " . $url . "\n";
      echo "**********************************". "\n";
      escribirlog("error en url " . $url);
      $cantdeerroresdetraida++;
      if ($cantdeerroresdetraida > 10) {
        $i = 50000;
        escribirlog("ERROR AL TRAER DATOS A PARTIR DE  " . $url);
      }
      $i--;
    }
    $segundos = strtotime(date('Y-m-d H:i:s')) - strtotime($fechaInicial);
    echo "Pagina " . $i . " de " . $cantidaddepaginas . " Duracion: " . $segundos . " segundos" . "\n";
  }
  escribirlog("Cantidad de lanzamientos agregados: " . $cantidaddealtas);

}
function obtenerurl($pagina,$maxResultados){
  global $URLAPI;
  global $PARAMETROSAPI;
  global $DIASATRAERLANZAMIENTOSFJ;
  $fechadesde= date('Y-m-d',strtotime(date('Y-m-d')."- " . $DIASATRAERLANZAMIENTOSFJ . " days")) ;
  $urlaconsultar = $URLAPI . "?";
  $urlaconsultar .= "page=" . $pagina . "&";
  $urlaconsultar .= "maxResults=" . $maxResultados . "&"; 
  $urlaconsultar .= "created_at_since=" . $fechadesde;
  return $urlaconsultar;
}

function definirsiinserta($pdatos2insertar, $plaboratorio, $pmarca){
  global $IdCatAliadas;
  global $listadoimagenes;
  //sin imagen de portada
  $nadadd = 0;
  for ($contador=0; $contador < count($listadoimagenes); $contador++) {
    $fileNameParts = explode('.', $listadoimagenes[$contador]);
    //extension de imagen tiff no soportado
    $ext = end($fileNameParts);
    if ($ext == "tiff"){
      unset($listadoimagenes[$contador]);
      $contador--;
     }
  }

  if (count($listadoimagenes)==0) {
    return false;
  }

  // if (trim($pdatos2insertar['jthumbnail']) == "") {
  //   return false;
  // }
  //   //extension de imagen tiff no soportado
  //   $fileNameParts = explode('.', $pdatos2insertar['jthumbnail']);
  //   $ext = end($fileNameParts);
  //   if ($ext == "tiff"){
  //     return false;
  //   }
  
  //inactivo
  if (trim($pdatos2insertar['jactive']) == "") {
    return false;
  }
  //sin sku
  if ($pdatos2insertar['jsku'] == 0 || $pdatos2insertar['jsku'] =="0") {
    return false;
  }
  //sin laboratorio o marca
  if ($plaboratorio == "" || $pmarca =="") {
    return false;
  }

  //sin descripcion 
  //condicion anulada por mail del 10/02/2022
  //if (trim($pdatos2insertar['jdescription']) ==""){
  //  return false;
  //}
  //sin categoria asociada en aliadas
  if ($pdatos2insertar['jcatid'] != '0') {
    $importar = checkcataliadas($pdatos2insertar['jcatid']);
    if ($importar == "0") {
      return false;
    }
  }else {
    return false;
  }
  $IdCatAliadas = $importar;

  //no incluidas en laboratorio,marca y categoria
  $importar = checkifimport($plaboratorio, $pmarca, $pdatos2insertar['jcatname'] );
  if ($importar <> "1") {
    return false;
  }
  return true;
}

function traerfoto($archivo){
  global $RUTADESCIMAGENES;

  $fileNameParts = explode('.', $archivo);
  $ext = end($fileNameParts);
  $stream = @fopen($archivo, 'rb');
  if (!$stream) {
      $MENSAJELOGS = "No se pudo abrir el archivo: ". $archivo;
      escribirlog($MENSAJELOGS);
      return false;
  }
  
  $contents = stream_get_contents($stream);
  do {
    $nombrearchivo = cadenaAleatoriaSegura(15) . "." . $ext;
  } while (file_exists($RUTADESCIMAGENES . $nombrearchivo));
  
  file_put_contents ($RUTADESCIMAGENES . $nombrearchivo, $contents);

  @fclose($stream);
  $okarchivo = resizeimg($RUTADESCIMAGENES . $nombrearchivo,$ext);
  if (!$okarchivo) {
    $MENSAJELOGS = "No se pudo convertir el archivo: ". $archivo;
    escribirlog($MENSAJELOGS);
    $archivoaborrar = $RUTADESCIMAGENES . $nombrearchivo;
    $nombrearchivo = "";
    try{
      if (file_exists($archivoaborrar )){
          $status=unlink($archivoaborrar);  
          if ($status){
              escribirlog($archivoaborrar . " borrado" );
          }else{
              escribirlog( $archivoaborrar . " NO borrado" );
          }
      }else{
          escribirlog( $archivoaborrar . " NO encontrado." );
      }

    } catch (Error $errores) {
      escribirlog($nombrearchivo . " NO borrado");
    }

    
  }
  return $nombrearchivo;
}