self.logger = Logger(log_file)
self.source_dir = source_dir
self.collections = os.listdir(self.source_dir)
- self.buffer_size = 0x1000
self.pattern = pattern
self.user = User.objects.filter(username='admin')
- def write_file(self, item, wav_file, user):
+ def write_file(self, item, wav_file, overwrite=False):
if os.path.exists(wav_file):
- if not item.file :
+ if not item.file or overwrite:
f = open(wav_file, 'r')
file_content = ContentFile(f.read())
item.file.save(filename, file_content)
item.save()
item.set_revision(self.user)
else:
- msg = code + ' : fichier ' + wav_file + ' déjà ajouté !'
+ msg = code + ' : fichier ' + wav_file + ' déjà existant !'
self.logger.error(collection, msg)
else:
msg = code + ' : fichier audio ' + wav_file + ' inexistant !'
from telemeta.models import MediaItem, MediaCollection
for collection in self.collections:
- collection_dir = self.source_dir + os.sep + collection
+ collection_dir = self.source_dir + os.sep + collection
+ collection_files = os.listdir(collection_dir)
if not '/.' in collection_dir and self.pattern in collection_dir:
collection_name = collection.split(os.sep)[-1]
c = MediaCollection.objects.filter(code=collection_name)
- if not c:
+ if not c and collection + '.csv' in collection_files:
sys.exit(msg = collection + ' collection NON présente dans la base de données, SORTIE ')
+ elif not c:
+ msg = 'collection NON présente dans la base de données, SORTIE '
+ self.logger.info(collection, msg)
+ c = MediaCollection(code=collection_name)
+ c.save()
+ c.set_revision(self.user)
+ else:
+ msg = 'collection présente dans la base de données, CONTINUE '
+ self.logger.info(collection, msg)
for collection in self.collections:
collection_dir = self.source_dir + os.sep + collection
code = filename.split('.')[0]
items = MediaItem.objects.filter(code=code)
if len(items) != 0:
- msg = item.code+' : id = '+str(item.id)+" : title = "+item.title
+ msg = ' : id = '+str(item.id)+" : title = "+item.title+' SELECTION'
+ self.logger.info(item, msg)
self.logger.info(collection, msg)
item = items[0]
else:
msg = item.code + ' : item NON présent dans la base de données, CREATION'
self.logger.info(item, msg)
item = MediaItem(code=code, collection=c)
- self.write_file(item, wav_file)
+ self.write_file(item, wav_file, True)
else:
c = csv.reader(open(self.source_dir + os.sep + collection + os.sep + collection + '.csv'), delimiter=';')
item = items[0]
msg = item.old_code + ' : id = ' + str(item.id) + " : title = " + item.title
self.logger.info(item, msg)
- self.write_file(item, wav_file)
+ self.write_file(item, wav_file, True)
else:
- msg = old_ref + ' : item inexistant dans la base de données !'
+ msg = old_ref + ' : item inexistant dans la base de données ! PASS'
self.logger.error(item, msg)