示例#1
0
    def process_task(obj):

        from atracker.util import create_event

        process = Process()

        log = logging.getLogger('exporter.models.process_task')

        archive_dir = create_archive_dir(obj)
        archive_cache_dir = os.path.join(archive_dir, 'cache/')
        archive_path = os.path.join(
            archive_dir, 'archive')  # .zip appended by 'make_archive'
        #archive_file = ZipFile(archive_path, "w")

        log.debug('archive_dir: %s' % (archive_dir))
        log.debug('archive_cache_dir: %s' % (archive_cache_dir))
        log.debug('archive_path: %s' % (archive_path))

        # do shizzle
        for item in obj.export_items.all():
            print
            print 'item: %s' % item.content_type
            print 'pk: %s' % item.object_id

            # maybe not too elegant.. switching processing for different types
            if item.content_type.name.lower() == 'release':

                t_item = item.content_object

                filename_format = '%s - %s - %s.%s'

                print 'GOT RELEAZE!'

                for media in t_item.media_release.all():
                    print 'Media: %s' % media.name

                    if obj.fileformat == 'mp3':

                        filename = filename_format % (media.tracknumber,
                                                      media.name,
                                                      media.artist.name, 'mp3')
                        filepath = os.path.join(archive_cache_dir, filename)

                        shutil.copyfile(media.get_cache_file('mp3', 'base'),
                                        filepath)
                        process.incect_metadata(filepath, media)

                    # just dummy - not possible...
                    if obj.fileformat == 'flac':

                        filename = filename_format % (media.tracknumber,
                                                      media.name,
                                                      media.artist.name, 'mp3')
                        filepath = os.path.join(archive_cache_dir, filename)

                        shutil.copyfile(media.get_cache_file('mp3', 'base'),
                                        filepath)
                        process.incect_metadata(filepath, media)

                    create_event(obj.user, media, None, 'download')

                if t_item.main_image:
                    pass
                    #archive_file.write(t_item.main_image.path, 'cover.jpg')

            print

        shutil.make_archive(archive_path, 'zip', archive_cache_dir)

        obj.file = DjangoFile(open(archive_path + '.zip'), u'archive.zip')
        obj.filesize = os.path.getsize(archive_path + '.zip')

        # get filesize
        obj.filename = generate_export_filename(obj.export_items)
        #obj.filename = 'asdasdas'

        # update status
        obj.status = 1
        obj.save()
示例#2
0
    def process_task(obj):
        
        from atracker.util import create_event
        
        process = Process()
        
        log = logging.getLogger('exporter.models.process_task')
        
        archive_dir = create_archive_dir(obj)
        archive_cache_dir = os.path.join(archive_dir, 'cache/')
        archive_path = os.path.join(archive_dir, 'archive') # .zip appended by 'make_archive'
        #archive_file = ZipFile(archive_path, "w")
        
        log.debug('archive_dir: %s' % (archive_dir))
        log.debug('archive_cache_dir: %s' % (archive_cache_dir))
        log.debug('archive_path: %s' % (archive_path))
        
        # do shizzle
        for item in obj.export_items.all():
            print
            print 'item: %s' % item.content_type
            print 'pk: %s' % item.object_id
            
            # maybe not too elegant.. switching processing for different types
            if item.content_type.name.lower() == 'release':
                
                t_item = item.content_object
                
                filename_format = '%s - %s - %s.%s'
                
                print 'GOT RELEAZE!'
                
                for media in t_item.media_release.all():
                    print 'Media: %s' % media.name
                
                    if obj.fileformat == 'mp3':
                
                        filename = filename_format % (media.tracknumber, media.name, media.artist.name, 'mp3')
                        filepath = os.path.join(archive_cache_dir, filename)
                        
                        shutil.copyfile(media.get_cache_file('mp3', 'base'), filepath)
                        process.incect_metadata(filepath, media)
                
                    # just dummy - not possible...
                    if obj.fileformat == 'flac':
                
                        filename = filename_format % (media.tracknumber, media.name, media.artist.name, 'mp3')
                        filepath = os.path.join(archive_cache_dir, filename)
                        
                        shutil.copyfile(media.get_cache_file('mp3', 'base'), filepath)
                        process.incect_metadata(filepath, media)
                        
                    create_event(obj.user, media, None, 'download')
                    
                if t_item.main_image:
                    pass
                    #archive_file.write(t_item.main_image.path, 'cover.jpg')
                    
                    
                
            
            print
            
        shutil.make_archive(archive_path, 'zip', archive_cache_dir)
            
        
        obj.file = DjangoFile(open(archive_path + '.zip'), u'archive.zip')
        obj.filesize = os.path.getsize(archive_path + '.zip')

            
        # get filesize
        obj.filename = generate_export_filename(obj.export_items)
        #obj.filename = 'asdasdas'
        
        # update status
        obj.status = 1;
        obj.save()