Changeset 1732

Show
Ignore:
Timestamp:
09/02/08 00:11:43 (3 months ago)
Author:
momo-i
Message:

Updated getid3 for multi-byte characters, but some wrong id3tags have occurred exception error.

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/bin/print_tags.inc

    r1569 r1732  
    4040$catalog = new Catalog($results['id']); 
    4141 
    42 $info = new vainfo($filename,'',$catalog->sort_pattern,$catalog->rename_pattern); 
     42$info = new vainfo($filename,'','','',$catalog->sort_pattern,$catalog->rename_pattern); 
    4343echo "Using: $catalog->sort_pattern AND $catalog->rename_pattern for file pattern matching\n"; 
    4444$info->get_info(); 
  • trunk/docs/CHANGELOG

    r1722 r1732  
    55-------------------------------------------------------------------------- 
    66  v.3.5-Alpha1 
     7        - Updated getid3 for multi-byte characters, but some wrong id3tags 
     8                have occurred exception error. 
    79        - Fixed use_auth = false not correctly re-creating the session if 
    810                you had just switched from use_auth = true 
  • trunk/lib/class/catalog.class.php

    r1730 r1732  
    10751075                debug_event('tag-read',"Reading Tags from $song->file",'5','ampache-catalog'); 
    10761076                 
    1077                 $vainfo = new vainfo($song->file,'',$sort_pattern,$rename_pattern); 
     1077                $vainfo = new vainfo($song->file,'','','',$sort_pattern,$rename_pattern); 
    10781078                $vainfo->get_info(); 
    10791079 
     
    15031503 
    15041504                // Now nuke the tags themselves 
    1505                 $sql = "DELETE FROM `tag` USING `tag` LEFT JOIN `tag_map` ON `tag`.`id`=`tag_map`.`tag_id` " .  
     1505                $sql = "DELETE FROM `tag` USING `tag` LEFT JOIN `tag_map` ON `tag`.`map_id`=`tag_map`.`tag_id` " .  
    15061506                        "WHERE `tag_map`.`id` IS NULL";  
    15071507                $db_results = Dba::query($sql);  
     
    20012001 
    20022002                /* Create the vainfo object and get info */ 
    2003                 $vainfo         = new vainfo($file,'',$this->sort_pattern,$this->rename_pattern); 
     2003                $vainfo         = new vainfo($file,'','','',$this->sort_pattern,$this->rename_pattern); 
    20042004                $vainfo->get_info(); 
    20052005 
  • trunk/lib/class/vainfo.class.php

    r1675 r1732  
    2929        /* Default Encoding */ 
    3030        var $encoding = ''; 
     31        var $encoding_id3v1 = ''; 
     32        var $encoding_id3v2 = ''; 
    3133         
    3234        /* Loaded Variables */ 
     
    3739        /* Internal Information */ 
    3840        var $_raw               = array(); 
     41        var $_raw2              = array(); 
    3942        var $_getID3            = ''; 
    4043        var $_iconv             = false;  
     
    4851         * actually pull the information 
    4952         */ 
    50         function vainfo($file,$encoding='',$dir_pattern,$file_pattern) {  
     53        function vainfo($file,$encoding='',$encoding_id3v1='',$encoding_id3v2='',$dir_pattern,$file_pattern) {  
    5154 
    5255                $this->filename = $file; 
     
    6467                // Initialize getID3 engine 
    6568                $this->_getID3 = new getID3(); 
     69 
     70                // get id3tag encodings 
     71                $this->_raw2 = $this->_getID3->analyze($file); 
     72                if(function_exists('mb_detect_encoding')) { 
     73                        $this->encoding_id3v1 = array(); 
     74                        $this->encoding_id3v1[] = mb_detect_encoding($this->_raw2['tags']['id3v1']['artist']['0']); 
     75                        $this->encoding_id3v1[] = mb_detect_encoding($this->_raw2['tags']['id3v1']['album']['0']); 
     76                        $this->encoding_id3v1[] = mb_detect_encoding($this->_raw2['tags']['id3v1']['genre']['0']); 
     77                        $this->encoding_id3v1[] = mb_detect_encoding($this->_raw2['tags']['id3v1']['title']['0']); 
     78                        array_multisort($this->encoding_id3v1); 
     79                        array_splice($this->encoding_id3v1, -4, 3); 
     80                        if($this->encoding_id3v1[0] != "ASCII") { 
     81                                $this->encoding_id3v1 = $this->encoding_id3v1[0]; 
     82                        } else { 
     83                                $this->encoding_id3v1 = "ISO-8859-1"; 
     84                        } 
     85                         
     86 
     87                        $this->encoding_id3v2 = array(); 
     88                        $this->encoding_id3v2[] = mb_detect_encoding($this->_raw2['tags']['id3v2']['artist']['0']); 
     89                        $this->encoding_id3v2[] = mb_detect_encoding($this->_raw2['tags']['id3v2']['album']['0']); 
     90                        $this->encoding_id3v2[] = mb_detect_encoding($this->_raw2['tags']['id3v2']['genre']['0']); 
     91                        $this->encoding_id3v2[] = mb_detect_encoding($this->_raw2['tags']['id3v2']['title']['0']); 
     92                        array_multisort($this->encoding_id3v2); 
     93                        array_splice($this->encoding_id3v2, -4, 3); 
     94                        if($this->encoding_id3v2[0] != "ASCII"){ 
     95                                $this->encoding_id3v2 = $this->encoding_id3v2[0]; 
     96                        } else { 
     97                                $this->encoding_id3v2 = "ISO-8859-1"; 
     98                        } 
     99                } 
     100                else { 
     101                        $this->encoding_id3v1 = $encoding_id3v1; 
     102                        $this->encoding_id3v2 = $encoding_id3v2; 
     103                } 
     104 
    66105                $this->_getID3->option_md5_data         = false; 
    67106                $this->_getID3->option_md5_data_source  = false; 
     
    70109                $this->_getID3->option_tag_lyrics3      = false; 
    71110                $this->_getID3->encoding                = $this->encoding;  
     111                $this->_getID3->encoding_id3v1          = $this->encoding_id3v1; 
     112                $this->_getID3->encoding_id3v2          = $this->encoding_id3v2; 
    72113                $this->_getID3->option_tags_process    = true;  
    73114