if ($count != FALSE) { $log->add("got {$count} results"); } else { $log->add("error reading results"); avisoCel("could not read xml (tracks)"); // pausa de 3 secs (posible server restart o error en netm, esperamos) sleep(3); } } if ($count === FALSE) { // si no se pudo leer resultados, y se superaron los reintentos, termino el proceso $finished = TRUE; $log->add("too many retries with error"); // enviar aviso cel $log->add("sending sms notification"); avisoCel("too many retries with error (tracks,start={$start},size={$size})"); } else { // se obtuvo un nuevo resultado if ($count > 0) { $fetched++; } } // si no hay resultado de busqueda, termino el proceso if ($count == 0) { $finished = TRUE; } if ($finished === FALSE && $count > 0) { // si se obtuvieron resultados y no se termino, guardo el xml y sigo buscando mas $xmlName = date("Ymd") . "-tracks_" . $fetched . "-" . date("His") . ".xml"; $fName = TMP_DIR . "/" . $xmlName; $log->add("saving xml content to {$fName}");
} $tableName = "albums_generos"; $log->add("cleaning up temporary db table {$tableName}..."); if (emptyTable($dbc, $tableName) === TRUE) { $log->add("success!"); } else { $log->add("fail!"); // enviar aviso cel $log->add("sending sms notification"); avisoCel("could not clean up temp db: {$tableName}"); } $tableName = "albums_temas"; $log->add("cleaning up temporary db table {$tableName}..."); if (emptyTable($dbc, $tableName) === TRUE) { $log->add("success!"); } else { $log->add("fail!"); // enviar aviso cel $log->add("sending sms notification"); avisoCel("could not clean up temp db: {$tableName}"); } // PROCESAR GENEROS sleep(5); // pause 5 secs for db flush include_once "sync-groups.php"; // TODO: PROCESAR TEMAS sleep(5); // pause 5 secs for db flush include_once "sync-tracks.php"; $log->add("*** finished sync process ***"); $log->save(TRUE);
public function fetchXML($icpn, $oLog = NULL) { $log = $oLog; $finished = FALSE; $fetched = 0; $contractId = $this->contractId; while (!$finished) { $count = FALSE; $intentos = 0; while ($count == FALSE && $intentos < 3) { $intentos++; $url = "http://maxx.me.net-m.net/me/maxx/{$contractId}/items?contentTypeKey=FT_BUNDLE&icpn={$icpn}"; $log->add("reading {$url} (try #{$intentos})"); $xmlContents = file_get_contents($url); $doc = new DOMDocument(); $doc->loadXML($xmlContents); $count = getTrackCountResult($doc); if ($count != FALSE) { $log->add("got {$count} results"); } else { $log->add("error reading results"); avisoCel("could not read xml (albums)"); // pausa de 3 secs (posible server restart o error en netm, esperamos) sleep(3); } } if ($count === FALSE) { // si no se pudo leer resultados, y se superaron los reintentos, termino el proceso $finished = TRUE; $log->add("too many retries with error"); // enviar aviso cel $log->add("sending sms notification"); avisoCel("could not read xml (artists-albums)"); $newXML = FALSE; } else { // se obtuvo un nuevo resultado if ($count > 0) { $fetched++; } $newXML = TRUE; } // si no hay resultado de busqueda, termino el proceso if ($count == 0) { $finished = TRUE; } if ($newXML == TRUE) { // si se obtuvieron resultados y no se termino, guardo el xml y sigo buscando mas $xmlName = date("Ymd") . "-albums_" . $fetched . "-" . date("His") . ".xml"; $fName = TMP_DIR . "/" . $xmlName; $log->add("saving xml content to {$fName}"); $doc->save($fName); } $log->save(TRUE); if ($newXML == TRUE) { $result = $doc->getElementsByTagName("item"); // cada item corresponde a un album (o bundle en lenguaje netm) if ($result->length > 0) { $ok = 0; $error = 0; // si tengo albums para recorrer foreach ($result as $itemNumber => $xmlTrack) { $xmlItem = $result->item($itemNumber); if ($xmlItem->hasAttributes()) { $this->setFromXML($xmlItem); $ok++; } else { // no se pudo leer los datos del track $log->add("ERROR: no se pudieron obtener datos del track en: {$xmlName}"); $err++; } } $log->add("finished processing {$xmlName}... total={$count}, Ok={$ok}, error={$error}"); $finished = TRUE; // todo ok, salimos ;) } else { // no hay items para procesar $log->add("ERROR: no se encontraron items para procesar en: {$xmlName}"); } } else { // no hay mas resultados y se termino el proceso, no hay que guardar nada $log->add("finished getting tracks for icpn {$icpn} (" . $icpnData->prd_title . ")"); } } // $log->add("album fetched $fetched xml"); // $log->save(TRUE); }