mirror of
https://github.com/FakeTV/pseudo-channel.git
synced 2026-01-07 10:43:14 +00:00
Reworked the daily_schedule logic to properly wrap around the clock where needed. Seems to work but needs testing. If using time-shift the first episode of the day needs to be strict-time so time-shift has something to anchor to.
This commit is contained in:
246
PseudoChannel.py
246
PseudoChannel.py
@@ -231,7 +231,9 @@ class PseudoChannel():
|
||||
|
||||
overlap_max = time.attrib['overlap-max']
|
||||
|
||||
start_time_unix = self.translate_time(time.text)
|
||||
start_time_unix = datetime.datetime.strptime(
|
||||
self.translate_time(time.text),
|
||||
'%I:%M %p').strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
print "Adding: ", time.tag, section, time.text, time.attrib['title']
|
||||
|
||||
@@ -453,138 +455,132 @@ class PseudoChannel():
|
||||
|
||||
section = entry[9]
|
||||
|
||||
for key, val in weekday_dict.iteritems():
|
||||
for key, val in weekday_dict.iteritems():
|
||||
|
||||
try:
|
||||
if str(entry[7]) in str(val) and int(weekno) == int(key):
|
||||
|
||||
if str(entry[7]) in str(val) and int(weekno) == int(key):
|
||||
if section == "TV Shows":
|
||||
|
||||
if section == "TV Shows":
|
||||
if entry[3] == "random":
|
||||
|
||||
if entry[3] == "random":
|
||||
|
||||
next_episode = self.db.get_random_episode()
|
||||
|
||||
else:
|
||||
|
||||
next_episode = self.db.get_next_episode(entry[3])
|
||||
|
||||
if next_episode != None:
|
||||
|
||||
episode = Episode(
|
||||
section, # section_type
|
||||
next_episode[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], next_episode[4]), # natural_end_time
|
||||
next_episode[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12], # overlap_max
|
||||
entry[3], # show_series_title
|
||||
next_episode[5], # episode_number
|
||||
next_episode[6] # season_number
|
||||
)
|
||||
|
||||
self.MEDIA.append(episode)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find TV Show Episode, {} in the local db".format(entry[3]))
|
||||
|
||||
#print(episode)
|
||||
|
||||
elif section == "Movies":
|
||||
|
||||
if entry[3] == "random":
|
||||
|
||||
the_movie = self.db.get_random_movie()
|
||||
|
||||
else:
|
||||
|
||||
the_movie = self.db.get_movie(entry[3])
|
||||
|
||||
if the_movie != None:
|
||||
|
||||
movie = Movie(
|
||||
section, # section_type
|
||||
the_movie[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_movie[4]), # natural_end_time
|
||||
the_movie[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(movie.natural_end_time)
|
||||
|
||||
self.MEDIA.append(movie)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Movie, {} in the local db".format(entry[3]))
|
||||
|
||||
elif section == "Music":
|
||||
|
||||
the_music = self.db.get_music(entry[3])
|
||||
|
||||
if the_music != None:
|
||||
|
||||
music = Music(
|
||||
section, # section_type
|
||||
the_music[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_music[4]), # natural_end_time
|
||||
the_music[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(music.natural_end_time)
|
||||
|
||||
self.MEDIA.append(music)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Music, {} in the local db".format(entry[3]))
|
||||
|
||||
elif section == "Video":
|
||||
|
||||
the_video = self.db.get_video(entry[3])
|
||||
|
||||
if the_music != None:
|
||||
|
||||
video = Video(
|
||||
section, # section_type
|
||||
the_video[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_video[4]), # natural_end_time
|
||||
the_video[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(music.natural_end_time)
|
||||
|
||||
self.MEDIA.append(video)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Video, {} in the local db".format(entry[3]))
|
||||
next_episode = self.db.get_random_episode()
|
||||
|
||||
else:
|
||||
|
||||
pass
|
||||
next_episode = self.db.get_next_episode(entry[3])
|
||||
|
||||
except TypeError as e:
|
||||
|
||||
raise TypeError('Not sure why but got a TypeError')
|
||||
if next_episode != None:
|
||||
|
||||
episode = Episode(
|
||||
section, # section_type
|
||||
next_episode[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], next_episode[4]), # natural_end_time
|
||||
next_episode[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12], # overlap_max
|
||||
entry[3], # show_series_title
|
||||
next_episode[5], # episode_number
|
||||
next_episode[6] # season_number
|
||||
)
|
||||
|
||||
self.MEDIA.append(episode)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find TV Show Episode, {} in the local db".format(entry[3]))
|
||||
|
||||
#print(episode)
|
||||
|
||||
elif section == "Movies":
|
||||
|
||||
if entry[3] == "random":
|
||||
|
||||
the_movie = self.db.get_random_movie()
|
||||
|
||||
else:
|
||||
|
||||
the_movie = self.db.get_movie(entry[3])
|
||||
|
||||
if the_movie != None:
|
||||
|
||||
movie = Movie(
|
||||
section, # section_type
|
||||
the_movie[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_movie[4]), # natural_end_time
|
||||
the_movie[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(movie.natural_end_time)
|
||||
|
||||
self.MEDIA.append(movie)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Movie, {} in the local db".format(entry[3]))
|
||||
|
||||
elif section == "Music":
|
||||
|
||||
the_music = self.db.get_music(entry[3])
|
||||
|
||||
if the_music != None:
|
||||
|
||||
music = Music(
|
||||
section, # section_type
|
||||
the_music[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_music[4]), # natural_end_time
|
||||
the_music[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(music.natural_end_time)
|
||||
|
||||
self.MEDIA.append(music)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Music, {} in the local db".format(entry[3]))
|
||||
|
||||
elif section == "Video":
|
||||
|
||||
the_video = self.db.get_video(entry[3])
|
||||
|
||||
if the_music != None:
|
||||
|
||||
video = Video(
|
||||
section, # section_type
|
||||
the_video[3], # title
|
||||
entry[5], # natural_start_time
|
||||
self.get_end_time_from_duration(entry[5], the_video[4]), # natural_end_time
|
||||
the_video[4], # duration
|
||||
entry[7], # day_of_week
|
||||
entry[10], # is_strict_time
|
||||
entry[11], # time_shift
|
||||
entry[12] # overlap_max
|
||||
)
|
||||
|
||||
#print(music.natural_end_time)
|
||||
|
||||
self.MEDIA.append(video)
|
||||
|
||||
else:
|
||||
|
||||
print("Cannot find Video, {} in the local db".format(entry[3]))
|
||||
|
||||
else:
|
||||
|
||||
pass
|
||||
|
||||
"""If we reached the end of the scheduled items for today, add them to the daily schedule
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</fridays>
|
||||
<saturdays>
|
||||
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="true" time-shift="1" overlap-max="">6:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:30 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:30 AM</time>
|
||||
@@ -31,60 +31,65 @@
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">23:06</time>
|
||||
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">23:30</time>
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">00:00</time>
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">01:00</time>
|
||||
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">2:00 AM</time>
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">3:30 AM</time>
|
||||
|
||||
</saturdays>
|
||||
<sundays></sundays>
|
||||
<weekends></weekends>
|
||||
<everyday>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:30 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:30 AM</time>
|
||||
<time title="random" type="movie" strict-time="true" time-shift="5" overlap-max="">6:06 PM</time>
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">20:06</time>
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">22:06</time>
|
||||
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">23:06</time>
|
||||
</everyday>
|
||||
<weekdays>
|
||||
<default title="Seinfeld" type="series" ></default>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:00 AM</time>
|
||||
<weekdays>
|
||||
<default title="Seinfeld" type="series" ></default>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">6:30 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:00 AM</time>
|
||||
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:30 AM</time>
|
||||
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:00 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:30 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:00 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 AM</time>
|
||||
<time title="Garfield & Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:30 AM</time>
|
||||
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">10:00 AM</time>
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">10:30 AM</time>
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">10:00 AM</time>
|
||||
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">10:30 AM</time>
|
||||
|
||||
<time title="macgyver" type="series" strict-time="false" time-shift="5" overlap-max="">11:00 AM</time>
|
||||
<time title="macgyver" type="series" strict-time="false" time-shift="5" overlap-max="">11:00 AM</time>
|
||||
|
||||
<time title="boy meets world" type="series" strict-time="false" time-shift="5" overlap-max="">12:00 PM</time>
|
||||
<time title="boy meets world" type="series" strict-time="false" time-shift="5" overlap-max="">12:00 PM</time>
|
||||
|
||||
<time title="full house" type="series" strict-time="false" time-shift="5" overlap-max="">12:30 PM</time>
|
||||
<time title="full house" type="series" strict-time="false" time-shift="5" overlap-max="">1:00 PM</time>
|
||||
<time title="full house" type="series" strict-time="false" time-shift="5" overlap-max="">12:30 PM</time>
|
||||
<time title="full house" type="series" strict-time="false" time-shift="5" overlap-max="">1:00 PM</time>
|
||||
|
||||
<time title="the it crowd" type="series" strict-time="false" time-shift="5" overlap-max="">1:30 PM</time>
|
||||
<time title="the it crowd" type="series" strict-time="false" time-shift="5" overlap-max="">2:00 PM</time>
|
||||
<time title="the it crowd" type="series" strict-time="false" time-shift="5" overlap-max="">1:30 PM</time>
|
||||
<time title="the it crowd" type="series" strict-time="false" time-shift="5" overlap-max="">2:00 PM</time>
|
||||
|
||||
<time title="the office (us)" type="series" strict-time="false" time-shift="5" overlap-max="">2:30 PM</time>
|
||||
<time title="the office (us)" type="series" strict-time="false" time-shift="5" overlap-max="">3:00 PM</time>
|
||||
<time title="the office (us)" type="series" strict-time="false" time-shift="5" overlap-max="">2:30 PM</time>
|
||||
<time title="the office (us)" type="series" strict-time="false" time-shift="5" overlap-max="">3:00 PM</time>
|
||||
|
||||
<time title="friends" type="series" strict-time="false" time-shift="5" overlap-max="">3:30 PM</time>
|
||||
<time title="friends" type="series" strict-time="false" time-shift="5" overlap-max="">4:00 PM</time>
|
||||
<time title="friends" type="series" strict-time="false" time-shift="5" overlap-max="">3:30 PM</time>
|
||||
<time title="friends" type="series" strict-time="false" time-shift="5" overlap-max="">4:00 PM</time>
|
||||
|
||||
<time title="seinfeld" type="series" strict-time="false" time-shift="5" overlap-max="">4:30 PM</time>
|
||||
<time title="seinfeld" type="series" strict-time="false" time-shift="5" overlap-max="">5:00 PM</time>
|
||||
<time title="seinfeld" type="series" strict-time="false" time-shift="5" overlap-max="">4:30 PM</time>
|
||||
<time title="seinfeld" type="series" strict-time="false" time-shift="5" overlap-max="">5:00 PM</time>
|
||||
|
||||
<time title="Futurama" type="series" strict-time="false" time-shift="5" overlap-max="">5:30 PM</time>
|
||||
<time title="Futurama" type="series" strict-time="false" time-shift="5" overlap-max="">5:30 PM</time>
|
||||
|
||||
<time title="Saved by the Bell" type="series" strict-time="false" time-shift="5" overlap-max="">6:00 PM</time>
|
||||
<time title="Saved by the Bell" type="series" strict-time="false" time-shift="5" overlap-max="">6:30 PM</time>
|
||||
<time title="Saved by the Bell" type="series" strict-time="false" time-shift="5" overlap-max="">6:00 PM</time>
|
||||
<time title="Saved by the Bell" type="series" strict-time="false" time-shift="5" overlap-max="">6:30 PM</time>
|
||||
|
||||
<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="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="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>
|
||||
</weekdays>
|
||||
|
||||
<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>
|
||||
</weekdays>
|
||||
</schedule>
|
||||
|
||||
Reference in New Issue
Block a user