mirror of
https://github.com/FakeTV/pseudo-channel.git
synced 2025-12-28 14:13:13 +00:00
Alpha 1.0
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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'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's World" type="movie" strict-time="true" time-shift="5" overlap-max="">10:00 PM</time>
|
||||
</weekdays>
|
||||
</schedule>
|
||||
@@ -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):
|
||||
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user