Example #1
0
def gallerify(id):
    """ Ads and removes image from gallery """
    image = UserImages.get_image(id)
    if not image:
        return redirect(url_for("user_images", username=session["user"]))
    UserImages.gallerify(image)
    return redirect(url_for("user_images", username=session["user"]))
Example #2
0
def gallerify(id):
    """ Ads and removes image from gallery """
    image = UserImages.get_image(id)
    if not image:
        return redirect(url_for("user_images", username=session["user"]))
    UserImages.gallerify(image)
    return redirect(url_for("user_images", username=session["user"]))
Example #3
0
def delete_image(id):
    image = UserImages.get_image(id)
    if not image:
        abort(404)
    if image.owner.username != session["user"]:
        flash("Don't try to delete other\'s dude\'s pictures...dude")
        return redirect(url_for("index"))
    else:
        try:
            UserImages.delete_image(image)
        except:
            error = "Error occured when writing to database"
            flash(error)
            return redirect(url_for("index"))
        if image.imgur_img:
            resp = ImgurHandler(get_config().imgur_id).delete_image(image.delete_hash)
            if not resp["success"]:
                handle_errors(resp)
        return redirect(url_for("user_images", username=session["user"]))
Example #4
0
def delete_image(id):
    image = UserImages.get_image(id)
    if not image:
        abort(404)
    if image.owner.username != session["user"]:
        flash("Don't try to delete other\'s dude\'s pictures...dude")
        return redirect(url_for("index"))
    else:
        try:
            UserImages.delete_image(image)
        except:
            error = "Error occured when writing to database"
            flash(error)
            return redirect(url_for("index"))
        if image.imgur_img:
            resp = ImgurHandler(get_config().imgur_id).delete_image(
                image.delete_hash)
            if not resp["success"]:
                handle_errors(resp)
        return redirect(url_for("user_images", username=session["user"]))
Example #5
0
def user_images(username, page):
    per_page = settings.get("images_per_page", 10)
    images = UserImages.get_gallery_images(page=page,
                                           per_page=per_page,
                                           username=username)
    show_pagination = images.wrapped_count() > per_page
    images_uploaded = bool(tuple(images))
    if not tuple(images) and page != 1:
        abort(404)
    thumbnail_size = settings.get("thumbnail_size", "l")
    pagination = Pagination(page, per_page, images.wrapped_count())
    return render_template("user_images.html",
                           images_uploaded=images_uploaded,
                           pagination=pagination,
                           show_upload_btn=True,
                           thumbnail_size=thumbnail_size,
                           images=images,
                           show_pagination=show_pagination)
Example #6
0
def user_images(username, page):
    per_page = settings.get("images_per_page", 10)
    images = UserImages.get_gallery_images(page=page,
                                           per_page=per_page,
                                           username=username)
    show_pagination = images.wrapped_count() > per_page
    images_uploaded = bool(tuple(images))
    if not tuple(images) and page != 1:
        abort(404)
    thumbnail_size = settings.get("thumbnail_size", "l")
    pagination = Pagination(page, per_page, images.wrapped_count())
    return render_template("user_images.html",
                           images_uploaded=images_uploaded,
                           pagination=pagination,
                           show_upload_btn=True,
                           thumbnail_size=thumbnail_size,
                           images=images,
                           show_pagination=show_pagination)
Example #7
0
def gallery(page):
    if not get_config().show_gallery:
        return redirect(url_for("index"))
    per_page = settings.get("images_per_page", 10)
    images = UserImages.get_gallery_images(page=page,
                                           per_page=per_page,
                                           gallery=True)
    if not tuple(images) and page != 1:
        abort(404)
    count = images.wrapped_count()
    show_pagination = count > per_page
    thumbnail_size = settings.get("thumbnail_size", "l")
    images_uploaded = count > 0
    pagination = Pagination(page, per_page, count)
    return render_template("gallery.html",
                           images_uploaded=images_uploaded,
                           pagination=pagination,
                           thumbnail_size=thumbnail_size,
                           images=images,
                           show_pagination=show_pagination)
Example #8
0
def gallery(page):
    if not get_config().show_gallery:
        return redirect(url_for("index"))
    per_page = settings.get("images_per_page", 10)
    images = UserImages.get_gallery_images(page=page,
                                           per_page=per_page,
                                           gallery=True)
    if not tuple(images) and page != 1:
        abort(404)
    count = images.wrapped_count()
    show_pagination = count > per_page
    thumbnail_size = settings.get("thumbnail_size", "l")
    images_uploaded = count > 0
    pagination = Pagination(page, per_page, count)
    return render_template("gallery.html",
                           images_uploaded=images_uploaded,
                           pagination=pagination,
                           thumbnail_size=thumbnail_size,
                           images=images,
                           show_pagination=show_pagination)
Example #9
0
    def test_test_gallery_methods(self):

        with test_database(db, (Users, UserImages)):
            Users.create_user(username="******", password="******")
            user1 = Users.select().get()

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)

            image = UserImages.select().get()
            self.assertFalse(image.gallery)
            UserImages.gallerify(image)
            self.assertTrue(image.gallery)
            UserImages.gallerify(image)
            self.assertFalse(image.gallery)

            for num in range(2, 10):
                UserImages.add_image(image_link = "test image %d" % num,\
                                    description = "test %d" % num,\
                                    owner = user1)

            self.assertEquals(9, UserImages.get_count())

            paginated = UserImages.get_gallery_images(1, 2)

            self.assertEquals(2, len(tuple(paginated)))

            self.assertIn(self.ADDRESS, str(tuple(paginated)))
            self.assertNotIn("test image 3", str(tuple(paginated)))

            paginated = UserImages.get_gallery_images(5, 2)

            self.assertIn("test image 9", str(tuple(paginated)))
            self.assertEquals(1, len(tuple(paginated)))
Example #10
0
    def test_creating_and_deleting_image(self):

        with test_database(db, (Users, UserImages)):
            Users.create_user(username="******", password="******")
            user1 = Users.select().get()

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)

            image = UserImages.select().get()

            self.assertEquals(self.ADDRESS, image.image_link)
            self.assertEquals("test", image.description)
            self.assertEquals(user1, image.owner)

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)

            self.assertEquals(2, UserImages.get_count())

            self.assertTrue(UserImages.check_exists(self.ADDRESS))
            self.assertFalse(UserImages.check_exists(self.ADDRESS + "bam"))
            image = UserImages.get_image(2)
            UserImages.delete_image(image)
            self.assertEquals(1, UserImages.get_count())
            image = UserImages.get_image(1)
            UserImages.delete_image(image)
            self.assertEquals(0, UserImages.get_count())
Example #11
0
def upload_image():
    error = None
    if request.method == "POST":
        description = request.form.get('description', None)
        if request.form.get("imgur-img"):
            image = request.files["image"]
            if not image:
                error = "No image chosen"
                return render_template("upload_image.html", error=error)

            user_id = get_config().imgur_id
            extension = split_filename(image.filename, True)
            if extension not in app.config["ALLOWED_FILENAMES"]:
                error = "Allowed extensions are %r"\
                        % (", ".join(app.config["ALLOWED_FILENAMES"]))
                return render_template("upload_image.html", error=error)

            filename = secure_filename(image.filename.strip())
            user = Users.get_user_by_username(session["user"])
            config = dict(
                image=image,
                name=filename,
                description=description)
            response = ImgurHandler(user_id, config).send_image()
            if not response["success"]:
                error = "Error uploading to imgur"
                return render_template("upload_image.html", error=error)

            response_data = response["data"]
            image_link = response_data["link"]
            is_vertical = response_data["width"] + 10 < response_data["height"]
            delete_hash = response_data["deletehash"]
            try:
                UserImages.add_image(image_link=image_link,
                                     description=description,
                                     delete_hash=delete_hash,
                                     is_vertical=is_vertical,
                                     imgur_img=True,
                                     owner=user)

                return redirect(url_for("user_images", username=user.username))
            except:
                error = "Error writing to database"
                return render_template("upload_image.html", error=error)

            return render_template("upload_image.html", error=response)

        elif request.form.get('save-link'):
            link = request.form.get('image-link', None)
            if not link:
                error = "No link given"
                return render_template("upload_image.html", error=error)

            user = Users.get_user_by_username(session["user"])
            try:
                UserImages.add_image(image_link=link,
                                     description=description,
                                     is_vertical=True,
                                     imgur_img=False,
                                     owner=user)
                return redirect(url_for("user_images", username=user.username))

            except Exception as e:
                error = "Error writing to database"
                return render_template("upload_image.html", error=error)
    else:
        return render_template("upload_image.html")
