Exemple #1
0
	def handle(self, *args, **options):
		series, created = Series.objects.get_or_create(name='freiesMagazin')
		binding, created = Binding.objects.get_or_create(name='E-Book')
		language, created = Language.objects.get_or_create(name='Deutsch')
		volume = Book.objects.filter(series=series).aggregate(Max('volume'))['volume__max']
		if volume == None:
			volume = 0
			month = (2006, 2)
		else:
			title = Book.objects.get(series=series, volume=volume).title
			month = (int(title[-4:]), int(title[-7:-5]))

		code = HTTP.OK
		while code == HTTP.OK:
			volume += 1
			month = next(month)
			try:
				code = urlopen('http://www.freiesmagazin.de/freiesMagazin-%d-%02d' % (month[0], month[1])).code
				if code == HTTP.OK:
					self.stdout.write('Adding Issue %d (%02d/%d)...' % (volume, month[1], month[0]))
					book = Book(title='freiesMagazin %02d/%d' % (month[1], month[0]), series=series, volume=volume, binding=binding, published_on=date(year=month[0], month=month[1], day=1), purchased_on=date.today())
					book.save()
					book.languages.add(language)
					book.save()

					folder = join(settings.MEDIA_ROOT, 'books', str(book.id))
					if not exists(folder):
						makedirs(folder)

					image = join(folder, 'cover.jpg')
					try:
						urlretrieve('http://www.freiesmagazin.de/system/files/freiesmagazin-%d-%02d.png' % (month[0], month[1]), image)
						book.cover_image = image
						book.save()
					except HTTPError as e:
						pass

					name = slugify('freiesMagazin-%d-%02d' % (month[0], month[1])) + '.pdf'
					pdf = join(folder, name)
					urlretrieve('http://www.freiesmagazin.de/ftp/%d/freiesMagazin-%d-%02d.pdf' % (month[0], month[0], month[1]), pdf)
					EBookFile.objects.create(ebook_file=join('books', str(book.id), name), book=book)

					try:
						name = slugify('freiesMagazin-%d-%02d' % (month[0], month[1])) + '.epub'
						epub = join(folder, name)
						urlretrieve('http://www.freiesmagazin.de/ftp/%d/freiesMagazin-%d-%02d-bilder.epub' % (month[0], month[0], month[1]), epub)
						EBookFile.objects.create(ebook_file=join('books', str(book.id), name), book=book)
					except HTTPError as e:
						pass

					Url.objects.create(url='http://www.freiesmagazin.de/freiesMagazin-%d-%02d' % (month[0], month[1]), book=book)
					book.save()
			except HTTPError as e:
				self.stdout.write('No Issue %d (%02d/%d), stopping.' % (volume, month[1], month[0]))
				break
Exemple #2
0
	def handle(self, *args, **options):
		series, created = Series.objects.get_or_create(name='Full Circle Magazine')
		binding, created = Binding.objects.get_or_create(name='E-Book')
		language, created = Language.objects.get_or_create(name='Englisch')
		volume = Book.objects.filter(series=series).aggregate(Max('volume'))['volume__max']
		if volume == None:
			volume = 0

		code = HTTP.OK
		while code == HTTP.OK:
			volume += 1
			try:
				code = urlopen('http://fullcirclemagazine.org/issue-%d/' % volume).code
				if code == HTTP.OK:
					self.stdout.write('Adding Issue %d...' % volume)
					book = Book(title='Issue %d' % volume, series=series, volume=volume, binding=binding, purchased_on=date.today())
					book.save()
					book.languages.add(language)
					book.save()

					folder = join(settings.MEDIA_ROOT, 'books', str(book.id))
					if not exists(folder):
						makedirs(folder)

					image = join(folder, 'cover.jpg')
					urlretrieve('http://dl.fullcirclemagazine.org/cover/%d/xen.jpg.pagespeed.ic.OYt0Nw3Yh8.jpg' % volume, image)
					book.cover_image = image
					book.save()

					name = slugify('Issue %d' % volume) + '.pdf'
					pdf = join(folder, name)
					urlretrieve('http://dl.fullcirclemagazine.org/issue%d_en.pdf' % volume, pdf)
					EBookFile.objects.create(ebook_file=join('books', str(book.id), name), book=book)

					name = slugify('Issue %d' % volume) + '.epub'
					epub = join(folder, name)
					urlretrieve('http://dl.fullcirclemagazine.org/issue%d_en.epub' % volume, epub)
					EBookFile.objects.create(ebook_file=join('books', str(book.id), name), book=book)

					Url.objects.create(url='http://fullcirclemagazine.org/issue-%d/' % volume, book=book)
					book.save()
			except HTTPError as e:
				self.stdout.write('No Issue %d, stopping.' % volume)
				break