diff --git a/oml/item/icons.py b/oml/item/icons.py index 87a6a5b..702fe5e 100644 --- a/oml/item/icons.py +++ b/oml/item/icons.py @@ -3,16 +3,16 @@ import os import sqlite3 +from concurrent.futures import ThreadPoolExecutor import tornado.concurrent import tornado.gen import tornado.ioloop import tornado.web -from concurrent.futures import ThreadPoolExecutor from tornado.concurrent import run_on_executor +import ox - -from settings import icons_db_path, static_path +from settings import static_path from utils import resize_image, is_svg import db @@ -125,7 +125,18 @@ class Icons(dict): c.close() conn.close() -icons = Icons(icons_db_path) +def get_icons_db_path(): + import settings + import shutil + + metadata = os.path.join(os.path.expanduser(settings.preferences['libraryPath']), 'Metadata') + ox.makedirs(metadata) + icons_db_path = os.path.join(metadata, 'icons.db') + old_icons_db_path = os.path.join(settings.data_path, 'icons.db') + if not os.path.exists(icons_db_path) and os.path.exists(old_icons_db_path): + print(icons_db_path, icons_db_path) + shutil.move(old_icons_db_path, icons_db_path) + return icons_db_path def get_icon_sync(id, type_, size): if size: @@ -211,3 +222,6 @@ class IconHandler(tornado.web.RequestHandler): if self._finished: return self.write(response) + + +icons = Icons(get_icons_db_path()) diff --git a/oml/item/scan.py b/oml/item/scan.py index c8c7a5a..d700aea 100644 --- a/oml/item/scan.py +++ b/oml/item/scan.py @@ -210,6 +210,14 @@ def run_scan(): logger.debug('%s items in library without a record', len(missing)) def change_path(old, new): + old_icons = os.path.join(old, 'Metadata', 'icons.db') + new_icons = os.path.join(new, 'Metadata', 'icons.db') + if os.path.exists(old_icons) and not os.path.exists(new_icons): + ox.makedirs(os.path.dirname(new_icons)) + shutil.move(old_icons, new_icons) + import item.icons + item.icons.icons = item.icons.Icons(new_icons) + new_books = os.path.join(new, 'Books') if not os.path.exists(new_books): ox.makedirs(new) diff --git a/oml/settings.py b/oml/settings.py index 59a6f77..8b11142 100644 --- a/oml/settings.py +++ b/oml/settings.py @@ -25,7 +25,6 @@ if not os.path.exists(data_path): db_path = os.path.join(data_path, 'data.db') log_path = os.path.join(data_path, 'debug.log') -icons_db_path = os.path.join(data_path, 'icons.db') ssl_cert_path = os.path.join(data_path, 'node.ssl.crt') ssl_key_path = os.path.join(data_path, 'tor', 'private_key') diff --git a/oml/tor.py b/oml/tor.py index d9600e6..f902b87 100644 --- a/oml/tor.py +++ b/oml/tor.py @@ -47,6 +47,8 @@ ControlPort 9831 CookieAuthentication 1 '''.strip()) tor_data = os.path.join(settings.data_path, 'TorData') + if sys.platform == 'win32': + tor_data = os.path.normpath(tor_data).replace(os.SEP, '/') if not os.path.exists(torrc): with open(torrc, 'w') as fd: fd.write(''' diff --git a/oml/update.py b/oml/update.py index 1725b03..6a0c834 100644 --- a/oml/update.py +++ b/oml/update.py @@ -602,6 +602,9 @@ def migrate_13(): import json path = os.path.join(settings.data_path, 'peers', '%s.log' % settings.USER_ID) if not os.path.exists(path): + folder = os.path.dirname(path) + if not os.path.exists(folder): + os.makedirs(folder) with db.session() as session: revision = -1 qs = changelog.Changelog.query.filter_by(user_id=settings.USER_ID)