Changeset 63326 in spip-zone for _plugins_/getID3


Ignore:
Timestamp:
Jul 6, 2012, 1:34:36 PM (7 years ago)
Author:
kent1@…
Message:

Transformation de la fonction de récupération d'id3

On se base toujours sur metadata/audio qui peut être facilement surchargé à qui on passe un fichier et non un id_document

version 1.2.1

Location:
_plugins_/getID3/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/getID3/trunk/action/getid3_infos.php

    r63282 r63326  
    3131
    3232function action_getid3_infos_post($id_document){
    33 
    34         $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
    35         $infos = $recuperer_infos($id_document);
    36 
     33        include_spip('inc/documents');
     34        $fichier = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
     35        $file = get_spip_doc($fichier['fichier']);
     36        if(!file_exists($file))
     37                return false;
     38       
     39        $recuperer_infos = charger_fonction('audio','metadata');
     40        $infos = $recuperer_infos($file,false);
     41       
     42        if($document['titre'] != ''){
     43                unset($infos['titre']);
     44        }
     45        if($document['descriptif'] != ''){
     46                unset($infos['descriptif']);
     47        }
     48        if($document['credits'] != ''){
     49                unset($infos['credits']);
     50        }
     51        if(is_array($infos) && count($infos)>0){
     52                include_spip('action/editer_document');
     53                document_modifier($id_document,$infos);
     54        }
    3755        return $infos;
    3856}
  • _plugins_/getID3/trunk/getid3_fonctions.php

    r62814 r63326  
    2727function recuperer_id3_doc($id_document,$retour=true){
    2828        $recuperer_id3 = charger_fonction('getid3_recuperer_infos','inc');
    29         $id3_content = $recuperer_id3($id_document);
    30 
    31         if($retour){
    32                 $output = '';
    33                 foreach($id3_content as $cle => $val){
    34                         if(preg_match('/cover/',$cle)){
    35                                 $output .= ($val) ? '<img src='.url_absolue($val).' /><br /><br />' : '';
     29        $fichier = sql_getfetsel('fichier','spip_documents','id_document='.intval($id_document));
     30        if($fichier){
     31                include_spip('inc/documents');
     32                $fichier = get_spip_doc($fichier);
     33                if(file_exists($fichier)){
     34                        $id3_content = $recuperer_id3($fichier);
     35               
     36                        if($retour){
     37                                $output = '';
     38                                foreach($id3_content as $cle => $val){
     39                                        if(preg_match('/cover/',$cle)){
     40                                                $output .= ($val) ? '<img src='.url_absolue($val).' /><br /><br />' : '';
     41                                        }else{
     42                                                $output .= ($val) ? _T('getid3:info_'.$cle).' '.$val.'<br />' : '';
     43                                        }
     44                                }
    3645                        }else{
    37                                 $output .= ($val) ? _T('getid3:info_'.$cle).' '.$val.'<br />' : '';
     46                                $output = $id3_content;
    3847                        }
     48                        return $output;
    3949                }
    40         }else{
    41                 $output = $id3_content;
    4250        }
    43         return $output;
     51        return false;
    4452}
    4553
  • _plugins_/getID3/trunk/inc/getid3_recuperer_infos.php

    r63324 r63326  
    2121 */
    2222
    23 function inc_getid3_recuperer_infos($id_document=null,$fichier=false){
    24         if(!intval($id_document) && !$fichier){
     23function inc_getid3_recuperer_infos($fichier=false){
     24        if(!$fichier OR !file_exists($fichier)){
    2525                return false;
    26         }
    27        
    28         /**
    29          * Récupérer le fichier si on part d'un id_document
    30          */
    31         $document = array();
    32        
    33         if(intval($id_document)){
    34                 include_spip('action/editer_document');
    35                 include_spip('inc/documents');
    36                 include_spip('inc/filtres');
    37                 $document = sql_fetsel("*", "spip_documents","id_document=".intval($id_document));
    38                 $son_chemin = get_spip_doc($document['fichier']);
    39                 if(!file_exists($son_chemin))
    40                         return false;
    41         }else{
    42                 $son_chemin = $fichier;
    4326        }
    4427       
     
    4730         */
    4831        $recuperer_id3 = charger_fonction('recuperer_id3','inc');
    49         $id3 = $recuperer_id3($son_chemin);
     32        $id3 = $recuperer_id3($fichier);
    5033       
    5134        /**
     
    5538         * -* descriptif
    5639         */
    57         if((!isset($document['titre']) OR ($document['titre'] == '')) && isset($id3['title'])){
    58                 $document['titre'] = preg_replace('/_/',' ',utf8_encode($id3['title']));
     40        if(isset($id3['title']){
     41                $id3['titre'] = preg_replace('/_/',' ',utf8_encode($id3['title']));
    5942        }
    60         if($document['titre'] == ''){
     43        if(!isset($id3['title']){
    6144                $titre = strtolower(array_shift(explode('.',basename($son_chemin))));
    6245                $titre = utf8_encode($titre);
    63                 $document['titre'] = preg_replace('/_/',' ',$titre);
     46                $id3['titre'] = preg_replace('/_/',' ',$titre);
    6447        }
    6548
    66         if(!isset($document['descriptif']) OR ($document['descriptif'] == '')){
     49        if(!isset($id3['descriptif'])){
    6750                /**
    6851                 * Ne pas prendre les comments foireux d'itunes
    6952                 */
    7053                if(isset($id3['comments']) && !preg_match('/0000[a-b|0-9]{4}/',$id3['comments']))
    71                         $document['descriptif'] = utf8_encode($id3['comments']);
     54                        $id3['descriptif'] = utf8_encode($id3['comments']);
    7255                else{
    7356                        if(isset($id3['artist']))
    74                                 $document['descriptif'] .= utf8_encode($id3['artist'])."\n";
     57                                $id3['descriptif'] .= utf8_encode($id3['artist'])."\n";
    7558                        if(isset($id3['album']))
    76                                 $document['descriptif'] .= utf8_encode($id3['album'])."\n";
     59                                $id3['descriptif'] .= utf8_encode($id3['album'])."\n";
    7760                        if(isset($id3['year']))
    78                                 $document['descriptif'] .= utf8_encode($id3['year'])."\n";
     61                                $id3['descriptif'] .= utf8_encode($id3['year'])."\n";
    7962                        if(isset($id3['genre']))
    80                                 $document['descriptif'] .= utf8_encode($id3['genre'])."\n";
     63                                $id3['descriptif'] .= utf8_encode($id3['genre'])."\n";
    8164                        if(isset($id3['track_number']))
    82                                 $document['descriptif'] .= utf8_encode($id3['track_number'])."\n";
     65                                $id3['descriptif'] .= utf8_encode($id3['track_number'])."\n";
    8366                        if(isset($id3['comment']) && !preg_match('/0000[a-b|0-9]{4}/',$id3['comment']))
    84                                 $document['descriptif'] .= "\n".utf8_encode($id3['comment'])."\n";
     67                                $id3['descriptif'] .= "\n".utf8_encode($id3['comment'])."\n";
    8568                }
    8669        }
     
    9881        }
    9982       
    100         $credits = $id3['copyright_message']?$id3['copyright_message']:$id3['copyright'];
    101        
    102         if(!isset($document['credits']) OR ($document['credits'] == '') && ($credits != ''))
    103                 $credits = filtrer_entites(utf8_encode($credits));
     83        $id3['credits'] = $id3['copyright_message']?$id3['copyright_message']:$id3['copyright'];
    10484       
    10585        /**
     
    10787         */
    10888        $valeurs = array(
    109                         'titre'=>filtrer_entites($document['titre']),
    110                         'descriptif'=>filtrer_entites($document['descriptif']),
     89                        'titre'=>filtrer_entites($id3['titre']),
     90                        'descriptif'=>filtrer_entites($id3['descriptif']),
    11191                        'duree'=> $id3['duree_secondes'],
    11292                        'bitrate' => intval($id3['bitrate']),
     
    11797                        'encodeur'=>$id3['codec'],
    11898                        'bits'=>$id3['bits'],
    119                         'credits'=>$credits
     99                        'credits'=>$id3['credits']
    120100                );
    121101       
     
    196176        }
    197177       
    198         if(intval($id_document))
    199                 document_modifier($id_document,$valeurs);
    200        
    201178        return $valeurs;
    202179}
  • _plugins_/getID3/trunk/metadata/audio.php

    r63253 r63326  
    2222        $metas = array();
    2323        $recuperer_infos = charger_fonction('getid3_recuperer_infos','inc');
    24         $metas = $recuperer_infos(false,$file);
     24        $metas = $recuperer_infos($file);
    2525        return $metas;
    2626}
  • _plugins_/getID3/trunk/paquet.xml

    r63324 r63326  
    22        prefix="getid3"
    33        categorie="multimedia"
    4         version="1.2.0"
     4        version="1.2.1"
    55        etat="stable"
    66        compatibilite="[3.0.2;3.0.99]"
Note: See TracChangeset for help on using the changeset viewer.