From 7412acd007c6969790cd8fbf15c9c0203bf0aaf8 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Mon, 10 Feb 2014 13:27:33 -0600 Subject: [PATCH] Fix image download for ffnet, make buffynfaith.net use User-agent. --- fanficdownloader/adapters/adapter_buffynfaithnet.py | 2 +- fanficdownloader/adapters/adapter_fanfictionnet.py | 2 ++ fanficdownloader/story.py | 8 +++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/fanficdownloader/adapters/adapter_buffynfaithnet.py b/fanficdownloader/adapters/adapter_buffynfaithnet.py index 76b4b11..3666e09 100644 --- a/fanficdownloader/adapters/adapter_buffynfaithnet.py +++ b/fanficdownloader/adapters/adapter_buffynfaithnet.py @@ -87,7 +87,7 @@ class BuffyNFaithNetAdapter(BaseSiteAdapter): def setHeader(self): "buffynfaith.net wants a Referer for images. Used both above and below(after cookieproc added)" - self.opener.addheaders = [('Referer', 'http://'+self.getSiteDomain()+'/')] + self.opener.addheaders.append(('Referer', 'http://'+self.getSiteDomain()+'/')) @classmethod def getSiteExampleURLs(self): diff --git a/fanficdownloader/adapters/adapter_fanfictionnet.py b/fanficdownloader/adapters/adapter_fanfictionnet.py index c16ab6b..01856ab 100644 --- a/fanficdownloader/adapters/adapter_fanfictionnet.py +++ b/fanficdownloader/adapters/adapter_fanfictionnet.py @@ -57,6 +57,8 @@ class FanFictionNetSiteAdapter(BaseSiteAdapter): ## accept m(mobile)url, but use www. self.origurl = self.origurl.replace("https://m.","https://www.") + self.opener.addheaders.append(('Referer',self.origurl)) + @staticmethod def getSiteDomain(): return 'www.fanfiction.net' diff --git a/fanficdownloader/story.py b/fanficdownloader/story.py index 029502c..b7d65af 100644 --- a/fanficdownloader/story.py +++ b/fanficdownloader/story.py @@ -573,7 +573,13 @@ class Story(Configurable): imgurl = url else: parsedUrl = urlparse.urlparse(parenturl) - if url.startswith("/") : + if url.startswith("//") : + imgurl = urlparse.urlunparse( + (parsedUrl.scheme, + '', + url, + '','','')) + elif url.startswith("/") : imgurl = urlparse.urlunparse( (parsedUrl.scheme, parsedUrl.netloc,