Example #12
0
    def test_test_gallery_methods(self):

        with test_database(db, (Users, UserImages)):
            Users.create_user(username = "******", password = "******")
            user1 = Users.select().get()

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)

            
            image = UserImages.select().get()
            self.assertFalse(image.gallery)
            UserImages.gallerify(image)
            self.assertTrue(image.gallery)
            UserImages.gallerify(image)
            self.assertFalse(image.gallery)

            for num in range(2, 10):
                UserImages.add_image(image_link = "test image %d" % num,\
                                    description = "test %d" % num,\
                                    owner = user1)

            self.assertEquals(9, UserImages.get_count())

            paginated = UserImages.get_gallery_images(1, 2)

            self.assertEquals(2, len(tuple(paginated)))

            self.assertIn(self.ADDRESS, str(tuple(paginated)))
            self.assertNotIn("test image 3", str(tuple(paginated)))

            paginated = UserImages.get_gallery_images(5, 2)

            self.assertIn("test image 9", str(tuple(paginated)))
            self.assertEquals(1, len(tuple(paginated)))
Example #13
0
    def test_creating_and_deleting_image(self):
        
        with test_database(db, (Users, UserImages)):
            Users.create_user(username = "******", password = "******")
            user1 = Users.select().get()

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)


            image = UserImages.select().get()

            self.assertEquals(self.ADDRESS ,image.image_link)
            self.assertEquals("test", image.description)
            self.assertEquals(user1, image.owner)

            UserImages.add_image(image_link = self.ADDRESS,\
                                description = "test",\
                                is_vertical = True, \
                                owner = user1,\
                                imgur_img = False,\
                                delete_hash = None)

            self.assertEquals(2, UserImages.get_count())

            self.assertTrue(UserImages.check_exists(self.ADDRESS))
            self.assertFalse(UserImages.check_exists(self.ADDRESS + "bam"))
            image = UserImages.get_image(2)
            UserImages.delete_image(image)
            self.assertEquals(1, UserImages.get_count())
            image = UserImages.get_image(1)
            UserImages.delete_image(image)
            self.assertEquals(0, UserImages.get_count())
Example #14
0
def upload_image():
    error = None
    if request.method == "POST":
        description = request.form.get('description', None)
        if request.form.get("imgur-img"):
            image = request.files["image"]
            if not image:
                error = "No image chosen"
                return render_template("upload_image.html", error=error)

            user_id = get_config().imgur_id
            extension = split_filename(image.filename, True)
            if extension not in app.config["ALLOWED_FILENAMES"]:
                error = "Allowed extensions are %r"\
                        % (", ".join(app.config["ALLOWED_FILENAMES"]))
                return render_template("upload_image.html", error=error)

            filename = secure_filename(image.filename.strip())
            user = Users.get_user_by_username(session["user"])
            config = dict(image=image, name=filename, description=description)
            response = ImgurHandler(user_id, config).send_image()
            if not response["success"]:
                error = "Error uploading to imgur"
                return render_template("upload_image.html", error=error)

            response_data = response["data"]
            image_link = response_data["link"]
            is_vertical = response_data["width"] + 10 < response_data["height"]
            delete_hash = response_data["deletehash"]
            try:
                UserImages.add_image(image_link=image_link,
                                     description=description,
                                     delete_hash=delete_hash,
                                     is_vertical=is_vertical,
                                     imgur_img=True,
                                     owner=user)

                return redirect(url_for("user_images", username=user.username))
            except:
                error = "Error writing to database"
                return render_template("upload_image.html", error=error)

            return render_template("upload_image.html", error=response)

        elif request.form.get('save-link'):
            link = request.form.get('image-link', None)
            if not link:
                error = "No link given"
                return render_template("upload_image.html", error=error)

            user = Users.get_user_by_username(session["user"])
            try:
                UserImages.add_image(image_link=link,
                                     description=description,
                                     is_vertical=True,
                                     imgur_img=False,
                                     owner=user)
                return redirect(url_for("user_images", username=user.username))

            except Exception as e:
                error = "Error writing to database"
                return render_template("upload_image.html", error=error)
    else:
        return render_template("upload_image.html")