def perform_create(self, serializer):
     serializer.save(user=self.request.user)
     localpath = serializer.data.get('audiofiles')
     command = System.objects.all().get(name=(serializer.data.get('systems'))).command
     re1='.*?'   # Non-greedy match on filler
     re2='((?:[a-z][a-z\\.\\d_]+)\\.(?:[a-z\\d]{3}))(?![\\w\\.])'    # File Name 1
     rg = re.compile(re1+re2,re.IGNORECASE|re.DOTALL)
     m = rg.search(localpath)
     file1 = ''
     if m:
         file1=m.group(1)
     re1='((?:[a-z][a-z0-9_]*))' # Variable Name 1
     rg = re.compile(re1,re.IGNORECASE|re.DOTALL)
     m = rg.search(file1)
     if m:
         filename=m.group(1)
     fabfile.process_execute(localpath,filename,command)    
Example #2
0
    def post(self,request):
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/login')
        form = UploadForm(data=request.POST)
        if form.is_valid():
            upload = Upload(
                user = request.user,
                language = form.cleaned_data['language'],
                environment = form.cleaned_data['environment'],
                systems = form.cleaned_data['systems'],
            )

            if form.cleaned_data['metadata']:
                upload.metadata = form.cleaned_data['metadata']

            upload.save()

            localpaths = []

            print request.FILES

            for x in range(1,(len(request.FILES)+1)):
                try:
                    audioupload = Audiofile(audiofile = request.FILES.__getitem__('file'+str(x)), upload = upload)
                    audioupload.save()
                    localpaths.append(audioupload.audiofile.url)
                except:
                    pass

            message = Audiofile.objects.all()
            user = request.user
            system = upload.systems
            
            pk = str(CustomUser.objects.get(email=user).id)
            n = 5 - len(pk)
            pk =  ('0' * n) + pk

            command = System.objects.get(name=system).command
           
            timestamp = ''.join(i for i in upload.created.isoformat() if i.isdigit())
            filename = 'src-'+pk+'_ses-'+timestamp

            fabfile.process_execute(localpaths,filename,command)
            
            return HttpResponseRedirect('/newupload')

        else:
            systemObjects = System.objects.all()
            languages = set()
            systems = set()
            environments = set()
            for system in System.objects.all():
                languages.add(system.language)
                systems.add(system.name)
                environments.add(system.environment)
            uploadlist = Upload.objects.filter(user=request.user)
            uploads = []
            for upload in uploadlist:
                files = []
                for audiofile in Audiofile.objects.filter(upload = upload):
                    file_start = '(/[^/]*\.wav)'
                    file_regex = re.compile(file_start,re.IGNORECASE|re.DOTALL)
                    file_search = file_regex.search(audiofile.audiofile.url)
                    if file_search:
                        files.append(file_search.group(1))
                uploads.append((upload,files))
            template = loader.get_template('frontend/newupload.html')
            context = RequestContext(request, {
            'languages': languages,
            'systems': systems,
            'environments': environments,
            'uploads': list(reversed(uploads)),
            'systemObjects': systemObjects,
            'form':form,
            })
            return render(request, 'frontend/newupload.html', context)

        


        

        return HttpResponse(message)