]> git.phdru.name Git - m_librarian.git/commitdiff
Fix(inpx): Fix decode filenames to unicode in Python 3 0.1.2
authorOleg Broytman <phd@phdru.name>
Mon, 21 May 2018 21:28:53 +0000 (00:28 +0300)
committerOleg Broytman <phd@phdru.name>
Mon, 21 May 2018 21:28:53 +0000 (00:28 +0300)
m_librarian/inp.py

index f46bea62fe2a5270cb2075ec36fdb4ecd2f55df3..d0b567af4c5f97f218b4c393e575b6d69a18ab17 100644 (file)
@@ -1,5 +1,6 @@
 
 import os
+import sys
 from zipfile import ZipFile
 from sqlobject import sqlhub
 from sqlobject.sqlbuilder import Select
@@ -72,13 +73,21 @@ def import_inp_line(archive, parts):
             book.addGenre(genre_row)
 
 
+if sys.version[0] == 2:
+    def tounicode(s):
+        return s.decode('utf-8')
+else:
+    def tounicode(s):
+        return s
+
+
 def import_inp(archive, inp):
     archives = set()
     files = set()
     connection = sqlhub.processConnection
     for file, in connection.queryAll(connection.sqlrepr(
             Select(Book.q.file, Book.q.archive == archive))):
-        files.add((archive, file.decode('utf-8')))
+        files.add((archive, tounicode(file)))
     for line in inp:
         line = line.decode('utf-8')
         _archive, parts = split_line(line)
@@ -86,7 +95,7 @@ def import_inp(archive, inp):
             archives.add(_archive)
             for file, in connection.queryAll(connection.sqlrepr(
                     Select(Book.q.file, Book.q.archive == _archive))):
-                files.add((_archive, file.decode('utf-8')))
+                files.add((_archive, tounicode(file)))
         file = parts[5]
         if (_archive or archive, file) not in files:
             files.add((_archive or archive, file))