diff --git a/adapter.py b/adapter.py index 246f417..b7708f4 100644 --- a/adapter.py +++ b/adapter.py @@ -29,6 +29,9 @@ class FanfictionSiteAdapter: def setPassword(self, password): pass + def getHost(self): + pass + def getStoryURL(self): pass diff --git a/constants.py b/constants.py index 89b0ef0..294ae4b 100644 --- a/constants.py +++ b/constants.py @@ -27,20 +27,16 @@ h7 { text-align: left; font-size: large; font-weight: bold; } MIMETYPE = '''application/epub+zip''' -TITLE_PAGE = ''' +TITLE_HEADER = ''' %s - %s

%s by %s

- - - - - - - - -
Category:%s
Genre:%s
Status:%s
Published:%s
Updated:%s
Packaged:%s
Rating Age/User:%s / %s
Chapters/Words:%s / %s
-

URL:


%s

+''' + +TITLE_ENTRY = '''%s%s +''' + +TITLE_FOOTER = '''

Summary:
%s

''' diff --git a/ffnet.py b/ffnet.py index 7320ec5..3f9f41e 100644 --- a/ffnet.py +++ b/ffnet.py @@ -68,21 +68,29 @@ class FFNet(FanfictionSiteAdapter): logging.debug('self.path=%s' % self.path) - spl = self.path.split('/') - logging.debug('spl=%s' % spl) - if len(spl) == 5: - self.path = "/".join(spl[1:-1]) - self.outputName = spl[4] + '-ffnet_' + spl[2] - if self.path.startswith('/'): self.path = self.path[1:] + spl = self.path.split('/') + logging.debug('spl=%s' % spl) + if spl is not None: + if len(spl) > 0 and spl[0] != 's': + logging.error("Error URL \"%s\" is not a story." % self.url) + exit (20) + if len(spl) > 1: + self.storyId = spl[1] + if len(spl) > 2: + chapter = spl[1] + else: + chapter = '1' + if len(spl) == 5: + self.path = "/".join(spl[1:-1]) + self.outputName = spl[4] + '-ffnet_' + spl[2] + if self.path.endswith('/'): self.path = self.path[:-1] logging.debug('self.path=%s' % self.path) - - (s, self.storyId, chapter) = self.path.split('/') self.uuid = 'urn:uuid:' + self.host + '-u.' + self.authorId + '-s.' + self.storyId logging.debug('self.uuid=%s' % self.uuid) @@ -190,12 +198,14 @@ class FFNet(FanfictionSiteAdapter): if l.find("»") != -1 and l.find('') != -1: s2 = bs.BeautifulStoneSoup(l) self.storyName = str(s2.find('b').string) - logging.debug('self.storyId=%s self.storyName=%s' % (self.storyId, self.storyName)) + # mangling storyName replaces url for outputName + self.outputName = self.storyName.replace(" ", "_") + '-ffnet_' + self.storyId + logging.debug('self.storyId=%s, self.storyName=%s, self.outputName=%s' % (self.storyId, self.storyName, self.outputName)) elif l.find("