def change_watched_episode(tvdb_id, season, episode, playCount=1, name=''): """ Change the watched state of one episode in the WL database Args: tvdb_id: ID of the tv show in tvdb. Format: Integer season: Number of the season (Integer) within the show episode: Number of the episode within the season (Integer) playCount: Unsigned Integer name: Name of the Episode (optional) Returns: Error Code (0=No error) """ if not name: name = 'tvdb%d S%02dE%02d' % (tvdb_id, season, episode) if playCount == 0: lastPlayed = 0 else: lastPlayed = int(time.time()) row_xbmc = [tvdb_id, season, episode, lastPlayed, playCount, name, 0] # 0imdbnumber, 1empty, 2empty, 3lastPlayed, 4playCount, 5title, 6empty, 7movieid saveanyway = True commit = True lastChange = lastPlayed with WatchedList(True) as WL: if WL.get_watched_wl(1): # Read the WL database utils.showNotification(utils.getString(32102), utils.getString(32602), xbmc.LOGERROR) return 1 WL.wl_update_media('episode', row_xbmc, saveanyway, commit, lastChange) return 0
def change_watched_episodes(tvdb_id, seasons, episodes, playCount, names): """ Change the watched state of multiple episodes of one tv show in the WL database Args: tvdb_id: ID of the tv show in tvdb. Format: Integer seasons: Number of the seasons for the affected episodes (list of Integers) episodes: Number of the episodes within the seasons (list of Integers, same length as seasons list). playCount: Unsigned Integer names: Names of the Episodes (list of strings, same length as lists above) Returns: Error Code (0=No error) """ if playCount == 0: lastPlayed = 0 else: lastPlayed = int(time.time()) with WatchedList(True) as WL: if WL.get_watched_wl(1): # Read the WL database utils.showNotification(utils.getString(32102), utils.getString(32602), xbmc.LOGERROR) return 1 for i in range(len(seasons)): row_xbmc_i = [tvdb_id, seasons[i], episodes[i], lastPlayed, playCount, names[i], 0] # 0imdbnumber, 1empty, 2empty, 3lastPlayed, 4playCount, 5title, 6empty, 7movieid saveanyway = True if i == len(seasons) - 1: commit = True # Only commit the last row to reduce file access to the database else: commit = False lastChange = lastPlayed WL.wl_update_media('episode', row_xbmc_i, saveanyway, commit, lastChange) return 0
def change_watched_movie(imdb_id, playCount=1, name=''): """ Change the watched state of one movie in the WL database Args: imdb_id: ID of the movie in the imdb. Format: Integer, numbers after 'tt0012345' playCount: Unsigned Integer name: Title of the movie (optional) Returns: Error Code (0=No error) """ if not name: name = 'tt%d' % imdb_id if playCount == 0: lastPlayed = 0 else: lastPlayed = int(time.time()) row_xbmc = [imdb_id, 0, 0, lastPlayed, playCount, name, 0] # 0imdbnumber, 1empty, 2empty, 3lastPlayed, 4playCount, 5title, 6empty, 7movieid saveanyway = True commit = True lastChange = lastPlayed with WatchedList(True) as WL: if WL.get_watched_wl(1): # Read the WL database utils.showNotification(utils.getString(32102), utils.getString(32602), xbmc.LOGERROR) return 1 WL.wl_update_media('movie', row_xbmc, saveanyway, commit, lastChange) return 0
# Append pydev remote debugger if __remotedebug__: utils.log("Initialize remote debugging.") # Make pydev debugger works for auto reload. try: import pydevd pydevd.settrace('localhost', port=60678, stdoutToServer=True, stderrToServer=True) except ImportError: sys.stderr.write( "Error: " + "You must add org.python.pydev.debug.pysrc to your PYTHONPATH.") utils.showNotification('WatchedList Error', 'remote debug could not be imported.', xbmc.LOGERROR) sys.exit(1) except BaseException: utils.showNotification( 'WatchedList Error', 'remote debug in pydev is activated, but remote server not responding.', xbmc.LOGERROR) sys.exit(1) # Run the program if xbmc.Monitor().waitForAbort( 1.5 ): # wait 1.5 seconds to prevent import-errors. TODO: Is this workaround still necessary? sys.exit(0) # Abort was requested while waiting. utils.log("WatchedList Database Service starting...")