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
예제 #2
0
 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)
예제 #3
0
파일: issue.py 프로젝트: trumblejoe/bamf
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
    })
예제 #4
0
 def test_read_cix(self):
     ca = ComicArchive(TEST_DATA)
     md = ca.readCIX()
     self.assertIsNotNone(md)
예제 #5
0
 def test_cix_has_CoMeT(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.hasCoMet()
     self.assertFalse(z)
예제 #6
0
 def test_cix_has_cix(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.hasCIX()
     self.assertTrue(z)
예제 #7
0
 def test_cix_has_cbi(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.hasCBI()
     self.assertFalse(z)
예제 #8
0
 def test_get_number_of_pages_zip(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.getNumberOfPages()
     self.assertEqual(z, 24)
예제 #9
0
 def test_seems_to_be_comic_archive_zip(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.seemsToBeAComicArchive()
     self.assertTrue(z)
예제 #10
0
 def test_if_writable(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.isWritable()
     self.assertTrue(z)
예제 #11
0
 def test_if_folder(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.isFolder()
     self.assertFalse(z)
예제 #12
0
 def test_if_zipfile(self):
     ca = ComicArchive(TEST_DATA)
     z = ca.isZip()
     self.assertTrue(z)