]> git.parisson.com Git - telemeta-data.git/commitdiff
check wav file, cleanup
authoryomguy <yomguy@3bf09e05-f825-4182-b9bc-eedd7160adf0>
Thu, 7 Jan 2010 12:46:18 +0000 (12:46 +0000)
committeryomguy <yomguy@3bf09e05-f825-4182-b9bc-eedd7160adf0>
Thu, 7 Jan 2010 12:46:18 +0000 (12:46 +0000)
git-svn-id: http://svn.parisson.org/svn/crem@132 3bf09e05-f825-4182-b9bc-eedd7160adf0

trunk/import/audio_import/crem_checker.py

index 2d8eda2bc855b41138ad3744a254da91bd7ebca8..d36e109cdacdc0c7f596a5fffb6055a1b954d92b 100755 (executable)
@@ -62,7 +62,6 @@ def check_name(patterns, name):
 
 
 class Logger:
-    """A logging object"""
 
     def __init__(self, file):
         self.logger = logging.getLogger('myapp')
@@ -117,8 +116,8 @@ class CremXLS:
 
     def __init__(self, file):
         self.first_row = 7
-        self.original_col = 0
-        self.new_col = 3
+        self.original_col = 1
+        self.new_col = 2
         self.book = xlrd.open_workbook(file)
         self.sheet = self.book.sheet_by_index(0)
         self.original_refs = self.original_refs()
@@ -143,13 +142,16 @@ class CremXLS:
 
 class CremItemFile:
 
-    def __init__(self, media):
+    def __init__(self):
+        self.media = ''
+
+    def set_media(self, media):
         self.media = media
 
     def is_wav(self):
         try:
-            self.audio_file = audiolab.sndfile(self.media, 'read')
-            if self.audio_file.get_nframes() and self.audio_file.get_nframes() != 0:
+            audio_file = audiolab.Sndfile(self.media, 'r')
+            if audio_file.get_nframes() and audio_file.get_nframes() != 0:
                 return True
         except IOError:
             return False
@@ -162,7 +164,6 @@ class CremItemFile:
         self.encoding = self.audio_file.get_encoding()
 
 
-
 class CremCheck:
 
     def __init__(self, root_dir, log_file):
@@ -180,54 +181,51 @@ class CremCheck:
     def check(self):
         for dir in self.dir_list:
             collection = CremCollection(self.root_dir + dir)
-            #self.logger.write(collection.dir, 'VERIFICATION')
+            self.logger.write(collection.dir, '***** VERIFICATION *****')
             xls_list = collection.xls_list()
             wav_list = collection.wav_list()
 
-            # check collection dir name
             if not check_name(COLLECTION_PATTERN, dir):
                 self.logger.write_error(collection.dir, 'Dossier mal nommé')
-                break
-
-            # check if XLS file exists
             if len(xls_list) == 0:
                 self.logger.write_error(collection.dir, 'PAS de fichier XLS dans le dossier collection')
-                break
             elif len(xls_list) > 1:
                 self.logger.write_error(collection.dir, 'Plusieurs fichiers XLS dans le dossier collection')
-                break
             else:
                 xls = CremXLS(self.root_dir + os.sep + dir + os.sep + xls_list[0])
 
-                # check if number of refs equals the number of WAV files
                 if len(wav_list) != len(xls.new_refs):
                     print len(wav_list)
                     print len(xls.new_refs)
                     self.logger.write_error(collection.dir, 'Le nombre de références du fichier XLS diffère du nombre de fichiers')
 
                 temp_list = []
+                item_file = CremItemFile()
 
                 for item in xls.new_refs:
 
-                    # check new items refs
                     if not check_name(ITEM_PATTERN, item):
                         self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' est mal formattée')
                     if item[0:17] != collection.dir_name :
                         self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' ne correspond pas à la collection')
 
-                    # check if WAV files exist
                     name_wav = item + '.wav'
-                    name_WAV = item + '.WAV'
-                    if not name_wav in wav_list or name_WAV in wav_list:
+                    if not name_wav in wav_list:
                         self.logger.write_error(collection.dir, 'Le fichier ' + str(item) + '.wav n\'existe pas')
+                    else:
+                        item_file.set_media(collection.dir + os.sep + str(item))
+                        #print collection.dir + str(item)
+                        if not item_file.is_wav():
+                            self.logger.write_error(collection.dir, 'Le fichier ' + str(item) + '.wav n\'est pas valide')
+                        else:
+                            self.logger.write(collection.dir, 'Le fichier ' + str(item) + '.wav est valide')
 
-                    # check unicity
                     if not item in temp_list:
                         temp_list.append(item)
                     else:
                         self.logger.write_error(collection.dir, 'La référence ' + str(item) + ' est multiple')
 
-            #self.logger.write(collection.dir, 'FIN')
+            self.logger.write(collection.dir, '***** FIN *****')
 
 
 def main():