Esempio n. 1
0
    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)
Esempio n. 2
0
	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)
Esempio n. 3
0
 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
Esempio n. 4
0
 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
Esempio n. 5
0
	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