diff --git a/src/libprs500/__init__.py b/src/libprs500/__init__.py index b2f76b9e9a..4bd2dd0b7b 100644 --- a/src/libprs500/__init__.py +++ b/src/libprs500/__init__.py @@ -110,6 +110,8 @@ class OptionParser(_OptionParser): epilog=_('Created by ')+terminal_controller.RED+__author__+terminal_controller.NORMAL, gui_mode=False, **kwds): + usage += '''\n\nWhenever you pass arguments to %prog that have spaces in them, '''\ + '''enclose the arguments in quotation marks.''' _OptionParser.__init__(self, usage=usage, version=version, epilog=epilog, formatter=CustomHelpFormatter(), **kwds) self.gui_mode = gui_mode diff --git a/src/libprs500/ebooks/lrf/any/convert_from.py b/src/libprs500/ebooks/lrf/any/convert_from.py index d9761252dd..7b4af29a45 100644 --- a/src/libprs500/ebooks/lrf/any/convert_from.py +++ b/src/libprs500/ebooks/lrf/any/convert_from.py @@ -17,7 +17,7 @@ import sys, os, logging, shutil, tempfile, glob from libprs500.ebooks import UnknownFormatError -from libprs500.ebooks.lrf import option_parser +from libprs500.ebooks.lrf import option_parser as _option_parser from libprs500 import __appname__, setup_cli_handlers, extract from libprs500.ebooks.lrf.lit.convert_from import process_file as lit2lrf from libprs500.ebooks.lrf.pdf.convert_from import process_file as pdf2lrf @@ -148,14 +148,18 @@ def process_file(path, options, logger=None): return 0 -def main(args=sys.argv, logger=None, gui_mode=False): - parser = option_parser(usage='''\ +def option_parser(gui_mode=False): + return _option_parser(usage='''\ any2lrf myfile Convert any ebook format into LRF. Supported formats are: LIT, RTF, TXT, HTML, EPUB, MOBI, PRC and PDF. any2lrf will also process a RAR or -ZIP archive. +ZIP archive, looking for an ebook inside the archive. ''', gui_mode=gui_mode) + + +def main(args=sys.argv, logger=None, gui_mode=False): + parser = option_parser(gui_mode) options, args = parser.parse_args(args) if len(args) != 2: parser.print_help() diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py index 02451d7e50..594aa4824c 100644 --- a/src/libprs500/ebooks/lrf/html/convert_from.py +++ b/src/libprs500/ebooks/lrf/html/convert_from.py @@ -1823,7 +1823,10 @@ def try_opf(path, options, logger): def option_parser(): return lrf_option_parser('''Usage: %prog [options] mybook.html\n\n''' - '''%prog converts mybook.html to mybook.lrf''') + '''%prog converts mybook.html to mybook.lrf. ''' + '''html2lrf follows all links in mybook.html that point ''' + '''to local files recursively. Thus, you can use it to ''' + '''convert a whole tree of HTML files.''') def main(args=sys.argv): try: diff --git a/src/libprs500/ebooks/lrf/web/profiles/__init__.py b/src/libprs500/ebooks/lrf/web/profiles/__init__.py index b60f0e8151..33e9b46c5f 100644 --- a/src/libprs500/ebooks/lrf/web/profiles/__init__.py +++ b/src/libprs500/ebooks/lrf/web/profiles/__init__.py @@ -34,7 +34,7 @@ class DefaultProfile(object): delay = 0 # Delay between consecutive downloads timeout = 10 # Timeout for fetching files from server in seconds timefmt = ' [%a %d %b %Y]' # The format of the date shown on the first page - url_search_order = ['guid', 'link'] # THe order of elements to search for a URL when parssing the RSS feed + url_search_order = ['guid', 'link'] # The order of elements to search for a URL when parssing the RSS feed pubdate_fmt = None # The format string used to parse the publication date in the RSS feed. If set to None some default heuristics are used, these may fail, in which case set this to the correct string or re-implement strptime in your subclass. use_pubdate = True, # If True will look for a publication date for each article. If False assumes the publication date is the current time. summary_length = 500 # Max number of characters in the short description (ignored in DefaultProfile) diff --git a/src/libprs500/ebooks/metadata/opf.py b/src/libprs500/ebooks/metadata/opf.py index 73cc801d9d..b16577c59f 100644 --- a/src/libprs500/ebooks/metadata/opf.py +++ b/src/libprs500/ebooks/metadata/opf.py @@ -601,8 +601,11 @@ class OPFCreator(OPF): self._commit(doc) +def option_parser(): + return get_parser('opf') + def main(args=sys.argv): - parser = get_parser('opf') + parser = option_parser() opts, args = parser.parse_args(args) if len(args) != 2: parser.print_help() diff --git a/src/libprs500/ebooks/metadata/rtf.py b/src/libprs500/ebooks/metadata/rtf.py index e636b319b1..9627b11e91 100644 --- a/src/libprs500/ebooks/metadata/rtf.py +++ b/src/libprs500/ebooks/metadata/rtf.py @@ -177,9 +177,11 @@ def set_metadata(stream, options): stream.write(src) stream.write(after) +def option_parser(): + return get_parser('rtf') def main(args=sys.argv): - parser = get_parser('rtf') + parser = option_parser() options, args = parser.parse_args(args) if len(args) != 2: parser.print_help() diff --git a/src/libprs500/manual/Makefile b/src/libprs500/manual/Makefile deleted file mode 100644 index a19cb3be95..0000000000 --- a/src/libprs500/manual/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -QTDIR=/usr/local/Trolltech/Qt-4.4.0-tp1 -QCG=${QTDIR}/bin/qcollectiongenerator -ASSISTANT=${QTDIR}/bin/assistant_new -LD_LIBRARY_PATH=${QTDIR}/lib - -all : clean - python preprocess.py - LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ${QCG} libprs500.qhcp && \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ${ASSISTANT} -collectionFile libprs500.qhc & - -clean : - rm -rf *.qhc *.qch ~/.assistant/libprs500.qhc diff --git a/src/libprs500/manual/preprocess.py b/src/libprs500/manual/make.py similarity index 86% rename from src/libprs500/manual/preprocess.py rename to src/libprs500/manual/make.py index 3d940d498f..a6b0cd6020 100644 --- a/src/libprs500/manual/preprocess.py +++ b/src/libprs500/manual/make.py @@ -16,7 +16,7 @@ ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. '''''' -import sys, glob, mechanize, time, subprocess, os, re +import sys, glob, mechanize, time, subprocess, os, re, shutil from tempfile import NamedTemporaryFile from xml.etree.ElementTree import parse, tostring, fromstring from BeautifulSoup import BeautifulSoup @@ -73,9 +73,22 @@ def clean(): for f in glob.glob(pat): f = os.path.abspath(os.path.expanduser(f)) if os.path.exists(f): - if os.path.isfile(f): + if os.path.isdir(f): + shutil.rmtree(f) + else: os.unlink(f) - + return 0 + +def compile_help(): + QTDIR = '/usr/local/Trolltech/Qt-4.4.0-tp1' + QTBIN = QTDIR + '/bin' + QTLIB = QTDIR + '/lib' + QCG = os.path.join(QTBIN, 'qcollectiongenerator') + QTA = os.path.join(QTBIN, 'assistant_new') + os.environ['LD_LIBRARY_PATH'] = QTLIB + subprocess.check_call((QCG, 'libprs500.qhcp')) + subprocess.call((QTA, '-collectionFile', 'libprs500.qhc')) + def generate_cli_docs(src='libprs500.qhp'): documented_cmds = [] @@ -144,7 +157,7 @@ def generate_cli_docs(src='libprs500.qhp'): body = '
%s
\n'%'libprs500 has a very comprehensive command line interface to perform most operations that can be performed by the GUI.' + body += '%s
\n'%'libprs500 has a very comprehensive command line interface to perform most operations that can be performed by the GUI.' body += 'You can see usage for undocumented commands by executing them without arguments in a terminal
' @@ -185,11 +198,10 @@ def create_html_interface(src='libprs500.qhp'): def process_branch(branch, toplevel=False): parent = [] for sec in branch.findall('section'): - html = '