Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 401 → Rev 402

/trunk/scripts/modules/algolia/algolia.default.ini
17,4 → 17,4
url_template_coste = "https://api.tela-botanica.org/service:eflore:0.1/coste/images?masque.nn=%s"
url_template_cel = "https://api.tela-botanica.org/service:eflore:0.1/cel/images?masque.nn=top:%s&retour=application/json&retour.format=CRS"
; la récupération des URL des images de Coste est lente, on peut la désactiver (0)
activer_image_coste = "0"
activer_image_cel = "1"
/trunk/scripts/modules/algolia/Algolia.php
31,7 → 31,8
const SCRIPT_NOM = 'algolia';
 
public $parametres = array(
'-ref' => array(false, false, 'Celui qui lit ça est un con')
'-ref' => array(false, false, 'Celui qui lit ça est un con'),
'-update' => array(false, false, 'Timestamp de la dernière mise à jour (YYYY-MM-DD)')
);
 
/** connexion PDO à la BDD "referentiels" */
64,6 → 65,10
var_dump($idsexistants);
exit;*/
 
if ($this->getParam('update')) {
$this->miseAJourPartielle($this->getParam('update'));
}
 
// Réglages de l'index @TODO tenir à jour
if ($this->confirmer("Charger les réglages par défaut (index_settings.json) dans la configuration de l'index Algolia ?")) {
// Chargement des réglages par défaut
278,7 → 283,7
);
// dans le cas de BDTFX, ajout de l'illustration de Coste et de
// la carte Chorodep pour illustrer les résultats de recherche
if ($ref == "bdtfx" && (Config::get("activer_image_coste") == "1")) {
if (Config::get("activer_image_cel") == "1") {
$this->ajouterImagesEflore($nn, $donneesRef);
}
 
351,6 → 356,67
}
}
 
/**
* Met à jour les images d'illustration
*/
protected function miseAJourPartielle($date) {
try {
$date = new DateTime($date);
$date = $date->format('Y-m-d');
} catch (Exception $e) {
die($e->getMessage());
}
 
// récupération des nn mis à jour
$sql = 'SELECT DISTINCT nn FROM del_image_top WHERE date_vote > ' . $date . ';';
$requete = $this->requete($sql);
$nns = $requete->fetchAll();
// var_dump($nns); die();
 
$donnees = array();
foreach ($nns as $nn) {
// récup des infos depuis le service d'images du cel
$retour = @file_get_contents($sprintf(Config::get('url_template_cel'), $nn));
if ($retour) {
try {
$infosCel = json_decode($retour, true);
if (! empty($infosCel['resultat']) && is_array($infosCel['resultat'])) {
foreach($infosCel['resultat'] as $organe => $imageSrc) {
$donnees[$nn]['thumbnails']['cel'][$organe] = $imageSrc;
}
// var_dump($donnees); die();
 
$response = $index->getObjects([$nn], ['objectID', 'nomenclatural_number', 'thumbnails']);
$response = json_decode($response, true);
// var_dump($response); die();
if (isset($response['results'])) {
$results = array_reduce($response['results'], function($carry, $item) use ($nn) {
if ($item['nomenclatural_number'] == $nn) {
$carry[] = $item;
}
return $carry;
});
// var_dump($results); die();
 
if (count($results) == 1) {
unset($results['thumbnails']['cel']);
$results = array_merge($results, $donnees[$nn]);
$index->partialUpdateObject([
'thumbnails' => $results['thumbnails'],
'objectID' => $results['objectID']
]);
}
 
}
}
} catch (Exception $e) {
die(var_dump($e));
}
}
}
 
}
 
// ---------------- utilitaires --------------------------------------------
 
protected function extrait($index, $clefsOuNombre) {