From: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Date: Fri, 7 Sep 2012 11:08:16 +0000 (+0200)
Subject: fixes #2356: set User-Agent
X-Git-Tag: 1.7~145
X-Git-Url: https://git.mdrn.pl/librarian.git/commitdiff_plain/1ffcf32a8d795681f54bd125ca45e908da5ed3fb?ds=sidebyside

fixes #2356: set User-Agent
---

diff --git a/librarian/__init__.py b/librarian/__init__.py
index 616e351..c46d5d1 100644
--- a/librarian/__init__.py
+++ b/librarian/__init__.py
@@ -8,6 +8,8 @@ from __future__ import with_statement
 import os
 import re
 import shutil
+import urllib
+
 
 class UnicodeException(Exception):
     def __str__(self):
@@ -272,3 +274,8 @@ class OutputFile(object):
         if not os.path.isdir(dirname):
             os.makedirs(dirname)
         shutil.copy(self.get_filename(), path)
+
+
+class URLOpener(urllib.FancyURLopener):
+    version = 'FNP Librarian (http://github.com/fnp/librarian)'
+urllib._urlopener = URLOpener()
diff --git a/librarian/cover.py b/librarian/cover.py
index a2de837..be34e26 100644
--- a/librarian/cover.py
+++ b/librarian/cover.py
@@ -6,7 +6,7 @@
 import re
 import Image, ImageFont, ImageDraw, ImageFilter
 from StringIO import StringIO
-from librarian import get_resource, OutputFile
+from librarian import get_resource, OutputFile, URLOpener
 
 
 class TextBox(object):
@@ -225,19 +225,16 @@ class WLCover(Cover):
         self.kind = book_info.kind
         self.epoch = book_info.epoch
         if book_info.cover_url:
-            from urllib2 import urlopen
-            from StringIO import StringIO
-
             url = book_info.cover_url
             bg_src = None
             if image_cache:
                 from urllib import quote
                 try:
-                    bg_src = urlopen(image_cache + quote(url, safe=""))
+                    bg_src = URLOpener().open(image_cache + quote(url, safe=""))
                 except:
                     pass
             if bg_src is None:
-                bg_src = urlopen(url)
+                bg_src = URLOpener().open(url)
             self.background_img = StringIO(bg_src.read())
             bg_src.close()
         else: