def upload(request): if request.method == 'POST': library, form = LibraryView().post_library(request) if library: library_id = utils.encrypt_id(library.pk) return redirect('library_success', library_id=library_id) else: recent_albums = MBAlbum.objects.order_by('-release_date').select_related()[:10] recent_albums = [album for album in recent_albums if album.amazon_url] recent_albums = recent_albums[:min(len(recent_albums), 5)] form = forms.UploadFileForm() return direct_to_template(request, 'library/upload.html', locals())
def create(self, request, *args): ''' Example cURL POST curl -H "Content-Type: multipart/form-data" -F "file=@test_library.xml" -F "name=Anthony" http://localhost:8000/api/library/ ''' library, form = LibraryView().post_library(request) if library: return {'upload_success': 'true', 'library_id': str(utils.encrypt_id(library.pk))} else: # Create real dict from form.errors (ErrorDict) errors = dict([(k, [unicode(e) for e in v]) for k,v in form.errors.items()]) return {'upload_success': 'false', 'errors': errors}
def pandora_import(request): '''Handles post request of pandora username for artists import from pandora. ''' form = forms.PandoraUsernameForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') library = Library(name=username) library.save() tasks.import_pandora_artists.delay(library.id, username) library_id = utils.encrypt_id(library.pk) return redirect('library_success', library_id) else: form = forms.PandoraUsernameForm() return direct_to_template(request, 'library/upload.html', locals())
def lastfm_import(request): '''Handles post request of last.fm username for artists import from last.fm. ''' if request.method == 'POST': form = forms.LastfmUsernameForm(request.POST) if form.is_valid(): user = form.user library = Library(name=user.name) library.save() tasks.import_lastfm_artists.delay(library.id, user) library_id = utils.encrypt_id(library.pk) return redirect('library_success', library_id) else: form = forms.LastfmUsernameForm() return direct_to_template(request, 'test_form.html', {'form': form})
def url(self): return 'http://%s/library/%s/' % \ (Site.objects.get_current().domain, utils.encrypt_id(self.id))