X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fdownload.py;h=30412013123eb317883464c7fef5d9c1cf0c790e;hb=35190cea6dda6d65537b110f82a5d3f5277bd94c;hp=a66e6925a6e160d4d4913ee89832bc030eaf6b42;hpb=76fad1db9bf3d812333ca9f65b1ed87c8549cab7;p=m_librarian.git diff --git a/m_librarian/download.py b/m_librarian/download.py index a66e692..3041201 100755 --- a/m_librarian/download.py +++ b/m_librarian/download.py @@ -1,5 +1,6 @@ #! /usr/bin/env python +from __future__ import print_function import os from time import mktime from shutil import copyfileobj @@ -9,22 +10,22 @@ from .config import get_config __all__ = ['download'] -_format = '%f' -_compile_format = True -_compiled_format = '%(file)s' +format = '%f' +compile_format = True +compiled_format = '%(file)s' -def _do_compile_format(): - global _format, _compile_format, _compiled_format - if _compile_format: - _compile_format = False +def _compile_format(): + global format, compile_format, compiled_format + if compile_format: + compile_format = False try: - _format = get_config().get('download', 'format') - except: + format = get_config().get('download', 'format') + except Exception: return got_percent = False compiled = [] - for c in _format: + for c in format: if c == '%': if got_percent: got_percent = False @@ -57,23 +58,26 @@ def _do_compile_format(): compiled.append(new_format) else: compiled.append(c) - _compiled_format = ''.join(compiled) + compiled_format = ''.join(compiled) _library_path = None -def download(book, path=None): +def download(book, path=None, a_format=None): if path is None: global _library_path if _library_path is None: _library_path = get_config().get('library', 'path') path = _library_path - global _compiled_format - _do_compile_format() - if _compiled_format[-1] in ('\0', '\\', '/'): - raise ValueError('Bad format: "%s"' % _compiled_format) + global format, compile_format, compiled_format + if a_format: + format = a_format + compile_format = True + _compile_format() + if compiled_format[-1] in ('\0', '\\', '/'): + raise ValueError('Bad format: "%s"' % compiled_format) bdict = {} bdict['author'] = book.authors[0].fullname bdict['extension'] = book.extension.name @@ -85,9 +89,9 @@ def download(book, path=None): bdict['ser_no'] = book.ser_no or 0 bdict['series'] = book.series bdict['title'] = book.title - if '%(extension)s' not in _compiled_format: - _compiled_format += '.%(extension)s' - filename = _compiled_format % bdict + if '%(extension)s' not in compiled_format: + compiled_format += '.%(extension)s' + filename = compiled_format % bdict try: os.makedirs(os.path.dirname(filename)) except OSError: @@ -104,8 +108,9 @@ def download(book, path=None): def test(): - _do_compile_format() - print _compiled_format + _compile_format() + print(compiled_format) + if __name__ == '__main__': test()