diff --git a/core/__init__.py b/core/__init__.py index b232b5c2..a8693ff3 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -29,6 +29,8 @@ class nested_dict_sqlite(defaultdict): self[key].close() self.clear() - db_name = filetools.join(config.get_data_path(), "db.sqlite") db = nested_dict_sqlite(lambda table: SqliteDict(db_name, table, 'c', True)) + +vdb_name = filetools.join(config.get_videolibrary_path(), "videolibrary.sqlite") +videolibrarydb = nested_dict_sqlite(lambda table: SqliteDict(vdb_name, table, 'c', True)) diff --git a/core/videolibrarydb.py b/core/videolibrarydb.py deleted file mode 100644 index b8a1f170..00000000 --- a/core/videolibrarydb.py +++ /dev/null @@ -1,20 +0,0 @@ -from collections import defaultdict -from lib.sqlitedict import SqliteDict - -from core import filetools -from platformcode import config - -class nested_dict_sqlite(defaultdict): - 'like defaultdict but default_factory receives the key' - - def __missing__(self, key): - self[key] = value = self.default_factory(key) - return value - - def close(self): - for key in self.keys(): - self[key].close() - self.clear() - -db_name = filetools.join(config.get_videolibrary_path(), "videolibrary.sqlite") -videolibrarydb = nested_dict_sqlite(lambda table: SqliteDict(db_name, table, 'c', True)) \ No newline at end of file diff --git a/core/videolibrarytools.py b/core/videolibrarytools.py index ce0361de..230c470e 100644 --- a/core/videolibrarytools.py +++ b/core/videolibrarytools.py @@ -12,12 +12,12 @@ else: from concurrent_py2 import futures import math, traceback, re, os -from core import filetools, scraper, scrapertools, support, httptools, tmdb +from core import filetools, scraper, scrapertools, httptools, tmdb from core.item import Item from lib import generictools from platformcode import config, dbconverter, logger, platformtools from platformcode.autorenumber import RENUMBER -from core.videolibrarydb import videolibrarydb +from core import videolibrarydb FOLDER_MOVIES = config.get_setting("folder_movies") FOLDER_TVSHOWS = config.get_setting("folder_tvshows") diff --git a/platformcode/dbconverter.py b/platformcode/dbconverter.py index 7bd5ceaa..7752712b 100644 --- a/platformcode/dbconverter.py +++ b/platformcode/dbconverter.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import xbmc -from core import filetools, support, videolibrarytools -from core.videolibrarydb import videolibrarydb +from core import filetools, videolibrarytools +from core import videolibrarydb from platformcode import config, logger, platformtools from platformcode.xbmc_videolibrary import execute_sql_kodi, get_data, get_file_db from time import time, strftime, localtime diff --git a/platformcode/launcher.py b/platformcode/launcher.py index 6dfc4327..004fa0e0 100644 --- a/platformcode/launcher.py +++ b/platformcode/launcher.py @@ -3,7 +3,6 @@ # XBMC Launcher (xbmc / kodi) # ------------------------------------------------------------ -import platformcode from specials import videolibrary import sys, os @@ -497,12 +496,12 @@ def play_from_library(item): xbmc.Player().stop() if xbmc.getCondVisibility('Window.IsMedia') and not item.window_type == 0: if item.contentType == 'episode': - it = videolibrarydb.videolibrarydb[item.contentType][item.videolibrary_id]['{}x{:02d}'.format(item.infoLabels['season'], item.infoLabels['episode'])]['item'] + it = videolibrarydb[item.contentType][item.videolibrary_id]['{}x{:02d}'.format(item.infoLabels['season'], item.infoLabels['episode'])]['item'] else: - it = videolibrarydb.videolibrarydb[item.contentType][item.videolibrary_id]['item'] + it = videolibrarydb[item.contentType][item.videolibrary_id]['item'] it.from_library = True xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + it.tourl() + ")") - videolibrarydb.videolibrarydb.close() + videolibrarydb.close() else: item.window = True return videolibrary.findvideos(item) diff --git a/platformcode/xbmc_videolibrary.py b/platformcode/xbmc_videolibrary.py index 7031d703..c4af9443 100644 --- a/platformcode/xbmc_videolibrary.py +++ b/platformcode/xbmc_videolibrary.py @@ -3,7 +3,7 @@ # XBMC Library Tools # ------------------------------------------------------------ -import sys, os, threading, time, re, math, xbmc, xbmcgui, sqlite3 +import sys, os, threading, time, re, math, xbmc, xbmcgui PY3 = False if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int @@ -298,7 +298,7 @@ def mark_content_as_watched_on_kodi(item, value=1): def set_watched_on_kod(data): from specials import videolibrary - from core.videolibrarytools import videolibrarydb + from core import videolibrarydb # from core.support import dbg;dbg() data = jsontools.load(data) diff --git a/specials/videolibrary.py b/specials/videolibrary.py index be2a62df..38bd3e88 100644 --- a/specials/videolibrary.py +++ b/specials/videolibrary.py @@ -2,16 +2,13 @@ #from builtins import str import sys, os, traceback, xbmc, xbmcgui -from core import httptools, jsontools, support PY3 = False if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int -from core import filetools, scrapertools, videolibrarytools -from core.support import typo, thumb, videolibrary +from core import httptools, support, filetools, scrapertools, videolibrarytools, videolibrarydb from core.item import Item from platformcode import config, logger, platformtools -from core.videolibrarytools import MOVIES_PATH, videolibrarydb if PY3: from concurrent import futures @@ -24,13 +21,13 @@ else: def mainlist(item): logger.debug() - itemlist = [item.clone(title=config.get_localized_string(60509), contentType='movie', action='list_movies', thumbnail=thumb('videolibrary_movie')), - item.clone(title=typo(config.get_localized_string(70741) % config.get_localized_string(30122) + '...', 'submenu'), contentType='movie',action='search_list', thumbnail=thumb('search_movie')), - item.clone(title=config.get_localized_string(60600), contentType='tvshow', action='list_tvshows', thumbnail=thumb('videolibrary_tvshow'), + itemlist = [item.clone(title=config.get_localized_string(60509), contentType='movie', action='list_movies', thumbnail=support.thumb('videolibrary_movie')), + item.clone(title=support.typo(config.get_localized_string(70741) % config.get_localized_string(30122) + '...', 'submenu'), contentType='movie',action='search_list', thumbnail=support.thumb('search_movie')), + item.clone(title=config.get_localized_string(60600), contentType='tvshow', action='list_tvshows', thumbnail=support.thumb('videolibrary_tvshow'), context=[{'channel':'videolibrary', 'action':'update_videolibrary', 'title':config.get_localized_string(70269)}]), - item.clone(title=typo(config.get_localized_string(70741) % config.get_localized_string(30123) + '...', 'submenu'),contentType='tvshow', action='search_list', thumbnail=thumb('search_tvshow')), - item.clone(channel='shortcuts', title=typo(config.get_localized_string(70287),'bold color kod'), action='SettingOnPosition', - category=2, setting=1, thumbnail = thumb('setting'),folder=False)] + item.clone(title=support.typo(config.get_localized_string(70741) % config.get_localized_string(30123) + '...', 'submenu'),contentType='tvshow', action='search_list', thumbnail=support.thumb('search_tvshow')), + item.clone(channel='shortcuts', title=support.typo(config.get_localized_string(70287),'bold color kod'), action='SettingOnPosition', + category=2, setting=1, thumbnail = support.thumb('setting'),folder=False)] support.thumb(itemlist) return itemlist @@ -87,7 +84,7 @@ def list_genres(item): itemlist.append(it) itemlist.sort(key=lambda it: it.list_genre) - thumb(itemlist, True) + support.thumb(itemlist, True) return itemlist @@ -239,10 +236,10 @@ def list_tvshows(item): if itemlist: itemlist = sorted(itemlist, key=lambda it: it.title.lower()) add_context(itemlist) - thumbnail = thumb('videolibrary_tvshow') + thumbnail = support.thumb('videolibrary_tvshow') itemlist += [Item(channel=item.channel, action='update_videolibrary', thumbnail=thumbnail, fanart=thumbnail, landscape=thumbnail, - title=typo(config.get_localized_string(70269), 'bold color kod'), folder=False)] + title=support.typo(config.get_localized_string(70269), 'bold color kod'), folder=False)] videolibrarydb.close() return itemlist @@ -1014,7 +1011,7 @@ def add_download_items(item, itemlist): if not item.fromLibrary and not localOnly: downloadItem = Item(channel='downloads', from_channel=item.channel, - title=typo(config.get_localized_string(60355), 'color kod bold'), + title=support.typo(config.get_localized_string(60355), 'color kod bold'), fulltitle=item.fulltitle, show=item.fulltitle, contentType=item.contentType, @@ -1024,22 +1021,22 @@ def add_download_items(item, itemlist): from_action='findvideos', contentTitle=config.get_localized_string(60355), path=item.path, - thumbnail=thumb('download'), + thumbnail=support.thumb('download'), parent=item.tourl()) if item.action == 'findvideos': if item.contentType != 'movie': - downloadItem.title = '{} {}'.format(typo(config.get_localized_string(60356), 'color kod bold'), item.title) + downloadItem.title = '{} {}'.format(support.typo(config.get_localized_string(60356), 'color kod bold'), item.title) else: # film - downloadItem.title = typo(config.get_localized_string(60354), 'color kod bold') + downloadItem.title = support.typo(config.get_localized_string(60354), 'color kod bold') downloadItem.downloadItemlist = [i.tourl() for i in itemlist] itemlist.append(downloadItem) else: if item.contentSeason: # season - downloadItem.title = typo(config.get_localized_string(60357), 'color kod bold') + downloadItem.title = support.typo(config.get_localized_string(60357), 'color kod bold') itemlist.append(downloadItem) else: # tvshow + not seen itemlist.append(downloadItem) - itemlist.append(downloadItem.clone(title=typo(config.get_localized_string(60003), 'color kod bold'), contentTitle=config.get_localized_string(60003), unseen=True)) + itemlist.append(downloadItem.clone(title=support.typo(config.get_localized_string(60003), 'color kod bold'), contentTitle=config.get_localized_string(60003), unseen=True)) #-------------- DELETE --------------