Ejemplo n.º 1
0
    def addComic(self, title, path, collection=""):
        new_comic = Comic(title=title, path=path, collection=collection)
        new_comic.save()

        tmpdir = tempfile.mkdtemp()

        splitfile = os.path.splitext(new_comic.path)
        if splitfile[1] == ".cbr":
            cmd = r"unrar e %s" % (tmpdir,)
            os.system(cmd)
            files = os.listdir(tmpdir)
            files.sort()
        else:
            try:
                z = zipfile.ZipFile(file(new_comic.path))
                z.extractall(tmpdir)
                files = z.namelist()
            except zipfile.BadZipfile:
                return

        cleanfiles = []
        for filename in files:
            if os.path.isfile(tmpdir + "/" + filename):
                cleanfiles.append(filename)

        import ipdb

        ipdb.set_trace()
        new_comic.page_count = len(cleanfiles)
        new_comic.save()

        for pic, filename in zip(cleanfiles, new_comic.image_filenames):
            s3conn = S3Connection(settings.S3_ID, settings.S3_KEY)
            bucket = s3conn.create_bucket(settings.S3_BUCKET)

            k = Key(bucket)
            k.key = filename
            k.set_contents_from_filename(tmpdir + "/" + pic, policy="public-read")

        shutil.rmtree(tmpdir)
Ejemplo n.º 2
0
def view_comic(id):
    comic = Comic.objects(id=id).first()
    bookmark, _ = Bookmark.objects.get_or_create(comic=id, user=session['user_id'], defaults={'updated': datetime.datetime.now()})
    return render_template('comic.html', images=comic.image_filenames, page=bookmark.page, comic_id=id)