1
0
Fork 0
mirror of https://github.com/Findus23/acronomy.git synced 2024-09-19 15:33:45 +02:00

don't throw error if Wikipedia Image cannot be found

This commit is contained in:
Lukas Winkler 2020-07-28 17:56:03 +02:00
parent 08fbf0576d
commit 7f23892630
Signed by: lukas
GPG key ID: 54DE4D798D244853
2 changed files with 12 additions and 2 deletions

View file

@ -4,7 +4,7 @@ import requests
from django.core.files import File
from django.db import models
from acros.utils.apis import WikipediaImageAPIObject
from acros.utils.apis import WikipediaImageAPIObject, NotFoundError
class WikipediaImage(models.Model):
@ -25,7 +25,10 @@ class WikipediaImage(models.Model):
timestamp = models.DateTimeField(blank=True, editable=False)
def save(self, *args, **kwargs):
img = WikipediaImageAPIObject(self.filename)
try:
img = WikipediaImageAPIObject(self.filename)
except NotFoundError:
return
if self.thumbnail:
self.thumbnail.delete(save=False)
print("saving")

View file

@ -6,6 +6,11 @@ from bs4 import BeautifulSoup
from acros.utils.html import clean_html, string_to_bool
class NotFoundError(FileNotFoundError):
"""Request could not be found in API"""
pass
class WikipediaAPISummary:
urlbase = "https://en.wikipedia.org/api/rest_v1/page/summary/"
@ -57,6 +62,8 @@ class WikipediaImageAPIObject:
r.raise_for_status()
self.data = r.json()
self.image_obj = list(self.data["query"]["pages"].values())[0]
if "imageinfo" not in self.image_obj:
raise NotFoundError()
@classmethod
def from_url(cls, url: str):