From 917ec980636a099033d16f69c744b367bf6b43fe Mon Sep 17 00:00:00 2001 From: FuzzyGrim Date: Wed, 4 Jan 2023 22:09:39 +0100 Subject: [PATCH] use own image not found --- .gitignore | 3 ++- app/static/css/_edit.scss | 6 +++--- app/templates/app/edit.html | 4 +++- app/templates/app/search.html | 2 +- app/utils/database.py | 34 +++++++++++++++++++--------------- app/utils/helpers.py | 24 +++++++++--------------- media/images/none.svg | 12 ++++++++++++ 7 files changed, 49 insertions(+), 36 deletions(-) create mode 100644 media/images/none.svg diff --git a/.gitignore b/.gitignore index 7ac9a353..885d7fe3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ __pycache__ .env db.sqlite3 /static/ -/media/ \ No newline at end of file +media/images/* +!media/images/none.svg \ No newline at end of file diff --git a/app/static/css/_edit.scss b/app/static/css/_edit.scss index e14dfe65..acbe41e5 100644 --- a/app/static/css/_edit.scss +++ b/app/static/css/_edit.scss @@ -8,9 +8,9 @@ } .image-not-found { - background-image: url("https://www.themoviedb.org/assets/2/v4/glyphicons/basic/glyphicons-basic-38-picture-grey-c2ebdbb057f2a7614185931650f8cee23fa137b93812ccb132b9df511df1cfac.svg"); - background-repeat: no-repeat; - background-position:center; + object-fit: contain; + width: 10rem; + height: 15rem; background-color: rgb(44, 48, 50); } diff --git a/app/templates/app/edit.html b/app/templates/app/edit.html index 7ae637dd..a594979f 100644 --- a/app/templates/app/edit.html +++ b/app/templates/app/edit.html @@ -1,3 +1,5 @@ +{% load static %} +
@@ -6,7 +8,7 @@ {% elif media.response.poster_path %} {% else %} -
+ {% endif %}
diff --git a/app/templates/app/search.html b/app/templates/app/search.html index 87d03317..1a64fcdd 100644 --- a/app/templates/app/search.html +++ b/app/templates/app/search.html @@ -36,7 +36,7 @@ {% elif media.poster_path %} {% else %} - + {% endif %}
{{media.name}}{{media.title}}
diff --git a/app/utils/database.py b/app/utils/database.py index e915a682..8254e62b 100644 --- a/app/utils/database.py +++ b/app/utils/database.py @@ -1,6 +1,8 @@ from app.models import Media from app.utils import helpers from django.core.files import File +from django.conf import settings + def add_media(request): media = Media() @@ -28,28 +30,30 @@ def add_media(request): media.status = "Watching" media.api = request.POST["api"] - + if media.api == "mal": media.media_type = request.POST["media_type"] - img_temp = helpers.get_image_temp(request.POST["image"]) + if request.POST['image'] == "" or request.POST['image'] == None: + media.image = "images/none.svg" + media.save() + else: + img_temp = helpers.get_image_temp(request.POST["image"]) + if media.media_type == "anime": + media.image.save(f"anime-{request.POST['image'].rsplit('/', 1)[-1]}", File(img_temp)) + elif media.media_type == "manga": + media.image.save(f"manga-{request.POST['image'].rsplit('/', 1)[-1]}", File(img_temp)) + img_temp.close() else: media.media_type = request.POST["media_type"] - img_temp = helpers.get_image_temp(f"https://image.tmdb.org/t/p/w92{request.POST['image']}") - - if request.POST['image'] == "" or request.POST['image'] == None: - media.image.save(f"none.svg", File(img_temp)) - else: - if media.media_type == "anime": - media.image.save(f"anime-{request.POST['image'].rsplit('/', 1)[-1]}", File(img_temp)) - - elif media.media_type == "manga": - media.image.save(f"manga-{request.POST['image'].rsplit('/', 1)[-1]}", File(img_temp)) - + if request.POST['image'] == "" or request.POST['image'] == None: + media.image = "images/none.svg" + media.save() else: + img_temp = helpers.get_image_temp(f"https://image.tmdb.org/t/p/w92{request.POST['image']}") media.image.save(f"tmdb-{request.POST['image'].rsplit('/', 1)[-1]}", File(img_temp)) - img_temp.close() - + img_temp.close() + def edit_media(request): if request.POST["score"] == "": score = None diff --git a/app/utils/helpers.py b/app/utils/helpers.py index ee5173c9..c0fe235c 100644 --- a/app/utils/helpers.py +++ b/app/utils/helpers.py @@ -17,27 +17,21 @@ def convert_mal_media_type(media_type): def get_image_temp(url): img_temp = NamedTemporaryFile(delete=True) - if url in ["", "https://image.tmdb.org/t/p/w92None", "https://image.tmdb.org/t/p/w92"]: - r = requests.get("https://www.themoviedb.org/assets/2/v4/glyphicons/basic/glyphicons-basic-38-picture-grey-c2ebdbb057f2a7614185931650f8cee23fa137b93812ccb132b9df511df1cfac.svg") - else: - r = requests.get(url) + r = requests.get(url) img_temp.write(r.content) img_temp.flush() return img_temp async def download_image(session, url, media_type): - if url in ["", "https://image.tmdb.org/t/p/w92None", "https://image.tmdb.org/t/p/w92"]: - url = "https://www.themoviedb.org/assets/2/v4/glyphicons/basic/glyphicons-basic-38-picture-grey-c2ebdbb057f2a7614185931650f8cee23fa137b93812ccb132b9df511df1cfac.svg" - location = f"{settings.MEDIA_ROOT}/images/none.svg" - else: + if url not in ["", "https://image.tmdb.org/t/p/w92None", "https://image.tmdb.org/t/p/w92"]: location = f"{settings.MEDIA_ROOT}/images/{media_type}-{url.rsplit('/', 1)[-1]}" - # Create the directory if it doesn't exist - os.makedirs(f"{settings.MEDIA_ROOT}/images", exist_ok=True) + # Create the directory if it doesn't exist + os.makedirs(f"{settings.MEDIA_ROOT}/images", exist_ok=True) - async with session.get(url) as resp: - if resp.status == 200: - f = await aiofiles.open(location, mode='wb') - await f.write(await resp.read()) - await f.close() \ No newline at end of file + async with session.get(url) as resp: + if resp.status == 200: + f = await aiofiles.open(location, mode='wb') + await f.write(await resp.read()) + await f.close() \ No newline at end of file diff --git a/media/images/none.svg b/media/images/none.svg new file mode 100644 index 00000000..f83ba5b8 --- /dev/null +++ b/media/images/none.svg @@ -0,0 +1,12 @@ + + + + + +