def getComicMetadata(self, path): # TODO: Need to fix the default image path print(path) ca = ComicArchive(path, default_image_path=None) if ca.seemsToBeAComicArchive(): self.logger.info(f"Reading in {self.read_count} {path}") self.read_count += 1 if ca.hasMetadata(MetaDataStyle.CIX): style = MetaDataStyle.CIX else: style = None if style is not None: md = ca.readMetadata(style) md.path = ca.path md.page_count = ca.page_count md.mod_ts = datetime.utcfromtimestamp(os.path.getmtime( ca.path)) return md return None
def handle(self, *args, **options): ca = ComicArchive( '/dataHD/Comics/Spider-Man/v1963/The Amazing Spider-Man V1963 #26 (1965).cbz' ) image_data = ca.getPage(int(0)) import uuid filename = settings.MEDIA_ROOT + '/images/' + str( uuid.uuid4()) + '.jpg' with open(filename, 'wb') as outfile: outfile.write(image_data) img = resize_images(filename, ISSUES_FOLDER, NORMAL_IMG_WIDTH, NORMAL_IMG_HEIGHT) os.remove(filename)
def reader(request, slug): issue = get_object_or_404(Issue, slug=slug) # Let's get the total number pages from the comic archive # instead of from the db in case the file has been modified. # If I ever implement a file monitor function this can be removed. ca = ComicArchive(issue.file) page_count = ca.getNumberOfPages() uri_list = [] for page in range(page_count): i = ImageAPIHandler() data_uri = i.get_uri(issue.file, page) uri_list.append(data_uri) return render(request, 'comics/reader.html', { 'issue': issue, 'data_uri': uri_list })
def test_read_cix(self): ca = ComicArchive(TEST_DATA) md = ca.readCIX() self.assertIsNotNone(md)
def test_cix_has_CoMeT(self): ca = ComicArchive(TEST_DATA) z = ca.hasCoMet() self.assertFalse(z)
def test_cix_has_cix(self): ca = ComicArchive(TEST_DATA) z = ca.hasCIX() self.assertTrue(z)
def test_cix_has_cbi(self): ca = ComicArchive(TEST_DATA) z = ca.hasCBI() self.assertFalse(z)
def test_get_number_of_pages_zip(self): ca = ComicArchive(TEST_DATA) z = ca.getNumberOfPages() self.assertEqual(z, 24)
def test_seems_to_be_comic_archive_zip(self): ca = ComicArchive(TEST_DATA) z = ca.seemsToBeAComicArchive() self.assertTrue(z)
def test_if_writable(self): ca = ComicArchive(TEST_DATA) z = ca.isWritable() self.assertTrue(z)
def test_if_folder(self): ca = ComicArchive(TEST_DATA) z = ca.isFolder() self.assertFalse(z)
def test_if_zipfile(self): ca = ComicArchive(TEST_DATA) z = ca.isZip() self.assertTrue(z)