diff --git a/resources/lib/database.py b/resources/lib/database.py index 86708a8f..622e893c 100644 --- a/resources/lib/database.py +++ b/resources/lib/database.py @@ -129,6 +129,7 @@ class DatabaseConn(object): if self.db_file == "video": kodi_commit() self.conn.commit() + log.info("commit: %s", self.path) log.info("close: %s", self.path) self.conn.close() diff --git a/resources/lib/playlist.py b/resources/lib/playlist.py index 0a534c06..1eaac424 100644 --- a/resources/lib/playlist.py +++ b/resources/lib/playlist.py @@ -12,6 +12,8 @@ import playbackutils import embydb_functions as embydb import read_embyserver as embyserver from utils import window, kodiSQL, JSONRPC +from database import DatabaseConn +from contextlib import closing ################################################################################################# @@ -29,77 +31,76 @@ class Playlist(object): def play_all(self, item_ids, start_at): - conn = kodiSQL('emby') - cursor = conn.cursor() - emby_db = embydb.Embydb_Functions(cursor) + with DatabaseConn('emby') as conn: + with closing(conn.cursor()) as cursor: + emby_db = embydb.Embydb_Functions(cursor) - player = xbmc.Player() - playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) - playlist.clear() + player = xbmc.Player() + playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) + playlist.clear() - log.info("---*** PLAY ALL ***---") - log.info("Items: %s and start at: %s", item_ids, start_at) + log.info("---*** PLAY ALL ***---") + log.info("Items: %s and start at: %s", item_ids, start_at) - started = False - window('emby_customplaylist', value="true") + started = False + window('emby_customplaylist', value="true") - if start_at: - # Seek to the starting position - window('emby_customplaylist.seektime', str(start_at)) + if start_at: + # Seek to the starting position + window('emby_customplaylist.seektime', str(start_at)) - for item_id in item_ids: + for item_id in item_ids: - log.info("Adding %s to playlist", item_id) - item = emby_db.getItem_byId(item_id) - try: - db_id = item[0] - media_type = item[4] + log.info("Adding %s to playlist", item_id) + item = emby_db.getItem_byId(item_id) + try: + db_id = item[0] + media_type = item[4] - except TypeError: - # Item is not found in our database, add item manually - log.info("Item was not found in the database, manually adding item") - item = self.emby.getItem(item_id) - self.add_to_xbmc_playlist(playlist, item) + except TypeError: + # Item is not found in our database, add item manually + log.info("Item was not found in the database, manually adding item") + item = self.emby.getItem(item_id) + self.add_to_xbmc_playlist(playlist, item) - else: # Add to playlist - self.add_to_playlist(db_id, media_type) + else: # Add to playlist + self.add_to_playlist(db_id, media_type) - if not started: - started = True - player.play(playlist) + if not started: + started = True + player.play(playlist) - self.verify_playlist() - cursor.close() + self.verify_playlist() def modify_playlist(self, item_ids): - conn = kodiSQL('emby') - cursor = conn.cursor() - emby_db = embydb.Embydb_Functions(cursor) + with DatabaseConn('emby') as conn: + with closing(conn.cursor()) as cursor: + emby_db = embydb.Embydb_Functions(cursor) - log.info("---*** ADD TO PLAYLIST ***---") - log.info("Items: %s", item_ids) + log.info("---*** ADD TO PLAYLIST ***---") + log.info("Items: %s", item_ids) - playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) + playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO) - for item_id in item_ids: + for item_id in item_ids: - log.info("Adding %s to playlist", item_id) - item = emby_db.getItem_byId(item_id) - try: - db_id = item[0] - media_type = item[4] + log.info("Adding %s to playlist", item_id) + item = emby_db.getItem_byId(item_id) + try: + db_id = item[0] + media_type = item[4] - except TypeError: - # Item is not found in our database, add item manually - item = self.emby.getItem(item_id) - self.add_to_xbmc_playlist(playlist, item) + except TypeError: + # Item is not found in our database, add item manually + item = self.emby.getItem(item_id) + self.add_to_xbmc_playlist(playlist, item) - else: # Add to playlist - self.add_to_playlist(db_id, media_type) + else: # Add to playlist + self.add_to_playlist(db_id, media_type) - self.verify_playlist() - cursor.close() + self.verify_playlist() + return playlist @classmethod