Changeset 62716 in spip-zone


Ignore:
Timestamp:
Jun 19, 2012, 12:25:17 PM (7 years ago)
Author:
kent1@…
Message:

On n'utilise plus du tout id_orig maintenant mais des documents attachés au document original

On évite de dupliquer du code dans les ajouts en file

Refaire marcher correctement les encodages et les logos

Améliorer les ajouts dans l'espace privé en n'utilisant que des squelettes

Location:
_plugins_/spipmotion/trunk
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spipmotion/trunk/action/spipmotion_ajouter_file_encodage.php

    r50673 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    1919 */
    2020function action_spipmotion_ajouter_file_encodage_dist(){
    21 
    2221        $securiser_action = charger_fonction('securiser_action', 'inc');
    2322        $arg = $securiser_action();
     
    3635function action_spipmotion_ajouter_file_encodage_post($r){
    3736        list(, $sign, $id, $type, $id_document,$format) = $r;
    38 
     37       
    3938        spipmotion_genere_file($id_document,$type,$id,$format);
    4039       
     
    5756       
    5857        if($extension){
    59                 $v = sql_select("id_document,id_vignette,fichier","spip_documents","id_orig=".intval($id_document)." AND extension=".sql_quote($extension));
     58                $v = sql_select("lien.id_document,document.id_vignette,document.fichier",
     59                                                "spip_documents as document LEFT JOIN spip_documents_liens as lien ON document.id_document=lien.id_document",
     60                                                "lien.id_objet=".intval($id_document)." AND lien.objet='document' AND document.extension=".sql_quote($extension));
    6061        }else{
    61                 $v = sql_select("id_document,id_vignette,fichier","spip_documents","id_orig=".intval($id_document));
     62                $v = sql_select("lien.id_document,document.id_vignette,document.fichier",
     63                                                "spip_documents as document LEFT JOIN spip_documents_liens as lien ON document.id_document=lien.id_document",
     64                                                "lien.id_objet=".intval($id_document)." AND lien.objet='document'");
    6265        }
    6366
     
    104107/**
    105108 * Fonction d'ajout des versions dans la file d'attente
     109 *
     110 * On ajoute des conversions possibles que si le document en cours n'est pas lui-même une conversion
    106111 *
    107112 * @param int $id_document l'id du document original
     
    110115 */
    111116function spipmotion_genere_file($id_document,$type,$id,$format=''){
    112         $infos_doc = sql_fetsel('extension,id_orig','spip_documents','id_document='.intval($id_document));
     117        $infos_doc = sql_fetsel('extension,mode','spip_documents','id_document='.intval($id_document));
    113118        $extension = $infos_doc['extension'];
    114         $id_orig = $infos_doc['id_orig'];
     119        $mode_orig = $infos_doc['mode'];
     120
    115121        $invalider = false;
    116         if($id_orig == 0){
     122        if($mode_orig != 'conversion'){
     123                include_spip('inc/config');
    117124                if($format && (
    118125                                (in_array($format,lire_config('spipmotion/fichiers_videos_sortie',array()))
     
    121128                                        && in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array())))
    122129                        )){
    123                         $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension =".sql_quote($format)." AND encode IN ('en_cours,non,erreur')");
     130                        $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=".intval($id_document)." AND extension =".sql_quote($format)." AND encode IN ('en_cours,non,erreur')");
    124131                        if(!$en_file){
    125132                                $invalider = true;
     
    137144                         */
    138145                        if(in_array($extension,lire_config('spipmotion/fichiers_videos_encodage',array()))){
    139                                 spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
     146                                spip_log("l'id_orig est $id_document et l'id_document est $id_document","spipmotion");
    140147                                foreach(lire_config('spipmotion/fichiers_videos_sortie',array()) as $extension_sortie){
    141148                                        $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
     
    156163                         */
    157164                        else if(in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array()))){
    158                                 spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
     165                                spip_log("l'id_orig est $id_document et l'id_document est $id_document","spipmotion");
    159166                                foreach(lire_config('spipmotion/fichiers_audios_sortie',array()) as $extension_sortie){
    160167                                        $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
  • _plugins_/spipmotion/trunk/action/spipmotion_ajouter_file_encodage_tout.php

    r50673 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    4141
    4242function action_spipmotion_ajouter_file_encodage_tout_post($format=false){
     43        include_spip('inc/config');
     44        include_spip('action/spipmotion_ajouter_file_encodage');
    4345        if($format){
    4446                if(in_array($format,lire_config('spipmotion/fichiers_audios_sortie',array()))){
     
    5052                $formats = array_merge(lire_config('spipmotion/fichiers_videos_encodage',array()),lire_config('spipmotion/fichiers_audios_encodage',array()));
    5153        }
    52         $fichiers = sql_select('*','spip_documents',sql_in('extension',$formats).' AND id_orig=0');
     54        $fichiers = sql_select('*','spip_documents',sql_in('extension',$formats).' AND mode!="conversion"');
    5355        while($fichier = sql_fetch($fichiers)){
    5456                spipmotion_genere_file($fichier['id_document'],'','',$format);
     
    5860        $encodage_direct();
    5961}
    60 
    61 /**
    62  * Supprime les versions du document que l'on souhaite encoder
    63  * - Supprime les fichiers existants et leurs insertions en base
    64  * - Supprime la présence de ces documents dans la file d'attente
    65  *
    66  * Cette fonction n'est plus utilisée puisqu'on supprime uniquement au niveau du
    67  * lancement de l'encodage
    68  *
    69  * @param int $id_document L'id_document original
    70  */
    71 function spipmotion_supprimer_versions($id_document){
    72 
    73         $v = sql_select("id_document,id_vignette,fichier","spip_documents","id_orig=".intval($id_document));
    74 
    75         include_spip('inc/documents');
    76         /**
    77          * Pour chaque version du document original
    78          */
    79         while($version = sql_fetch($v)){
    80                 /**
    81                  * On ajoute l'id_document dans la liste des documents
    82                  * à supprimer de la base
    83                  * On supprime le fichier correspondant
    84                  */
    85                 $liste[] = $version['id_document'];
    86                 if (@file_exists($f = get_spip_doc($version['fichier']))) {
    87                         supprimer_fichier($f);
    88                 }
    89 
    90                 /**
    91                  * Si le document a une vignette :
    92                  * - On ajoute l'id_document dans la liste à supprimer
    93                  * - On supprime le fichier correspondant à la vignette
    94                  */
    95                 if($version['id_vignette'] > 0){
    96                         $liste[] = $version['id_vignette'];
    97                         $fichier = sql_getfetsel('fichier','spip_documents','id_document='.$version['id_vignette']);
    98                         if (@file_exists($f = get_spip_doc($fichier))) {
    99                                 supprimer_fichier($f);
    100                         }
    101                 }
    102 
    103         }
    104         if(is_array($liste)){
    105                 $in = sql_in('id_document', $liste);
    106                 sql_delete("spip_documents", $in);
    107                 sql_delete("spip_documents_liens", $in);
    108                 sql_delete("spip_spipmotion_attentes", "id_document=".intval($id_document).' AND encode != '.sql_quote('oui'));
    109         }
    110 
    111         include_spip('inc/invalideur');
    112         suivre_invalideur(1);
    113 }
    114 
    115 /**
    116  * Fonction d'ajout des versions dans la file d'attente
    117  *
    118  * @param int $id_document l'id du document original
    119  * @param unknown_type $type
    120  * @param unknown_type $id
    121  */
    122 function spipmotion_genere_file($id_document,$type,$id,$format=''){
    123         $infos_doc = sql_fetsel('extension,id_orig','spip_documents','id_document='.intval($id_document));
    124         $extension = $infos_doc['extension'];
    125         $id_orig = $infos_doc['id_orig'];
    126         $invalider = false;
    127         if($id_orig == 0){
    128                 if($format && (
    129                                 (in_array($format,lire_config('spipmotion/fichiers_videos_sortie',array()))
    130                                         && in_array($extension,lire_config('spipmotion/fichiers_videos_encodage',array())))
    131                                 OR (in_array($format,lire_config('spipmotion/fichiers_audios_sortie',array()))
    132                                         && in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array())))
    133                         )){
    134                         $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension =".sql_quote($format)." AND encode IN ('en_cours,non,erreur')");
    135                         if(!$en_file){
    136                                 $invalider = true;
    137                                 $document = sql_fetsel("docs.id_document, docs.extension,docs.fichier,docs.mode,docs.distant, L.vu, L.objet, L.id_objet", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".intval($id_document));
    138                                 $id_doc_attente = sql_insertq("spip_spipmotion_attentes", array('id_document'=>$id_document,'objet'=>$document['objet'],'id_objet'=>$document['id_objet'],'encode'=>'non','id_auteur'=> $GLOBALS['visiteur_session']['id_auteur'],'extension'=>$format));
    139                                 spip_log("on ajoute un document dans la file d'attente : $id_doc_attente","spipmotion");
    140                         }
    141                         else{
    142                                 spip_log("Ce document existe deja dans la file d'attente","spipmotion");
    143                         }
    144                 }else if(!$format){
    145                         spip_log('on relance l encodage pour tous les formats','spipmotion');
    146                         /**
    147                          * Ajout de la vidéo dans la file d'attente d'encodage si besoin
    148                          */
    149                         if(in_array($extension,lire_config('spipmotion/fichiers_videos_encodage',array()))){
    150                                 spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
    151                                 foreach(lire_config('spipmotion/fichiers_videos_sortie',array()) as $extension_sortie){
    152                                         $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
    153                                         if(!$en_file){
    154                                                 $document = sql_fetsel("docs.id_document, docs.extension,docs.fichier,docs.mode,docs.distant, L.vu, L.objet, L.id_objet", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".intval($id_document));
    155                                                 $id_doc_attente = sql_insertq("spip_spipmotion_attentes", array('id_document'=>$id_document,'objet'=>$document['objet'],'id_objet'=>$document['id_objet'],'encode'=>'non','id_auteur'=> $GLOBALS['visiteur_session']['id_auteur'],'extension'=>$extension_sortie));
    156                                                 spip_log("on ajoute une video dans la file d'attente : $id_doc_attente","spipmotion");
    157                                                 $invalider = true;
    158                                         }
    159                                         else{
    160                                                 spip_log("Cette video existe deja dans la file d'attente","spipmotion");
    161                                         }
    162                                 }
    163                         }
    164 
    165                         /**
    166                          * Ajout du son dans la file d'attente d'encodage si besoin
    167                          */
    168                         else if(in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array()))){
    169                                 spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
    170                                 foreach(lire_config('spipmotion/fichiers_audios_sortie',array()) as $extension_sortie){
    171                                         $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
    172                                         if(!$en_file){
    173                                                 $invalider = true;
    174                                                 $document = sql_fetsel("docs.id_document, docs.extension,docs.fichier,docs.mode,docs.distant, L.vu, L.objet, L.id_objet", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".intval($id_document));
    175                                                 $id_doc_attente = sql_insertq("spip_spipmotion_attentes", array('id_document'=>$id_document,'objet'=>$document['objet'],'id_objet'=>$document['id_objet'],'encode'=>'non','id_auteur'=> $GLOBALS['visiteur_session']['id_auteur'],'extension'=>$extension_sortie));
    176                                                 spip_log("on ajoute un son dans la file d'attente : $id_doc_attente","spipmotion");
    177                                         }
    178                                         else{
    179                                                 spip_log("Ce son existe deja dans la file d'attente","spipmotion");
    180                                         }
    181                                 }
    182                         }
    183                 }
    184                 if($invalider){
    185                         include_spip('inc/invalideur');
    186                         suivre_invalideur(1);
    187                 }
    188         }
    189 }
    19062?>
  • _plugins_/spipmotion/trunk/action/spipmotion_encoder.php

    r51536 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    4949        $nb_encodages = sql_countsel('spip_spipmotion_attentes', "encode='non'");
    5050        spip_log('Appel de la fonction d encodage','spipmotion');
    51         spip_log("Il y a $nb_encodages document(s) à encoder","spipmotion");
    5251        $en_cours = sql_fetsel('id_spipmotion_attente,maj','spip_spipmotion_attentes',"encode='en_cours'");
    5352       
     
    5857                $ps_ffmpeg = exec('ps -C ffmpeg',$retour,$retour_int);
    5958                if(($retour_int == 1) && (count($retour) >= 3)){
     59                        spip_log('Il y a a apparemment trop de processus de ffmpeg en cours, on attend donc','spipmotion');
    6060                        $process = false;
    6161                }else{
  • _plugins_/spipmotion/trunk/action/spipmotion_infos.php

    r52334 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
  • _plugins_/spipmotion/trunk/action/spipmotion_logo.php

    r50673 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    2626        if(_request('redirect')){
    2727                $redirect = str_replace('&','&',urldecode(_request('redirect')));
    28                 //redirige_par_entete($redirect);
    2928        }
    3029        return $redirect;
  • _plugins_/spipmotion/trunk/action/spipmotion_relancer_encodage.php

    r50529 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
    8  * 2008-2011 - Distribué sous licence GNU/GPL
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
     8 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
    1010 */
     
    1818 */
    1919function action_spipmotion_relancer_encodage_dist(){
    20         global $visiteur_session;
    2120
    2221        $securiser_action = charger_fonction('securiser_action', 'inc');
     
    2625
    2726        $update = 'nok';
    28         if(is_numeric($arg) && autoriser('relancerencodage','spipmotion',$arg,$visiteur_session) &&
     27        if(is_numeric($arg) && autoriser('relancerencodage','spipmotion',$arg) &&
    2928                (sql_getfetsel('encode','spip_spipmotion_attentes','id_spipmotion_attente='.intval($arg)) == 'erreur')){
    3029                sql_updateq('spip_spipmotion_attentes',array('encode'=>'non'),'id_spipmotion_attente='.intval($arg));
    3130                $update = 'ok';
    32         }else if(($arg == 'tout') && autoriser('configurer','','',$visiteur_session)){
     31        }else if(($arg == 'tout') && autoriser('configurer','spipmotion')){
    3332                sql_updateq('spip_spipmotion_attentes',array('encode'=>'non'),'encode="erreur"');
    3433                $update = 'ok_tout';
     
    4039        if(_request('redirect')){
    4140                $redirect = urldecode(_request('redirect'));
    42                 redirige_par_entete(parametre_url($redirect,'relance',$update,'&'));
     41                //redirige_par_entete(parametre_url($redirect,'relance',$update,'&'));
    4342        }
     43        return $redirect;
    4444}
    4545?>
  • _plugins_/spipmotion/trunk/action/spipmotion_remove_version.php

    r58232 r62716  
    22/**
    33 * SPIPmotion
    4  * Suppression d'une version spécifique ou de toutes les versions d'un document encodé
     4 * Gestion de l'encodage et des métadonnées de vidéos directement dans spip
    55 *
    66 * Auteurs :
    7  * kent1 (kent1@arscenic.info)
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
    88 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
  • _plugins_/spipmotion/trunk/action/spipmotion_verifier_binaires.php

    r58232 r62716  
    55 *
    66 * Auteurs :
    7  * Quentin Drouet (kent1)
     7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
    88 * 2008-2012 - Distribué sous licence GNU/GPL
    99 *
  • _plugins_/spipmotion/trunk/inc/encodage.php

    r62615 r62716  
    2222         * Si oui on la supprime avant de la réencoder
    2323         */
    24         if($id_document = sql_getfetsel('id_document','spip_documents','id_orig='.intval($source['id_document']).' AND extension='.sql_quote($format))){
     24         if($id_document = sql_getfetsel('document.id_document',
     25                                                                        'spip_documents as document LEFT JOIN spip_documents_liens as lien ON document.id_document=lien.id_document',
     26                                                                        'lien.id_objet='.intval($source['id_document']).' AND lien.objet='.sql_quote("document").' AND document.extension='.sql_quote($format).' AND document.mode='.sql_quote("conversion"))){
    2527                spip_log("Il faut supprimer $id_document",'spipmotion');
    2628                $v = sql_fetsel("id_document,id_vignette,fichier","spip_documents","id_document=".intval($id_document));
     
    8183                return;
    8284
     85        include_spip('inc/config');
    8386        $spipmotion_compiler = @unserialize($GLOBALS['spipmotion_metas']['spipmotion_compiler']);
    8487        $ffmpeg_version = $spipmotion_compiler['ffmpeg_version'] ? $spipmotion_compiler['ffmpeg_version'] : '0.7';
     
    9194
    9295        $encodeur = lire_config("spipmotion/encodeur_$extension_attente",'');
     96        $chemin_ffmpeg = (strlen(lire_config('spipmotion/chemin')) > 0) ? "--p ".lire_config('spipmotion/chemin') : '';
    9397        if($source['rotation'] == '90'){
    9498                $encodeur = 'ffmpeg';
     
    289293                 * Encodage du son
    290294                 */
    291                 $encodage = $spipmotion_sh.' --e '.$chemin.' --s '.$fichier_temp.' '.$acodec.' '.$audiobitrate_ffmpeg.' '.$audiofreq.' '.$audiochannels_ffmpeg.' -f --p '.lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg").' --log '.$fichier_log;
     295                $encodage = $spipmotion_sh.' --e '.$chemin.' --s '.$fichier_temp.' '.$acodec.' '.$audiobitrate_ffmpeg.' '.$audiofreq.' '.$audiochannels_ffmpeg.' -f '.$chemin_ffmpeg.' --log '.$fichier_log;
    292296                spip_log("$encodage",'spipmotion');
    293297                $lancement_encodage = exec($encodage,$retour,$retour_int);
     
    373377                 */
    374378                if(intval($source['videobitrate']) && (intval($source['videobitrate']) < (lire_config("spipmotion/bitrate_$extension_attente","448"))*1000)){
    375                         if($encodeur == 'ffmpeg2theora'){
     379                        if(($encodeur == 'ffmpeg2theora') OR ($vcodec == '--vcodec libtheora')){
    376380                                $vbitrate = $source['videobitrate'];
    377381                        }else{
    378382                                $vbitrate = null;
    379                         }
    380                         $infos_sup_normal .= ' -sameq ';
     383                                $infos_sup_normal .= ' -sameq ';
     384                        }
    381385                        $bitrate = "--bitrate ".$source['videobitrate'];
    382386                }else{
     
    420424                        }
    421425                        $infos_sup_normal .= " -aspect $width_finale:$height_finale";
    422                         if($format)
    423                                 $infos_sup_normal .= ' -f '.$format;
    424                 }
    425 
     426                        //if($format)
     427                        //      $infos_sup_normal .= ' -f '.$format;
     428                }
     429                if(($vcodec == "--vcodec libtheora") && ($encodeur != 'ffmpeg2theora')){
     430                        if(in_array('--enable-pthreads',$configuration)){
     431                                $infos_sup_normal .= " -threads 0 ";
     432                        }
     433                }
    426434                $fichier_texte = "$dossier$query.txt";
    427435
     
    455463                                }
    456464                                $infos_sup_normal_1 = "--params_supp \"-an $preset_1 -passlogfile $pass_log_file $infos_sup_normal $rotation\"";
    457                                 $encodage_1 = $spipmotion_sh." --force true --pass 1 $video_size --e $chemin $vcodec $fps $bitrate $infos_sup_normal_1 --s $fichier_temp --p ".lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg")." --log $fichier_log";
     465                                $encodage_1 = $spipmotion_sh." --force true --pass 1 $video_size --e $chemin $vcodec $fps $bitrate $infos_sup_normal_1 --s $fichier_temp $chemin_ffmpeg --log $fichier_log";
    458466                                spip_log($encodage_1,'spipmotion');
    459467                                $lancement_encodage_1 = exec($encodage_1,$retour_1,$retour_int_1);
     468                                spip_log($retour_1,'spipmotion');
    460469                                /**
    461470                                 * La première passe est ok
     
    474483                                       
    475484                                        $infos_sup_normal_2 = '--params_supp \'-passlogfile '.$pass_log_file.' '.$infos_sup_normal.' '.$rotation.' '.$metadatas.'\'';
    476                                         $fichier_log = "$fichier_log-pass2.log";
    477                                         $encodage = $spipmotion_sh." --force true --pass 2 $audiofreq $audiobitrate_ffmpeg $audiochannels_ffmpeg $video_size --e $chemin $acodec $vcodec $fps $bitrate $infos_sup_normal_2  --fpre $fichier_texte --s $fichier_temp --p ".lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg")." --log $fichier_log";
     485                                        $encodage = $spipmotion_sh." --force true --pass 2 $audiofreq $audiobitrate_ffmpeg $audiochannels_ffmpeg $video_size --e $chemin $acodec $vcodec $fps $bitrate $infos_sup_normal_2  --fpre $fichier_texte --s $fichier_temp $chemin_ffmpeg --log $fichier_log";
    478486                                        spip_log($encodage,'spipmotion');
    479487                                        $lancement_encodage = exec($encodage,$retour,$retour_int);
     488                                        spip_log($retour,'spipmotion');
    480489                                }else{
     490                                        spip_log('SPIPMOTION Erreur : Le retour de l encodage est revenu en erreur','spipmotion'._LOG_CRITICAL);
    481491                                        $retour_int = 1;
    482492                                }
     
    495505                                        $infos_sup_normal = "--params_supp \"$infos_sup_normal\"";
    496506                                }
    497                                 $encodage = $spipmotion_sh." --force true $audiofreq $video_size --e $chemin $acodec $vcodec $fps $audiobitrate_ffmpeg $audiochannels_ffmpeg $bitrate $infos_sup_normal --s $fichier_temp --fpre $fichier_texte --p ".lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg")." --log $fichier_log";
     507                                $encodage = $spipmotion_sh." --force true $audiofreq $video_size --e $chemin $acodec $vcodec $fps $audiobitrate_ffmpeg $audiochannels_ffmpeg $bitrate $infos_sup_normal --s $fichier_temp --fpre $fichier_texte $chemin_ffmpeg --log $fichier_log";
    498508                                spip_log($encodage,'spipmotion');
    499509                                $lancement_encodage = exec($encodage,$retour,$retour_int);
     
    515525                 * le pipeline post-edition appelé par l'ajout du document
    516526                 */
    517                 $mode = 'document';
     527                $mode = 'conversion';
    518528                spip_log('Ajout du document en base','spipmotion');
    519                 $ajouter_documents = charger_fonction('ajouter_documents', 'inc');
    520                 $x = $ajouter_documents($fichier_temp, $fichier_final, $type_doc, $id_objet, $mode, '', $actif,'','','');
     529                $ajouter_documents = charger_fonction('ajouter_documents', 'action');
     530                $doc = array(array('tmp_name'=>$fichier_temp,'name'=>$fichier_final,'mode'=>$mode));
     531                $x = $ajouter_documents('new',$doc, 'document', $source['id_document'], $mode);
     532                $x = reset($x);
    521533                spip_log('le nouveau document est le '.$x,'spipmotion');
    522534                if(intval($x) > 1){
     
    539551                                $vignette = sql_fetsel('fichier,extension','spip_documents','id_document='.intval($source['id_vignette']));
    540552                                $fichier_vignette = get_spip_doc($vignette['fichier']);
    541                                 $string_tmp = basename(get_spip_doc($vignette['fichier'])).'-'.mktime();
    542                                 $nom_vignette = md5($string_tmp).'.'.$vignette['extension'];
    543                                 $x2 = $ajouter_documents($fichier_vignette, $nom_vignette, '', '', 'vignette', $x, $actif,'','','');
     553                                $vignette = array(array('tmp_name'=>$fichier_vignette,'name'=>$fichier_vignette));
     554                                $x2 = $ajouter_documents('new', $vignette, '', 0, 'vignette');
     555                                $id_vignette = reset($x2);
     556                                if (is_numeric($id_vignette)){
     557                                        $source['id_vignette'] = $id_vignette;
     558                                }
    544559                        }
    545560                        /**
     
    554569                        if(_DIR_PLUGIN_MEDIAS)
    555570                                $champs_recup['credits'] = '';
     571                        $champs_recup['id_vignette'] = '';
    556572                               
    557573                        $modifs = array_intersect_key($source, $champs_recup);
    558574                       
    559                         /**
    560                          * On ajoute l'id dur document original id_orig
    561                          */
    562                         $modifs['id_orig'] = $attente['id_document'];
    563                        
    564                         include_spip('inc/modifier');
    565                         revision_document($x, $modifs);
     575                        include_spip('action/editer_document');
     576                        document_modifier($x, $modifs);
    566577                       
    567578                        $reussite = 'oui';
     
    588599        }
    589600
    590         if(file_exists(_DIR_RACINE.$query.'-0.log')){
    591                 supprimer_fichier(_DIR_RACINE.$query.'-0.log');
    592         }
    593         if(file_exists($pass_log_file)){
    594                 supprimer_fichier($pass_log_file);
    595         }
    596         if(file_exists($pass_log_file.'.mbtree')){
    597                 supprimer_fichier($pass_log_file.'.mbtree');
    598         }
    599         if(file_exists(_DIR_RACINE.$query.'.mbtree')){
    600                 supprimer_fichier(_DIR_RACINE.$query.'.mbtree');
    601         }
    602         if(file_exists($fichier_temp)){
    603                 supprimer_fichier($fichier_temp);
    604         }
    605         if(file_exists(_DIR_RACINE.$query.'-pass')){
    606                 supprimer_fichier(_DIR_RACINE.$query.'-pass');
     601        /**
     602         * On supprime les différents fichiers temporaires qui auraient pu être créés
     603         * si on a une réussite
     604         */
     605        if($reussite == 'oui'){
     606                if(file_exists(_DIR_RACINE.$query.'-0.log')){
     607                //      supprimer_fichier(_DIR_RACINE.$query.'-0.log');
     608                }
     609                if(file_exists($pass_log_file)){
     610                //      supprimer_fichier($pass_log_file);
     611                }
     612                if(file_exists($pass_log_file.'.mbtree')){
     613                        supprimer_fichier($pass_log_file.'.mbtree');
     614                }
     615                if(file_exists(_DIR_RACINE.$query.'.mbtree')){
     616                        supprimer_fichier(_DIR_RACINE.$query.'.mbtree');
     617                }
     618                if(file_exists($fichier_temp)){
     619                        supprimer_fichier($fichier_temp);
     620                }
     621                if(file_exists(_DIR_RACINE.$query.'-pass')){
     622                        supprimer_fichier(_DIR_RACINE.$query.'-pass');
     623                }
    607624        }
    608625        pipeline('post_spipmotion_encodage',
  • _plugins_/spipmotion/trunk/inc/ffmpeg_infos.php

    r62658 r62716  
    198198                         */
    199199                        $spipmotion_infos_sh = exec($spipmotion_sh.' --help',$retour_spipmotion_sh,$int_spipmotion_sh);
    200                         spip_log($retour_spipmotion_sh,'spipmotion');
    201200                        if(!empty($retour_spipmotion_sh)){
    202201                                $info = $retour_spipmotion_sh[1];
     
    212211                         */
    213212                        if($GLOBALS['spipmotion_metas']['spipmotion_safe_mode'] == 'oui'){
    214                                 $spipmotion_sh_vignettes = $GLOBALS['spipmotion_metas']['spipmotion_safe_mode_exec_dir'].'/spipmotion_vignettes.sh';
     213                                $spipmotion_sh_vignettes = $GLOBALS['spipmotion_metas']['spipmotion_safe_mode_exec_dir'].'/spipmotion_vignette.sh';
    215214                        }else{
    216                                 $spipmotion_sh_vignettes = find_in_path('script_bash/spipmotion_vignettes.sh');
     215                                $spipmotion_sh_vignettes = find_in_path('script_bash/spipmotion_vignette.sh');
    217216                        }
    218217                        $spipmotion_sh_vignettes_infos = exec($spipmotion_sh_vignettes.' --help',$retour_spipmotion_sh_vignettes,$int_spipmotion_sh_vignettes);
    219218                        if(!empty($retour_spipmotion_sh_vignettes)){
    220                                 $info = $retour_spipmotion_sh_vignettes[0];
     219                                $info = $retour_spipmotion_sh_vignettes[2];
    221220                                preg_match('/SPIPmotion vignette v([0-9a-z].*)/s',$info,$infos);
    222221                                $data['spipmotion_spipmotion_sh_vignettes']['spipmotion_sh_vignettes'] = true;
  • _plugins_/spipmotion/trunk/inc/spipmotion_recuperer_logo.php

    r62702 r62716  
    4747        $retour = 0;
    4848        $document = sql_fetsel("docs.hasvideo,docs.id_document,docs.fichier,docs.duree,docs.id_vignette,docs.mode", "spip_documents AS docs INNER JOIN spip_documents_liens AS L ON L.id_document=docs.id_document","L.id_document=".sql_quote($id_document));
     49        $vignette_existante = sql_getfetsel('id_document','spip_documents','id_document='.intval($document['id_vignette']));
     50        if(!$vignette_existante)
     51                $vignette_existante = 'new';
    4952        $chemin_court = $document['fichier'];
    5053        $chemin = get_spip_doc($chemin_court);
     
    97100                                                                $vignette = sql_getfetsel('fichier','spip_documents','id_document='.intval($original['id_vignette']));
    98101                                                                $vignette = get_spip_doc($vignette);
    99                                                                 $x = $ajouter_documents($document['id_vignette']?$document['id_vignette']:'new',
     102                                                                $x = $ajouter_documents($vignette_existante,
    100103                                                                                                array(array('tmp_name'=>$img_finale,'name'=> $img_finale)),
    101104                                                                                        '', 0, 'vignette');
     
    104107                                                                        $vignette = true;
    105108                                                                        $id_vignette = $x;
    106                                                                         document_modifier($id_document, array('id_vignette'=>$x));
     109                                                                        if($document['id_vignette'] != $x)
     110                                                                                document_modifier($id_document, array('id_vignette'=>$x));
    107111                                                                }
    108112                                                            return $x;
     
    114118                                                                $retour++;
    115119                                                        }else if(file_exists($img_finale)){
    116                                                                 $x = $ajouter_documents($document['id_vignette']?$document['id_vignette']:'new',
     120                                                                $x = $ajouter_documents($vignette_existante,
    117121                                                                                                        array(array('tmp_name'=>$img_finale,'name'=> $img_finale)),
    118122                                                                                                '', 0, 'vignette');
     
    121125                                                                        $vignette = true;
    122126                                                                        $id_vignette = $x;
    123                                                                         document_modifier($id_document, array('id_vignette'=>$x));
     127                                                                        if($document['id_vignette'] != $x)
     128                                                                                document_modifier($id_document, array('id_vignette'=>$x));
    124129                                                                }
    125130                                                                unlink($img_finale);
     
    129134                                                }else{
    130135                                                        if(file_exists($img_finale)){
    131                                                                 $x = $ajouter_documents($document['id_vignette']?$document['id_vignette']:'new',
     136                                                                $x = $ajouter_documents($vignette_existante,
    132137                                                                                                        array(array('tmp_name'=>$img_finale,'name'=> $img_finale)),
    133138                                                                                                '', 0, 'vignette');
     
    136141                                                                        $vignette = true;
    137142                                                                        $id_vignette = $x;
    138                                                                         document_modifier($id_document, array('id_vignette'=>$x));
     143                                                                        if($document['id_vignette'] != $x)
     144                                                                                document_modifier($id_document, array('id_vignette'=>$x));
    139145                                                                }
    140146                                                        }
  • _plugins_/spipmotion/trunk/prive/squelettes/inclure/file_attente.html

    r62692 r62716  
    77<B_spipmotion_file>
    88#SET{total,#GRAND_TOTAL}
    9 [<p>(#GET{total}|singulier_ou_pluriel{<:spipmotion:info_nombre_encodage_attente:>,<:spipmotion:info_nombre_encodages_attentes:>})</p>]
     9[<p>(#GET{total}|singulier_ou_pluriel{spipmotion:info_nombre_encodage_attente,spipmotion:info_nombre_encodages_attentes})</p>]
    1010#ANCRE_PAGINATION
    1111<table class="spipmotion spip liste" id="spipmotion_file">
     
    2323        <tbody class="ajax">
    2424<BOUCLE_spipmotion_file(SPIPMOTION_ATTENTES){encode != oui}{par id_spipmotion_attente}{pagination #ENV{pagination,20}}>
    25         <tr class="tr_liste[ (#COMPTEUR_BOUCLE|alterner{row_even,row_odd})]">
     25        <tr class="tr_liste[ (#COMPTEUR_BOUCLE|alterner{row_even,row_odd})] #ENCODE">
    2626                <td>##ID_SPIPMOTION_ATTENTE</td>
    2727                <td>
     
    4141                                #SET{erreur,oui}
    4242                                [(#AUTORISER{relancer_encodage,spipmotion,#ID_SPIPMOTION_ATTENTE}|oui)
    43                                         [(#BOUTON_ACTION{[(#VAL{spipmotion:info_statut_encode_#ENCODE}|_T)],[(#URL_ACTION_AUTEUR{spipmotion_relancer_encodage,#ID_SPIPMOTION_ATTENTE,[(#SELF|parametre_url{log,''}|parametre_url{relance,''})]})],'','',<:spipmotion:label_relancer_encodage|attribut_html:>})]]
     43                                        [(#BOUTON_ACTION{[(#VAL{spipmotion:info_statut_encode_#ENCODE}|_T)],[(#URL_ACTION_AUTEUR{spipmotion_relancer_encodage,#ID_SPIPMOTION_ATTENTE,[(#SELF|parametre_url{log,''}|parametre_url{relance,''})]})],ajax,'',<:spipmotion:label_relancer_encodage|attribut_html:>})]]
    4444                                [(#AUTORISER{relancer_encodage,spipmotion,#ID_SPIPMOTION_ATTENTE}|non)[(#VAL{spipmotion:info_statut_encode_#ENCODE}|_T)]]
    4545                                [(#INFOS|table_valeur{log}|strlen|>{1}|oui)<a href="[(#SELF|parametre_url{log,#ID_SPIPMOTION_ATTENTE})]" class="ajax"><:spipmotion:info_voir_log_erreur:></a>]
     
    5454</table>
    5555[<div class="pagination pagination_spipmotion">(#PAGINATION{page})</div>]
    56 [(#GET{erreur}|=={oui}|et{#AUTORISER{configurer}}|oui)
     56[(#GET{erreur}|=={oui}|et{#AUTORISER{configurer,spipmotion}}|oui)
    5757<div class="actions">
    58         [(#BOUTON_ACTION{<:spipmotion:info_relancer_erreurs:>,[(#URL_ACTION_AUTEUR{spipmotion_relancer_encodage,'tout',[(#SELF|parametre_url{log,''}|parametre_url{relance,''})]})],'','',''})]
     58        [(#BOUTON_ACTION{<:spipmotion:info_relancer_erreurs:>,[(#URL_ACTION_AUTEUR{spipmotion_relancer_encodage,'tout',[(#SELF|parametre_url{log,''}|parametre_url{relance,''})]})],ajax})]
    5959</div>]
    6060</B_spipmotion_file>
     
    6666<script type="text/javascript">
    6767        var refresh = function(){
    68                 if($('#spipmotion_file tbody tr').size() > 0){
     68                if($('#spipmotion_file tbody tr').not('.erreur').size() > 0){
    6969                        $('#spipmotion_recharge_file').click();
    7070                }
    7171        }
     72        clearTimeout(refresh);
    7273        setTimeout(refresh,30000);
    7374</script>
  • _plugins_/spipmotion/trunk/spipmotion_pipelines.php

    r62702 r62716  
    2525 */
    2626function spipmotion_document_desc_actions($flux){
    27         $id_document = $flux['args']['id_document'];
    28         $infos_doc = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    29         include_spip('inc/config');
    30         if(($GLOBALS['meta']['spipmotion_casse'] != 'oui') && (($video = in_array($infos_doc['extension'],lire_config('spipmotion/fichiers_videos',array()))) OR ($son = in_array($infos_doc['extension'],lire_config('spipmotion/fichiers_audios',array()))))){
    31                 include_spip('inc/documents');
    32                 if(file_exists(get_spip_doc($infos_doc['fichier']))){
    33                         include_spip('inc/autoriser');
    34                         if(autoriser('modifier','document',$id_document)){
    35                                 $redirect = ancre_url(self(),"doc".$id_document);
    36                                 if($video){
    37                                         $url_action_logo = generer_action_auteur('spipmotion_logo', "0/article/$id_document", $redirect);
    38                                         $texte_logo = _T('spipmotion:recuperer_logo');
    39                                         $flux['data'] .= " | <a href='$url_action_logo'>$texte_logo</a>";
    40                                         if(extension_loaded('ffmpeg')){
    41                                                 $texte2 = _T('spipmotion:recuperer_infos');
    42                                                 $action2 = generer_action_auteur('spipmotion_infos', "0/article/$id_document", $redirect);
    43                                                 $flux['data'] .= " | <a href='$action2'>$texte2</a>";
    44                                         }
    45                                 }
    46        
    47                                 $sorties_audio = lire_config('spipmotion/fichiers_audios_sortie',array());
    48                                 $sorties_audio = array_diff($sorties_audio,array($infos_doc['extension']));
    49                                 if(
    50                                         ($infos_doc['mode'] != 'conversion')
    51                                         && in_array($infos_doc['extension'],lire_config('spipmotion/fichiers_videos_encodage',array()))){
    52                                         $statut_encodage = sql_getfetsel('encode','spip_spipmotion_attentes','id_document='.intval($id_document).' AND encode IN ("en_cours","non")');
    53                                         if($statut_encodage == 'en_cours'){
    54                                                 $action3 = '';
    55                                                 $texte3 = _T('spipmotion:info_document_encodage_en_cours');
    56                                         }elseif ($statut_encodage == 'non'){
    57                                                 $action3 = '';
    58                                                 $texte3 = _T('spipmotion:document_dans_file_attente');
    59                                         }else{
    60                                                 $texte3 = _T('spipmotion:encoder_video');
    61                                                 $action3 = generer_action_auteur('spipmotion_ajouter_file_encodage', "0/article/$id_document", $redirect);
    62                                         }
    63                                 }else if(
    64                                         ($infos_doc['mode'] != 'conversion')
    65                                         && in_array($infos_doc['extension'],lire_config('spipmotion/fichiers_audios_encodage',array()))
    66                                         && (count($sorties_audio)>0)
    67                                 ){
    68                                         $statut_encodage = sql_getfetsel('encode','spip_spipmotion_attentes','id_document='.intval($id_document).' AND encode IN ("en_cours","non")');
    69                                         if($statut_encodage == 'en_cours'){
    70                                                 $action3 = false;
    71                                                 $texte3 = _T('spipmotion:document_dans_file_attente');
    72                                         }elseif ($statut_encodage == 'non'){
    73                                                 $action3 = false;
    74                                                 $texte3 = _T('spipmotion:document_dans_file_attente');
    75                                         }else{
    76                                                 $texte3 = _T('spipmotion:encoder_son');
    77                                                 $action3 = generer_action_auteur('spipmotion_ajouter_file_encodage', "0/article/$id_document", $redirect);
    78                                         }
    79                                 }
    80                                 if($action3)
    81                                         $flux['data'] .= " | <a href='$action3'>$texte3</a>";
    82                                 else if($texte3)
    83                                         $flux['data'] .= " | $texte3";
    84                         }
    85                 }else{
    86                         $texte = _T('spipmotion:erreur_document_plus_disponible');
    87                         $flux['data'] .= " | $texte";
    88                 }
    89         }
     27        $flux['data'] .= recuperer_fond('prive/squelettes/inclure/spipmotion_document_desc_action',$flux['args']);
    9028        return $flux;
    9129}
     
    15189                                $logo = $recuperer_logo($id_document);
    15290
     91                                /**
     92                                 * On l'ajoute dans la file d'attente d'encodage si nécessaire
     93                                 * Si et seulement si on a l'option d'activée dans la conf
     94                                 */
     95                                if(lire_config('spipmotion/encodage_auto') == 'on'){
     96                                        $fichier = basename(get_spip_doc($document['fichier']));
     97                                        $racine = preg_replace('/-encoded-(\d)/','',substr($fichier,0,-(strlen($document['extension'])+1)));
     98                                        $racine = preg_replace('/-encoded-(\d+)/','',$racine);
     99                                        $racine = preg_replace('/-encoded/','',$racine);
     100                                        $id_doc = sql_getfetsel('id_document','spip_documents',"fichier LIKE '%$racine%' AND id_document != $id_document AND id_orig=0");
     101                                        if(($GLOBALS['meta']['spipmotion_casse'] != 'oui') && !preg_match('/-encoded/',$document['fichier']) OR !$id_doc){
     102                                                include_spip('action/spipmotion_ajouter_file_encodage');
     103                                                spipmotion_genere_file($id_document,$document['objet'],$document['id_objet']);
     104                                                $encodage_direct = charger_fonction('spipmotion_encodage_direct','inc');
     105                                                $encodage_direct();
     106                                        }
     107                                }
    153108                                $invalider = true;
    154                         }
    155                         /**
    156                          * On l'ajoute dans la file d'attente d'encodage si nécessaire
    157                          * Si et seulement si on a l'option d'activée dans la conf
    158                          */
    159                         if(lire_config('spipmotion/encodage_auto') == 'on'){
    160                                 $fichier = basename(get_spip_doc($document['fichier']));
    161                                 $racine = preg_replace('/-encoded-(\d)/','',substr($fichier,0,-(strlen($document['extension'])+1)));
    162                                 $racine = preg_replace('/-encoded-(\d+)/','',$racine);
    163                                 $racine = preg_replace('/-encoded/','',$racine);
    164                                 $id_doc = sql_getfetsel('id_document','spip_documents',"fichier LIKE '%$racine%' AND id_document != $id_document AND id_orig=0");
    165                                 if(($GLOBALS['meta']['spipmotion_casse'] != 'oui') && !preg_match('/-encoded/',$document['fichier']) OR !$id_doc){
    166                                         include_spip('action/spipmotion_ajouter_file_encodage');
    167                                         spipmotion_genere_file($id_document,$document['objet'],$document['id_objet']);
    168                                         $encodage_direct = charger_fonction('spipmotion_encodage_direct','inc');
    169                                         $encodage_direct();
    170                                 }
    171109                        }
    172110                        /**
Note: See TracChangeset for help on using the changeset viewer.