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:
parent
08fbf0576d
commit
7f23892630
2 changed files with 12 additions and 2 deletions
|
@ -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")
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in a new issue