From 101ef13956df9aae5ef151e4ccd29d87fe2fce81 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Wed, 1 Aug 2018 19:12:13 -0500 Subject: [PATCH] more py2/py3 fixes --- fanficfare/adapters/adapter_fanfichu.py | 5 +++-- fanficfare/adapters/adapter_literotica.py | 2 +- fanficfare/adapters/adapter_masseffect2in.py | 4 +++- fanficfare/adapters/adapter_test1.py | 7 +++++-- fanficfare/configurable.py | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/fanficfare/adapters/adapter_fanfichu.py b/fanficfare/adapters/adapter_fanfichu.py index 293077a3..b095402c 100644 --- a/fanficfare/adapters/adapter_fanfichu.py +++ b/fanficfare/adapters/adapter_fanfichu.py @@ -19,6 +19,7 @@ from __future__ import absolute_import import re # py2 vs py3 transition from ..six import text_type as unicode +from ..six import ensure_binary from ..six.moves.urllib import parse as urlparse from ..six.moves.urllib.error import HTTPError @@ -87,7 +88,7 @@ class FanficHuAdapter(BaseSiteAdapter): def extractChapterUrlsAndMetadata(self): soup = self._customized_fetch_url(self.url + '&i=1') - if soup.title.string.encode(_SOURCE_CODE_ENCODING).strip(' :') == 'írta': + if soup.title.string.encode(_SOURCE_CODE_ENCODING).strip(b' :') == 'írta': raise exceptions.StoryDoesNotExist(self.url) chapter_options = soup.find('form', action='viewstory.php').select('option') @@ -143,7 +144,7 @@ class FanficHuAdapter(BaseSiteAdapter): while index < len(cells): cell = cells[index] - key = cell.b.string.encode(_SOURCE_CODE_ENCODING).strip(':') + key = cell.b.string.encode(_SOURCE_CODE_ENCODING).strip(b':') try: value = cells[index+1].string.encode(_SOURCE_CODE_ENCODING) except AttributeError: diff --git a/fanficfare/adapters/adapter_literotica.py b/fanficfare/adapters/adapter_literotica.py index 0422ae75..e0ea5e3a 100644 --- a/fanficfare/adapters/adapter_literotica.py +++ b/fanficfare/adapters/adapter_literotica.py @@ -346,7 +346,7 @@ class LiteroticaSiteAdapter(BaseSiteAdapter): chapter_description = '

Description: %s


' % chapter_description fullhtml += self.getPageText(raw_page, url) if pages: - for page_no in xrange(2, len(page_nums) + 1): + for page_no in range(2, len(page_nums) + 1): page_url = url + "?page=%s" % page_no logger.debug("page_url= %s" % page_url) raw_page = self._fetchUrl(page_url) diff --git a/fanficfare/adapters/adapter_masseffect2in.py b/fanficfare/adapters/adapter_masseffect2in.py index 3de5f4e7..99ae3f87 100644 --- a/fanficfare/adapters/adapter_masseffect2in.py +++ b/fanficfare/adapters/adapter_masseffect2in.py @@ -20,11 +20,14 @@ import bs4 import datetime import logging import re +from itertools import takewhile + from ..htmlcleanup import removeEntities, stripHTML from .. import exceptions as exceptions # py2 vs py3 transition from ..six import text_type as unicode from ..six.moves.urllib.error import HTTPError +from ..six.moves import zip as izip from .base_adapter import BaseSiteAdapter, makeDate @@ -703,7 +706,6 @@ def _getLargestCommonPrefix(*args): """Returns largest common prefix of all unicode arguments, ignoring case. :rtype : unicode """ - from itertools import takewhile, izip toLower = lambda xs: map(lambda x: x.lower(), xs) allSame = lambda xs: len(set(toLower(xs))) == 1 return u''.join([i[0] for i in takewhile(allSame, izip(*args))]) diff --git a/fanficfare/adapters/adapter_test1.py b/fanficfare/adapters/adapter_test1.py index 5e25f864..2a253ae0 100644 --- a/fanficfare/adapters/adapter_test1.py +++ b/fanficfare/adapters/adapter_test1.py @@ -23,6 +23,9 @@ logger = logging.getLogger(__name__) from .. import exceptions +# py2 vs py3 transition +from ..six import ensure_text + from .base_adapter import BaseSiteAdapter, makeDate class TestSiteAdapter(BaseSiteAdapter): @@ -68,13 +71,13 @@ class TestSiteAdapter(BaseSiteAdapter): #print("addList:%s"%(nkey)) for val in self.get_config_list(sections,key): #print("addList:%s->%s"%(nkey,val)) - self.story.addToList(nkey,val.decode('utf-8').replace('{{storyId}}',idstr)) + self.story.addToList(nkey,ensure_text(val).replace('{{storyId}}',idstr)) else: # Special cases: if key in ['datePublished','dateUpdated']: self.story.setMetadata(key,makeDate(self.get_config(sections,key),"%Y-%m-%d")) else: - self.story.setMetadata(key,self.get_config(sections,key).decode('utf-8').replace('{{storyId}}',idstr)) + self.story.setMetadata(key,ensure_text(self.get_config(sections,key)).replace('{{storyId}}',idstr)) #print("set:%s->%s"%(key,self.story.getMetadata(key))) if self.has_config(sections,'chapter_urls'): diff --git a/fanficfare/configurable.py b/fanficfare/configurable.py index e9f722f2..329c57e5 100644 --- a/fanficfare/configurable.py +++ b/fanficfare/configurable.py @@ -1030,7 +1030,7 @@ class Configuration(configparser.SafeConfigParser): if 'Accept' not in headers: headers['Accept']="text/html,*/*" req = Request(url, - data=urlencode(parameters), + data=ensure_binary(urlencode(parameters)), headers=headers) ## Specific UA because too many sites are blocking the default python UA.