def handle_noargs(self, **options): filetype_filter = Q(parameter__iendswith='.sap') | Q( parameter__iendswith='.sid') | Q(parameter__iendswith='.mod') | Q( parameter__iendswith='.s3m') | Q( parameter__iendswith='.xm') | Q(parameter__iendswith='.it') links = ProductionLink.objects.filter( is_download_link=True, link_class__in=[ 'BaseUrl', 'AmigascneFile', 'SceneOrgFile', 'FujiologyFile', 'UntergrundFile', 'PaduaOrgFile' ], production__supertype='music', ).filter(filetype_filter).exclude( parameter__istartswith='https://media.demozoo.org/' ).select_related('production') for prod_link in links: # see if this prod already has a playable link tracks, media = get_playable_track_data(prod_link.production) if tracks: # already playable continue print("prod %s: downloading from %s" % (prod_link.production_id, prod_link.url)) try: download = fetch_origin_url(prod_link.download_url) sha1 = download.sha1 (basename, file_ext) = splitext(download.filename) filename = 'music/' + sha1[0:2] + '/' + sha1[ 2:4] + '/' + slugify(basename) + file_ext new_url = upload_to_s3(download.as_io_buffer(), filename, file_ext, reduced_redundancy=True) ProductionLink.objects.create(production=prod_link.production, link_class='BaseUrl', parameter=new_url, is_download_link=True) except (urllib2.URLError, FileTooBig, timeout) as ex: pass time.sleep(5)
def handle_noargs(self, **options): filetype_filter = Q(parameter__iendswith='.sap') | Q(parameter__iendswith='.sid') | Q(parameter__iendswith='.mod') | Q(parameter__iendswith='.s3m') | Q(parameter__iendswith='.xm') | Q(parameter__iendswith='.it') links = ProductionLink.objects.filter( is_download_link=True, link_class__in=['BaseUrl', 'AmigascneFile', 'SceneOrgFile', 'FujiologyFile', 'UntergrundFile', 'PaduaOrgFile'], production__supertype='music', ).filter( filetype_filter ).exclude( parameter__istartswith='https://media.demozoo.org/' ).select_related('production') for prod_link in links: # see if this prod already has a playable link tracks, media = get_playable_track_data(prod_link.production) if tracks: # already playable continue print("prod %s: downloading from %s" % (prod_link.production_id, prod_link.url)) try: download = fetch_origin_url(prod_link.download_url) sha1 = download.sha1 (basename, file_ext) = splitext(download.filename) filename = 'music/' + sha1[0:2] + '/' + sha1[2:4] + '/' + slugify(basename) + file_ext new_url = upload_to_s3(download.as_io_buffer(), filename, file_ext, reduced_redundancy=True) ProductionLink.objects.create( production=prod_link.production, link_class='BaseUrl', parameter=new_url, is_download_link=True ) except (urllib2.URLError, FileTooBig, timeout) as ex: pass time.sleep(5)
def audio_media(self): if self._audio_media is None: self._audio_tracks, self._audio_media = get_playable_track_data( self.production) return self._audio_media
def audio_tracks(self): if self._audio_tracks is None: # pragma: no cover self._audio_tracks, self._audio_media = get_playable_track_data( self.production) return self._audio_tracks
def audio_media(self): if self._audio_media is None: self._audio_tracks, self._audio_media = get_playable_track_data(self.production) return self._audio_media