Alpha 1.0

This commit is contained in:
Justin Emter
2017-07-20 18:33:01 -07:00
parent 5b421574d9
commit 1450c0b94f
4 changed files with 43 additions and 17 deletions

View File

@@ -6,6 +6,7 @@ from src import Commercial
from src import Episode
from src import Music
from src import Video
from src import PseudoDailyScheduleController
from pseudo_config import *
from plexapi.server import PlexServer
@@ -17,6 +18,8 @@ import itertools
from xml.dom import minidom
import xml.etree.ElementTree as ET
from time import sleep
class PseudoChannel():
PLEX = PlexServer(baseurl, token)
@@ -27,6 +30,8 @@ class PseudoChannel():
self.db = PseudoChannelDatabase("pseudo-channel.db")
self.controller = PseudoDailyScheduleController()
"""Database functions.
update_db(): Grab the media from the Plex DB and store it in the local pseudo-channel.db.
@@ -595,9 +600,19 @@ if __name__ == '__main__':
#pseudo_channel.update_db()
pseudo_channel.update_schedule()
#pseudo_channel.update_schedule()
pseudo_channel.generate_daily_schedule()
#pseudo_channel.generate_daily_schedule()
try:
print "++++ Running TV Controller"
while True:
pseudo_channel.controller.tv_controller(pseudo_channel.db.get_daily_schedule())
t = datetime.datetime.utcnow()
sleeptime = 60 - (t.second + t.microsecond/1000000.0)
sleep(sleeptime)
except KeyboardInterrupt, e:
pass

View File

@@ -51,12 +51,12 @@
<time title="new girl" type="series" strict-time="false" time-shift="5" overlap-max="">7:00 PM</time>
<time title="new girl" type="series" strict-time="false" time-shift="5" overlap-max="">7:30 PM</time>
<time title="Wayne&apos;s World" type="movie" strict-time="true" time-shift="5" overlap-max="">7:00 PM</time>
<time title="random" type="movie" strict-time="true" time-shift="5" overlap-max="">7:00 PM</time>
<time title="the trip" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 PM</time>
<time title="the trip" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 PM</time>
<time title="the wire" type="series" strict-time="false" time-shift="5" overlap-max="">9:30 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">10:00 PM</time>
<time title="Wayne&apos;s World" type="movie" strict-time="true" time-shift="5" overlap-max="">10:00 PM</time>
</weekdays>
</schedule>

View File

@@ -286,7 +286,11 @@ class PseudoChannelDatabase():
def get_daily_schedule(self):
return None
self.cursor.execute("SELECT * FROM daily_schedule ORDER BY datetime(startTime) ASC")
datalist = list(self.cursor.fetchall())
return datalist
def get_movie(self, title):

View File

@@ -18,6 +18,8 @@ class PseudoDailyScheduleController():
TOKEN = token
PLEX_CLIENTS = plexClients
def __init__(self):
self.my_logger = logging.getLogger('MyLogger')
@@ -55,7 +57,7 @@ class PseudoDailyScheduleController():
* @return string: the generated html content
*
'''
def get_html_from_daily_schedule(self, currentTime, bgImageURL):
def get_html_from_daily_schedule(self, currentTime, bgImageURL, datalist):
now = datetime.now()
@@ -110,10 +112,6 @@ class PseudoDailyScheduleController():
with tag('th'):
text('Start Time')
c.execute("SELECT * FROM daily_schedule ORDER BY datetime(startTimeUnix) ASC")
datalist = list(c.fetchall())
numberIncrease = 0
for row in datalist:
@@ -204,7 +202,7 @@ class PseudoDailyScheduleController():
'''
def play_media(self, mediaType, mediaParentTitle, mediaTitle):
mediaItems = plex.library.section(mediaType).get(mediaParentTitle).episodes()
mediaItems = self.PLEX.library.section(mediaType).get(mediaParentTitle).episodes()
for item in mediaItems:
@@ -212,9 +210,9 @@ class PseudoDailyScheduleController():
if item.title == mediaTitle:
for client in plexClients:
for client in self.PLEX_CLIENTS:
clientItem = plex.client(client)
clientItem = self.PLEX.client(client)
clientItem.playMedia(item)
@@ -238,6 +236,7 @@ class PseudoDailyScheduleController():
"""
for row in datalist:
endTime = datetime.strptime(row[9], '%Y-%m-%d %H:%M:%S.%f')
if currentTime.hour == endTime.hour:
@@ -246,7 +245,7 @@ class PseudoDailyScheduleController():
print("Ok end time found")
self.write_schedule_to_file(self.get_html_from_daily_schedule(None, None))
self.write_schedule_to_file(self.get_html_from_daily_schedule(None, None, datalist))
break
'''
@@ -266,7 +265,7 @@ class PseudoDailyScheduleController():
datalist = list(c.fetchall())"""
my_logger.debug('TV Controller')
self.my_logger.debug('TV Controller')
for row in datalist:
@@ -281,7 +280,15 @@ class PseudoDailyScheduleController():
self.play_media("TV Shows", row[6], row[3])
self.write_schedule_to_file(self.get_html_from_daily_schedule(timeB, self.get_show_photo(row[11], row[6])))
self.write_schedule_to_file(
self.get_html_from_daily_schedule(
timeB,
self.get_show_photo(
row[11],
row[6]),
datalist
)
)
self.my_logger.debug('Trying to play: ' + row[3])
@@ -291,4 +298,4 @@ class PseudoDailyScheduleController():
if datalistLengthMonitor >= len(datalist):
self.check_for_end_time()
self.check_for_end_time(datalist)