# -*- coding: utf-8 -*- """ Created on Thu Jun 28 17:33:59 2018 @author: Matt """ import sqlite3 import os from shutil import copy2 from pseudo_config import plexLibraries as global_commercials channel_dir_increment_symbol = "_" # Step ONE: Global database update print("+++++ Doing global update from PLEX") os.system('sudo python PseudoChannel.py -u') base_dirA = os.path.dirname(os.path.abspath(__file__)) locations = "pseudo-channel"+channel_dir_increment_symbol channel_dirs = [ item for item in os.listdir('.') if os.path.isdir(os.path.join('.', item)) ] channel_dirs = list(filter(lambda x: x.startswith(locations),channel_dirs)) for channel_dir in channel_dirs: # Step TWO: Go to each folder, export the following information # - Show title, lastEpisodeTitle # - Movie title, lastPlayedDate os.chdir(channel_dir) channel_dirA = os.path.dirname(os.path.abspath(__file__)) db_path = os.path.join(channel_dirA, "pseudo-channel.db") print("+++++ Importing from " + db_path) try: conn = sqlite3.connect(db_path) table = conn.cursor() lastEpisode_export = table.execute('SELECT lastEpisodeTitle,title FROM shows').fetchall() lastEpisode_export = list(lastEpisode_export) lastMovie_export = table.execute('SELECT lastPlayedDate,title FROM movies').fetchall() lastMovie_export = list(lastMovie_export) conn.commit() conn.close() except: print("+++++ Database experiencing errors or hasn't been formed yet; creating fresh one") lastEpisode_export = [] lastMovie_export = [] # Step THREE: Delete the previous database, replace with the recently created global one print("+++++ Copying global update to " + db_path) copy2('../pseudo-channel.db','.') # Step FOUR: Import the previous information we exported previously print("+++++ Exporting to " + db_path) conn = sqlite3.connect(db_path) table = conn.cursor() for i in range(0,len(lastEpisode_export)): sql = "UPDATE shows SET lastEpisodeTitle=? WHERE title=?" table.execute(sql,lastEpisode_export[i]) for i in range(0,len(lastMovie_export)): sql = "UPDATE movies SET lastPlayedDate=? WHERE title=?" table.execute(sql,lastMovie_export[i]) # Step FIVE: Remove any media not in the directories set of commerical archives print("+++++ Trimming database at " + db_path) os.system('sudo python report_MediaFolders.py') local_commercials = open('Commercial_Libraries.txt').read().splitlines() local_movies = open('Movie_Libraries.txt').read().splitlines() local_tvs = open('TV_Libraries.txt').read().splitlines() commercial_removal = [x for x in global_commercials["Commercials"] if x not in local_commercials] movie_removal = [x for x in global_commercials["Movies"] if x not in local_movies] tv_removal = [x for x in global_commercials["TV Shows"] if x not in local_tvs] # print(db_path) # print(local_commercials) # print(global_commercials["Commercials"]) # print(commercial_removal) for commercial in commercial_removal: sql = "DELETE FROM commercials WHERE customSectionName=?" table.execute(sql,(commercial,)) for movie in movie_removal: sql = "DELETE FROM movies WHERE customSectionName=?" table.execute(sql,(movie,)) for tv in tv_removal: sql = "DELETE FROM shows WHERE customSectionName=?" table.execute(sql,(tv,)) sql = "DELETE FROM episodes WHERE customSectionName=?" table.execute(sql,(tv,)) conn.commit() conn.close() os.chdir('..') print("+++++ " + db_path + " complete! Going to next file") print("+++++ Global update COMPLETE")