def download_album(celery_task, qobuz_album_id): try: qobuz_client = get_qobuz_client(lambda: None) qobuz_upload = QobuzUpload.objects.get(id=qobuz_album_id) assert len(qobuz_upload.album_data['tracks']['items']) == len(qobuz_upload.track_data) os.makedirs(qobuz_upload.temp_media_path) print 'Downloading images' if qobuz_upload.album_data['image']['back']: download_image(qobuz_upload, qobuz_upload.album_data['image']['back'], 'back.jpg') download_image(qobuz_upload, qobuz_upload.album_data['image']['large'], 'folder.jpg') print 'Download goodies' if 'goodies' in qobuz_upload.album_data: for i in xrange(len(qobuz_upload.album_data['goodies'])): download_goodie(qobuz_upload, i) print 'Downloading tracks' track_number = 0 media_number = 0 for i, track in enumerate(qobuz_upload.album_data['tracks']['items']): if track['media_number'] != media_number: track_number = 1 media_number = track['media_number'] download_track(qobuz_client, qobuz_upload, i, track_number) track_number += 1 print 'Generating torrent' generate_torrents(qobuz_upload) print 'Generating spectrals' os.makedirs(qobuz_upload.spectrals_path) for i in xrange(len(qobuz_upload.album_data['tracks']['items'])): generate_spectrals(qobuz_upload, i) qobuz_upload.track_data_json = ujson.dumps(qobuz_upload.track_data) recursive_chmod(qobuz_upload.temp_media_path, 0777) finally: connection.close()
def new_upload(request): if request.method == 'POST': form = NewUploadForm(request.POST) if form.is_valid(): qobuz = get_qobuz_client(request) album_id = form.cleaned_data['album_id'] try: album = qobuz.call('album/get', {'album_id': album_id}) qobuz_upload = QobuzUpload( qobuz_album_id=album_id, album_data_json=ujson.dumps(album), ) qobuz_upload.populate_fields() qobuz_upload.save() return redirect(edit_upload, qobuz_upload.id) except RequestException: form.add_error('album_id', 'Cannot fetch Qobuz album') else: form = NewUploadForm() data = { 'form': form, } return render(request, 'qobuz/new_upload.html', data)
def download_album(celery_task, qobuz_album_id): try: qobuz_client = get_qobuz_client(lambda: None) qobuz_upload = QobuzUpload.objects.get(id=qobuz_album_id) assert len(qobuz_upload.album_data['tracks']['items']) == len( qobuz_upload.track_data) os.makedirs(qobuz_upload.temp_media_path) print 'Downloading images' if qobuz_upload.album_data['image']['back']: download_image(qobuz_upload, qobuz_upload.album_data['image']['back'], 'back.jpg') download_image(qobuz_upload, qobuz_upload.album_data['image']['large'], 'folder.jpg') print 'Download goodies' if 'goodies' in qobuz_upload.album_data: for i in xrange(len(qobuz_upload.album_data['goodies'])): download_goodie(qobuz_upload, i) print 'Downloading tracks' track_number = 0 media_number = 0 for i, track in enumerate(qobuz_upload.album_data['tracks']['items']): if track['media_number'] != media_number: track_number = 1 media_number = track['media_number'] download_track(qobuz_client, qobuz_upload, i, track_number) track_number += 1 print 'Generating torrent' generate_torrents(qobuz_upload) print 'Generating spectrals' os.makedirs(qobuz_upload.spectrals_path) for i in xrange(len(qobuz_upload.album_data['tracks']['items'])): generate_spectrals(qobuz_upload, i) qobuz_upload.track_data_json = ujson.dumps(qobuz_upload.track_data) recursive_chmod(qobuz_upload.temp_media_path, 0777) finally: connection.close()