]> git.scottworley.com Git - paperdoorknob/blobdiff - fetch.py
fetch: Send User-Agent header
[paperdoorknob] / fetch.py
index 1d2070183a44dded893850630f68d6c2b9c06bb9..151e2a981eca71b2d07e8b7713a687fd7748de5a 100644 (file)
--- a/fetch.py
+++ b/fetch.py
@@ -14,6 +14,10 @@ import requests
 import requests_cache
 
 
+_headers = {
+    'User-Agent': 'paperdoorknob/0.0.1 (https://git.scottworley.com/paperdoorknob/)'}
+
+
 class Fetcher(ABC):
     @abstractmethod
     def fetch(self, url: str) -> bytes:
@@ -27,7 +31,7 @@ class _SessionFetcher(Fetcher):
         self._timeout = timeout
 
     def fetch(self, url: str) -> bytes:
-        with self._session.get(url, timeout=self._timeout) as r:
+        with self._session.get(url, timeout=self._timeout, headers=_headers) as r:
             r.raise_for_status()
             return r.content
 
@@ -44,7 +48,7 @@ class _CachingFetcher(Fetcher):
         self._cache_hit_count = 0
 
     def fetch(self, url: str) -> bytes:
-        with self._session.get(url, timeout=self._timeout) as r:
+        with self._session.get(url, timeout=self._timeout, headers=_headers) as r:
             r.raise_for_status()
             self._request_count += 1
             self._cache_hit_count += int(r.from_cache)
@@ -89,7 +93,7 @@ class FakeFetcher(Fetcher):
     def fetch(self, url: str) -> bytes:
         self._fetch_count += 1
         if url not in self._resources:
-            raise requests.HTTPError("URL not found")
+            raise requests.HTTPError("URL not found", url)
         return self._resources[url]
 
     def request_count(self) -> int: