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)
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)