Fix error handling of dblptex command
DBLP does not return a HTTP status code indicating that there is an error but an error page instead. This is now checked by looking at the content type. If something else than bibtex is returned, error out.
This commit is contained in:
1 file changed
+7
-1
@@ -1,6 +1,6 @@
|
||||
import requests
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandParser
|
||||
from django.core.management.base import BaseCommand, CommandError, CommandParser
|
||||
|
||||
import sok.management.commands.dblpimport as dblp
|
||||
|
||||
@@ -17,4 +17,10 @@ class Command(BaseCommand):
|
||||
url = f'https://dblp.uni-trier.de/rec/{key}.bib?param=0'
|
||||
response = requests.get(url)
|
||||
response.raise_for_status
|
||||
|
||||
# The status does not necessarily indicate success, but returns an error
|
||||
# page instead.
|
||||
if 'application/x-bibtex' not in response.headers['Content-Type']:
|
||||
raise CommandError(url)
|
||||
|
||||
self.stdout.write(response.content.decode())
|
||||
Reference in new issue
Block a user