]> git.phdru.name Git - m_librarian.git/blobdiff - m_librarian/download.py
Feat(db): Add book.author1 property
[m_librarian.git] / m_librarian / download.py
index 8e309cb3cbda9a26b856d4f778fbcb25157740ab..744e1a0273c35f06c5d1489b53796cba9556cf43 100755 (executable)
@@ -1,5 +1,6 @@
 #! /usr/bin/env python
 
+from __future__ import print_function
 import os
 from time import mktime
 from shutil import copyfileobj
@@ -16,12 +17,12 @@ compiled_format = '%(file)s'
 
 def _compile_format():
     global format, compile_format, compiled_format
-    if compile_format:
-        compile_format = False
-        try:
-            format = get_config().get('download', 'format')
-        except:
-            return
+    if not compile_format:
+        return
+    compile_format = False
+    format = get_config().get('download', 'format')
+    if not format:
+        return
     got_percent = False
     compiled = []
     for c in format:
@@ -35,7 +36,7 @@ def _compile_format():
             if got_percent:
                 got_percent = False
                 if c == 'a':
-                    new_format = u'%(author)s'
+                    new_format = u'%(author1)s'
                 elif c == 'e':
                     new_format = u'%(extension)s'
                 elif c == 'f':
@@ -63,22 +64,22 @@ def _compile_format():
 _library_path = None
 
 
-def download(book, path=None, a_format=None):
-    if path is None:
+def download(book, dest_path=None, lib_path=None, a_format=None):
+    if lib_path is None:
         global _library_path
         if _library_path is None:
-            _library_path = get_config().get('library', 'path')
-        path = _library_path
+            _library_path = get_config().getpath('library', 'path')
+        lib_path = _library_path
 
     global format, compile_format, compiled_format
     if a_format:
-        format = a_format
         compile_format = True
+        format = a_format
     _compile_format()
     if compiled_format[-1] in ('\0', '\\', '/'):
         raise ValueError('Bad format: "%s"' % compiled_format)
     bdict = {}
-    bdict['author'] = book.authors[0].fullname
+    bdict['author1'] = book.author1
     bdict['extension'] = book.extension.name
     bdict['file'] = book.file
     genre = book.genres[0]
@@ -91,24 +92,26 @@ def download(book, path=None, a_format=None):
     if '%(extension)s' not in compiled_format:
         compiled_format += '.%(extension)s'
     filename = compiled_format % bdict
+    full_path = os.path.join(dest_path, filename)
     try:
-        os.makedirs(os.path.dirname(filename))
+        os.makedirs(os.path.dirname(full_path))
     except OSError:
         pass  # Already exists
-    zf = ZipFile(os.path.join(path, book.archive),  'r')
+    zf = ZipFile(os.path.join(lib_path, book.archive),  'r')
     infile = zf.open('%s.%s' % (book.file, book.extension.name))
-    outfile = open(filename, 'wb')
+    outfile = open(full_path, 'wb')
     copyfileobj(infile, outfile)
     outfile.close()
     infile.close()
     zf.close()
     dt = mktime(book.date.timetuple())
-    os.utime(filename, (dt, dt))
+    os.utime(full_path, (dt, dt))
 
 
 def test():
     _compile_format()
-    print compiled_format
+    print(compiled_format)
+
 
 if __name__ == '__main__':
     test()