Change output names for web version, make html & text output work for CLI version.

This commit is contained in:
retiefjimm 2010-11-22 20:05:58 -06:00
parent ecdeef4b3b
commit cf0d1bf09b
3 changed files with 26 additions and 4 deletions

View file

@ -62,6 +62,13 @@ class FanficLoader:
self.standAlone = sa
return self.standAlone
def getOverWrite(self):
return self.overWrite
def setOverWrite(self, sa):
self.overWrite = sa
return self.overWrite
def getAdapter():
return self.adapter
@ -153,6 +160,8 @@ if __name__ == '__main__':
writerClass = output.EPubFanficWriter
elif bookFormat == 'html':
writerClass = output.HTMLWriter
elif bookFormat == 'text':
writerClass = output.TextWriter
if adapter.requiresLogin(url):
print("Meow, URL %s requires you to haz been logged in! Please can I haz this datas?" % url)
@ -167,6 +176,9 @@ if __name__ == '__main__':
loader = FanficLoader(adapter, writerClass)
loader.setStandAlone(True)
if bookFormat != 'epub':
loader.setOverWrite(True)
try:
loader.download()

View file

@ -60,6 +60,7 @@ class TextWriter(FanficWriter):
return '.txt'
def __init__(self, base, adapter, inmemory=False, compress=False):
self.inmemory = inmemory
self.htmlWriter = HTMLWriter(base, adapter, True, False)
def writeChapter(self, index, title, text):
@ -67,9 +68,17 @@ class TextWriter(FanficWriter):
def finalise(self):
self.htmlWriter.finalise()
self.output = StringIO.StringIO()
self.name=self.htmlWriter.name
self.fileName = self.htmlWriter.fileName.replace(".html",".txt")
if self.inmemory:
self.output = StringIO.StringIO()
else:
self.output = open(self.fileName, 'w')
self.output.write(html2text.html2text(self.htmlWriter.output.getvalue().decode('utf-8')).encode('utf-8'))
self.name = self.htmlWriter.name
if not self.inmemory:
self.output.close()
class HTMLWriter(FanficWriter):

View file

@ -230,7 +230,8 @@ class FanfictionDownloader(webapp.RequestHandler):
ext = '.html'
if format == 'text':
ext = '.txt'
files = {makeAcceptableFilename(str(adapter.getStoryName())) + ext : StringIO.StringIO(data.decode('utf-8')) }
logging.debug(data)
files = {makeAcceptableFilename(str(adapter.getOutputName())) + ext : StringIO.StringIO(data.decode('utf-8')) }
d = inMemoryZip(files)
data = d.getvalue()
@ -265,7 +266,7 @@ class FanfictionDownloader(webapp.RequestHandler):
fic.user = user
fic.url = url
fic.format = format
fic.name = self._printableVersion(adapter.getStoryName())
fic.name = self._printableVersion(adapter.getOutputName())
fic.author = self._printableVersion(adapter.getAuthorName())
fic.blob = data