diff --git a/action/importer_emission.php b/action/importer_emission.php index 4c4f334..f0f7298 100644 --- a/action/importer_emission.php +++ b/action/importer_emission.php @@ -15,8 +15,12 @@ function action_importer_emission_dist($arg = null) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } - $id_article = $arg; + $texteReponse = libreavous_import_run($id_article); + ajax_retour($texteReponse, false); +} + +function libreavous_import_run($id_article) { $existant = sql_select("podcast_code","spip_articles","id_article=".$id_article); if ($existant and sql_count($existant)>0) { $r = sql_fetch($existant); @@ -176,8 +180,7 @@ function action_importer_emission_dist($arg = null) { } $texteReponse .= ""; } -// return $texteReponse; - ajax_retour($texteReponse, false); + return $texteReponse; } function libreavous_import_getDuration($code_emission, $code_sujet) { diff --git a/libreavous_fonctions.php b/libreavous_fonctions.php index 0cec66b..1e02e86 100644 --- a/libreavous_fonctions.php +++ b/libreavous_fonctions.php @@ -63,238 +63,3 @@ function libreavous_aveczerod($chaine) { } return $chaineaveczero; } - - -/*************************************** -* Importation du JSON des chapitres -* et des autres informations (durée, taille, etc) -***************************************/ - -function balise_LIBREAVOUS_IMPORT($p) { - $id_article = "''"; - if (($v = interprete_argument_balise(1,$p))!==NULL){ - $id_article = $v; - } - $p->code = "libreavous_import_run($id_article)"; - return $p; -} - -function libreavous_import_run($id_article) { - $id_article = intval($id_article); - $existant = sql_select("podcast_code,titre","spip_articles","id_article=".$id_article); - if ($existant and sql_count($existant)>0) { - $r = sql_fetch($existant); - $code_emission = $r["podcast_code"]; - $titre_emission = $r["titre"]; - if(strlen($code_emission) == 0) { - return "Le code de l'émission n'est pas renseigné"; - } - } else { - return "Émission inconnue = ".$id_article; - } - $erreurs = array(); - $logs = array(); - $json = false; - $podcast_duree = ""; - $ogg_size = ""; - $mp3_size = ""; - try { - $jsonUrl = "https://forge.april.org/libreavous/lav-outils/raw/branch/master/podcasts/config/lav-".$code_emission.".json"; - $jsonContents = file_get_contents($jsonUrl); - if ($jsonContents === false) { - $erreurs[] = "Erreur d'accès au fichier JSON :".$jsonUrl; - } else { - $json = json_decode($jsonContents, true); - if (!$json) { - $erreurs[] = "JSON incorrect :".$jsonUrl; - } - } - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - try { - $podcast_duree = libreavous_import_getDuration($code_emission, null); - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - try { - $ogg_size = libreavous_import_getSize($code_emission, null, "ogg"); - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - try { - $mp3_size = libreavous_import_getSize($code_emission, null, "mp3"); - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - $chapitres = array(); - if (array_key_exists("chapters", $json)) { - $chapters = $json["chapters"]; - $count = count($chapters); - if ($count > 0) { - $duree_sujetlong = 30 * 60; - $sujetlongIndex = -1; - for($i = 0; $i < $count; $i++) { - $chapter = $chapters[$i]; - $chapter["type"] = ""; - $debutSecondes = libreavous_import_toSeconde($chapter["start_timestamp"]); - $finSecondes = libreavous_import_toSeconde($chapter["end_timestamp"]); - if ($debutSecondes === false) { - $erreurs[] = "start_timestamp incorrect : ".$chapter["start_timestamp"]; - } else if ($finSecondes === false) { - $erreurs[] = "end_timestamp incorrect : ".$chapter["end_timestamp"]; - } else if ($debutSecondes == $finSecondes) { - $erreurs[] = "start_timestamp et end_timestamp identiques : ".$chapter["end_timestamp"]; - } else { - $duree = $finSecondes - $debutSecondes; - if ($duree > $duree_sujetlong) { - $sujetlongIndex = $i; - $duree_sujetlong = $duree; - } - $chapter["duree"] = $duree; - } - - if (!array_key_exists("chapter_title", $chapter)) { - $chapter["chapter_title"] = ""; - $erreurs[] = "Titre de chapitre manquant"; - } - $chapter["ogg_size"] = ""; - $chapter["mp3_size"] = ""; - if (!array_key_exists("short_chapter_name", $chapter)) { - $chapter["short_chapter_name"] = ""; - $erreurs[] = "Nom de fichier manquant"; - } else { - try { - $chapter["ogg_size"] = libreavous_import_getSize($code_emission, $chapter["short_chapter_name"], "ogg"); - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - try { - $chapter["mp3_size"] = libreavous_import_getSize($code_emission, $chapter["short_chapter_name"], "mp3"); - } catch (Exception $e) { - $erreurs[] = $e->getMessage(); - } - } - $chapter["chronique"]=""; - $chapitres[] = $chapter; - } - for($i = 0; $i < count($chapitres); $i++) { - if ($i == $sujetlongIndex) { - $chapitres[$i]["type"] = "SL"; - } else { - $array = libreavous_import_checkType($chapitres[$i]); - $chapitres[$i]["type"] = $array[0]; - if (count($array) > 1) { - $chapitres[$i]["chronique"] = $array[1]; - } - } - } - } - } - $emissionArray = array( - 'podcast_duree' =>$podcast_duree, - 'podcast_mp3' => $mp3_size, - 'podcast_ogg' => $ogg_size - ); - $logs[] = sql_updateq("spip_articles", $emissionArray, "id_article=".$id_article,'','',false); - sql_updateq("spip_articles", $emissionArray, "id_article=".$id_article); - foreach ($chapitres as $chapitre) { - $code_chapitre = $chapitre["short_chapter_name"]; - $chapitreArray = array( - 'titre' => $chapitre["chapter_title"], - 'code' => $code_chapitre, - 'id_article' => $id_article, - 'code_fichier' => $chapitre["short_chapter_name"], - 'code_podcast' => $code_emission, - 'debut' => $chapitre["start_timestamp"], - 'fin' => $chapitre["end_timestamp"], - 'type_sujet' => $chapitre["type"], - 'chronique' => $chapitre["chronique"], - 'mp3' => $chapitre["mp3_size"], - 'ogg' => $chapitre["ogg_size"] - ); - $chapitreExistant = sql_select("id_chapitre","spip_chapitres",array("id_article=".$id_article, "code=".sql_quote($code_chapitre))); - if ($chapitreExistant and sql_count($chapitreExistant)>0) { - $r = sql_fetch($chapitreExistant); - $id_chapitre = $r["id_chapitre"]; - $logs[] = sql_updateq("spip_chapitres", $chapitreArray, "id_chapitre=".$id_chapitre,'','',false); - sql_updateq("spip_chapitres", $chapitreArray, "id_chapitre=".$id_chapitre); - } else { - $logs[] = sql_insertq("spip_chapitres", $chapitreArray, '', '', false); - $id_nouveau_chapitre = sql_insertq("spip_chapitres", $chapitreArray); - } - } - $texteReponse = "
Émission traitée : ". $code_emission." / ".$titre_emission."
"; - if (count($erreurs) > 0) { - $texteReponse .= "".$erreur."
".$log."