Changeset 30332 in spip-zone


Ignore:
Timestamp:
Jul 29, 2009, 9:50:12 PM (10 years ago)
Author:
kent1@…
Message:

On passe la génération de la file d'attente et donc des inserts en base dans l'action spipmotion_ajouter_file

On ajoute un suffixe au nom de fichier -encoded pour éviter de boucler sur les encodages

On clean aussi un chouilla

Location:
_plugins_/spipmotion
Files:
4 edited

Legend:

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

    r30295 r30332  
    2424        spip_log($id.' - '.$id_document.'  - '.$type);
    2525       
    26         $ajouter_file = charger_fonction('spipmotion_ajouter_file','inc');
     26        spipmotion_supprimer_versions($id_document);
    2727        spipmotion_genere_file($id_document,$type,$id);
    2828       
     
    3232}
    3333
     34function spipmotion_supprimer_versions($id_document){
     35       
     36        $v = sql_select("id_document","spip_documents","id_orig=".intval($id_document));
     37               
     38        include_spip('inc/documents');
     39       
     40        while($version = sql_fetch($v)){
     41                $liste[] = $version['id_document'];
     42                spip_log('on supprime le document '.$version['id_document'],'emballes_medias');
     43                supprimer_documents($liste);
     44        }
     45       
     46        sql_delete("spip_spipmotion_attentes", "id_document=".intval($args['id_document']));
     47}
     48
    3449function spipmotion_genere_file($id_document,$type,$id){
    35         $extension = sql_getfetsel('extension','spip_documents','id_document='.intval($id_document));
     50        $infos_doc = sql_fetsel('extension,id_orig','spip_documents','id_document='.intval($id_document));
     51        $extension = $infos_doc['extension'];
     52        $id_orig = $infos_doc['id_orig'];
    3653
    37         if(lire_config('spipmotion/encodage_auto') == 'on'){
    38                 spip_log('On est dans le mode encodage auto','spipmotion');
    39 
    40                 $encoder = charger_fonction('encodage','inc');
    41                 /**
    42                  * Ajout de la vidéo dans la file d'attente d'encodage si besoin
    43                  */
    44                 if(in_array($extension,lire_config('spipmotion/fichiers_videos_encodage',array()))){
    45                         foreach(lire_config('spipmotion/fichiers_videos_sortie',array()) as $extension_sortie){
    46                                 $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
    47                                 if(!$en_file){
    48                                         $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));
     54        $encoder = charger_fonction('encodage','inc');
     55        /**
     56         * Ajout de la vidéo dans la file d'attente d'encodage si besoin
     57         */
     58        if(in_array($extension,lire_config('spipmotion/fichiers_videos_encodage',array())) && (!intval($id_orig))){
     59                spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
     60                foreach(lire_config('spipmotion/fichiers_videos_sortie',array()) as $extension_sortie){
     61                        $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
     62                        if(!$en_file){
     63                                $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));
     64                                if($document['extension'] != $extension_sortie){
    4965                                        $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));
    50                                         spip_log("on ajoute une video dans la file d'attente","spipmotion");
    51                                         $en_cours = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","encode='en_cours'");
    52                                         if(!$en_cours){
    53                                                 $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    54                                                 $encoder($document,$id_doc_attente);
     66                                        spip_log("on ajoute une video dans la file d'attente : $id_doc_attente","spipmotion");
     67                                        if(lire_config('spipmotion/encodage_auto') == 'on'){
     68                                                $en_cours = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","encode='en_cours'");
     69                                                if(!$en_cours){
     70                                                        spip_log("On est dans le mode encodage auto, on encode $id_doc_attente","spipmotion");
     71                                                        $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
     72                                                        $encoder($document,$id_doc_attente);
     73                                                }
    5574                                        }
    5675                                }
    57                                 else{
    58                                         spip_log("Cette video existe deja dans la file d'attente","spipmotion");                                                       
    59                                 }
    6076                        }
    61                 }
    62                
    63                 /**
    64                  * Ajout du son dans la file d'attente d'encodage si besoin
    65                  */
    66                 else if(in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array()))){
    67                         foreach(lire_config('spipmotion/fichiers_audios_sortie',array()) as $extension_sortie){
    68                                 $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
    69                                 if(!$en_file){
    70                                         $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));
    71                                         $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));
    72                                         spip_log("on ajoute un son dans la file d'attente","spipmotion");
    73                                         $en_cours = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","encode='en_cours'");
    74                                         if(!$en_cours){
    75                                                 $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
    76                                                 spip_log($document);
    77                                                 $encoder($document,$id_doc_attente);
    78                                         }                                                       
    79                                 }
    80                                 else{
    81                                         spip_log("Ce son existe deja dans la file d'attente","spipmotion");                                                     
    82                                 }
     77                        else{
     78                                spip_log("Cette video existe deja dans la file d'attente","spipmotion");                                                       
    8379                        }
    8480                }
    8581        }
     82       
     83        /**
     84         * Ajout du son dans la file d'attente d'encodage si besoin
     85         */
     86        else if(in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array())) && (!intval($id_orig))){
     87                spip_log("l'id_orig est $id_orig et l'id_document est $id_document","spipmotion");
     88                foreach(lire_config('spipmotion/fichiers_audios_sortie',array()) as $extension_sortie){
     89                        $en_file = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","id_document=$id_document AND extension ='$extension_sortie' AND encode IN ('en_cours,non')");
     90                        if(!$en_file){
     91                                $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));
     92                                if($document['extension'] != $extension_sortie){
     93                                        $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));
     94                                        spip_log("on ajoute un son dans la file d'attente : $id_doc_attente","spipmotion");
     95                                        if(lire_config('spipmotion/encodage_auto') == 'on'){
     96                                                $en_cours = sql_getfetsel("id_spipmotion_attente","spip_spipmotion_attentes","encode='en_cours'");
     97                                                if(!$en_cours){
     98                                                        spip_log("On est dans le mode encodage auto, on encode $id_doc_attente","spipmotion");
     99                                                        $document = sql_fetsel('*','spip_documents','id_document='.intval($id_document));
     100                                                        $encoder($document,$id_doc_attente);
     101                                                }                                                       
     102                                        }
     103                                }
     104                        }
     105                        else{
     106                                spip_log("Ce son existe deja dans la file d'attente","spipmotion");                                                     
     107                        }
     108                }
     109        }else if ($id_orig > 0){
     110                spip_log("l'id_orig est supérieur à 0","spipmotion");
     111        }
    86112}
    87113?>
  • _plugins_/spipmotion/inc/encodage.php

    r30246 r30332  
    1818}
    1919
    20 function encodage($source,$doc_attente){
    21         spip_log($source,'spipmotion');
    22        
     20function encodage($source,$doc_attente){       
    2321        /**
    2422         * On change le statut d'encodage à en_cours pour changer les messages et indiquer si nécessaire le statut
     
    4038        $query = md5($string);
    4139        $dossier = _DIR_VAR;
    42         $fichier_final = substr($fichier,0,-(strlen($source['extension']))).$extension_attente;
     40        $fichier_final = substr($fichier,0,-(strlen($source['extension'])+1)).'-encoded.'.$extension_attente;
    4341       
    4442        $fichier_temp = "$dossier$query.$extension_attente";
     
    122120        $invalider = true;
    123121
     122        sql_updateq("spip_spipmotion_attentes",array('encode'=>'oui'),"id_spipmotion_attente=".intval($doc_attente));
     123
    124124        $ajouter_documents = charger_fonction('ajouter_documents', 'inc');
    125125        $x = $ajouter_documents($fichier_temp, $fichier_final, $type_doc, $id_objet, $mode, '', $actif,'','','');
     
    127127        unlink($fichier_temp);
    128128
    129         sql_updateq("spip_spipmotion_attentes",array('encode'=>'oui'),"id_spipmotion_attente=".intval($doc_attente));
    130129        sql_updateq("spip_documents",array('id_orig'=>$attente['id_document']),'id_document='.intval($x));
     130       
    131131        if ($invalider) {
    132132                include_spip('inc/invalideur');
  • _plugins_/spipmotion/inc/spipmotion_infos_audios.php

    r30246 r30332  
    1010 */
    1111if (!defined("_ECRIRE_INC_VERSION")) return;
    12 
    13 include_spip('inc/actions');
    1412
    1513function inc_spipmotion_infos_audios_dist($id, $id_document,$type,$script='',$ignore_flag = false) {
     
    2523       
    2624        if(autoriser('joindredocument',$type, $id)){
    27                 $texte3 = _T('spipmotion:encoder_son');
     25                $texte = _T('spipmotion:encoder_son');
    2826                $script = $type.'s';
    2927                $redirect =  generer_url_ecrire($script,"id_$type=$id#portfolio_documents");
     
    4846                                $statut_encodage = sql_getfetsel('encode','spip_spipmotion_attentes','id_document='.intval($id_document).' AND encode IN ("en_cours","non")');
    4947                                if($statut_encodage == 'en_cours'){
    50                                         $action3 = '';
    51                                         $texte3 = _T('spipmotion:document_dans_file_attente');
     48                                        $action = false;
     49                                        $texte = _T('spipmotion:document_dans_file_attente');
    5250                                }elseif ($statut_encodage == 'non'){
    53                                         $action3 = '';
    54                                         $texte3 = _T('spipmotion:document_dans_file_attente');
     51                                        $action = false;
     52                                        $texte = _T('spipmotion:document_dans_file_attente');
    5553                                }else{
    56                                         $action3 = generer_action_auteur('spipmotion_ajouter_file_encodage', "$id/$type/$id_document", $redirect);
    57                                         $action3 = "<a href='$action3'>$texte3</a>";
     54                                        $action = generer_action_auteur('spipmotion_ajouter_file_encodage', "$id/$type/$id_document", $redirect);
     55                                        $action = "<a href='$action'>$texte</a>";
    5856                                }
    5957                        }
     
    6260                        $redirect = str_replace('&amp;','&',$redirect);
    6361                        $action = generer_action_auteur('spipmotion_ajouter_file_encodage', "$id/$type/$id_document", $redirect);
    64                         $action = "<a href='$action3'>$texte3</a>";
     62                        $action = "<a href='$action'>$texte</a>";
    6563                }
    6664                if(!_AJAX){
    6765                        if(in_array($extension,lire_config('spipmotion/fichiers_audios_encodage',array()))){
    68                                 $corps .= icone_horizontale($texte3, $action3, $supp, "creer.gif", false);
     66                                if($action){
     67                                        $corps .= icone_horizontale($texte, $action, $supp, "creer.gif", false);
     68                                }else{
     69                                        $corps .= "<p>".$texte."</p>";
     70                                }
    6971                        }
    7072                }
  • _plugins_/spipmotion/spipmotion_pipelines.php

    r30295 r30332  
    7070         * Il n'est pas nécessaire de récupérer la vignette d'une vignette
    7171         */
    72         $mode = sql_getfetsel('mode','spip_documents','id_document='.intval($id_document));
     72        $infos_doc = sql_fetsel('fichier,mode','spip_documents','id_document='.intval($id_document));
     73        $mode = $infos_doc['mode'];
     74        $fichier = $infos_doc['fichier'];
    7375        spip_log("mode = $mode","spipmotion");
    7476       
     
    7779                        spip_log("operation = ajouter_docs","spipmotion");
    7880                        $document = sql_fetsel("docs.id_document, docs.extension,docs.fichier,docs.id_orig,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));
    79                         spip_log('id_document = '.$document['id_orig'],'emballe_medias');
     81                        spip_log('id_origine = '.$document['id_orig'],'emballe_medias');
    8082                        $extension = $document['extension'];
    8183                       
     
    107109                         * On l'ajoute dans la file d'attente d'encodage si nécessaire
    108110                         */
    109                         include_spip('action/spipmotion_ajouter_file_encodage');
    110                         spipmotion_genere_file($id_document,$document['objet'],$document['id_objet']);
    111                        
     111                        if(!preg_match('/encoded/',$fichier)){
     112                                include_spip('action/spipmotion_ajouter_file_encodage');
     113                                spipmotion_genere_file($id_document,$document['objet'],$document['id_objet']);
     114                        }
    112115                        if($invalider){
    113116                                /**
Note: See TracChangeset for help on using the changeset viewer.