mirror of
https://github.com/FakeTV/pseudo-channel.git
synced 2025-12-10 05:13:44 +00:00
Directory Revamp
Before making changes to the update-channels-from-git.sh file, I wanted to have everything stored in such a way that it made logical sense where it went. Anything that goes to the root folder is in "main-dir", channel specific files are in "channel-dir", and the files for both sections are in "both-dir". These directories will eventually be referenced in the new version of "update-channels-from-git.sh".
This commit is contained in:
107
main-dir/Global_DatabaseUpdate.py
Normal file
107
main-dir/Global_DatabaseUpdate.py
Normal file
@@ -0,0 +1,107 @@
|
||||
# -*- 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")
|
||||
Reference in New Issue
Block a user