Merge branch 'develop'

This commit is contained in:
Justin Emter
2017-07-22 09:52:07 -07:00
3 changed files with 187 additions and 138 deletions

View File

@@ -406,6 +406,18 @@ class PseudoChannel():
schedule = self.db.get_schedule()
weekday_dict = {
"0" : ["mondays", "weekdays", "everyday"],
"1" : ["tuesdays", "weekdays", "everyday"],
"2" : ["wednesdays", "weekdays", "everyday"],
"3" : ["thursdays", "weekdays", "everyday"],
"4" : ["fridays", "weekdays", "everyday"],
"5" : ["saturdays", "weekends", "everyday"],
"6" : ["sundays", "weekends", "everyday"],
}
weekno = datetime.datetime.today().weekday()
schedule_advance_watcher = 0
for entry in schedule:
@@ -414,185 +426,194 @@ class PseudoChannel():
section = entry[9]
if section == "TV Shows":
for key, val in weekday_dict.iteritems():
if entry[3] == "random":
try:
next_episode = self.db.get_random_episode()
if str(entry[7]) in str(val) and int(weekno) == int(key):
else:
if section == "TV Shows":
next_episode = self.db.get_next_episode(entry[3])
if entry[3] == "random":
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
)
next_episode = self.db.get_random_episode()
self.MEDIA.append(episode)
else:
else:
next_episode = self.db.get_next_episode(entry[3])
print("Cannot find TV Show Episode, {} in the local db".format(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
)
#print(episode)
self.MEDIA.append(episode)
elif section == "Movies":
else:
if entry[3] == "random":
print("Cannot find TV Show Episode, {} in the local db".format(entry[3]))
the_movie = self.db.get_random_movie()
print("here")
#print(episode)
else:
elif section == "Movies":
the_movie = self.db.get_movie(entry[3])
if entry[3] == "random":
if the_movie != None:
the_movie = self.db.get_random_movie()
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
)
else:
#print(movie.natural_end_time)
the_movie = self.db.get_movie(entry[3])
self.MEDIA.append(movie)
if the_movie != None:
else:
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("Cannot find Movie, {} in the local db".format(entry[3]))
#print(movie.natural_end_time)
elif section == "Music":
self.MEDIA.append(movie)
the_music = self.db.get_music(entry[3])
else:
if the_music != None:
print("Cannot find Movie, {} in the local db".format(entry[3]))
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
)
elif section == "Music":
#print(music.natural_end_time)
the_music = self.db.get_music(entry[3])
self.MEDIA.append(music)
if the_music != None:
else:
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("Cannot find Music, {} in the local db".format(entry[3]))
#print(music.natural_end_time)
elif section == "Video":
self.MEDIA.append(music)
the_video = self.db.get_video(entry[3])
else:
if the_music != None:
print("Cannot find Music, {} in the local db".format(entry[3]))
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
)
elif section == "Video":
#print(music.natural_end_time)
the_video = self.db.get_video(entry[3])
self.MEDIA.append(video)
if the_music != None:
else:
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("Cannot find Video, {} in the local db".format(entry[3]))
#print(music.natural_end_time)
else:
self.MEDIA.append(video)
pass
else:
"""If we reached the end of the schedule we are ready to kick off the daily_schedule
"""
if schedule_advance_watcher >= len(schedule):
previous_episode = None
self.db.remove_all_daily_scheduled_items()
for entry in self.MEDIA:
#print entry.natural_end_time
if previous_episode != None:
natural_start_time = datetime.datetime.strptime(entry.natural_start_time, '%I:%M %p')
natural_end_time = entry.natural_end_time
if entry.is_strict_time.lower() == "true":
print "++++ Strict-time: {}".format(entry.title)
entry.end_time = self.get_end_time_from_duration(entry.start_time, entry.duration)
self.db.add_media_to_daily_schedule(entry)
previous_episode = entry
print("Cannot find Video, {} in the local db".format(entry[3]))
else:
print "++++ NOT strict-time: {}".format(entry.title)
pass
new_starttime = self.calculate_start_time(
previous_episode.end_time,
entry.natural_start_time,
previous_episode.time_shift,
previous_episode.overlap_max
)
"""If we reached the end of the schedule we are ready to kick off the daily_schedule
print "++++ New start time:", new_starttime
"""
if schedule_advance_watcher >= len(schedule):
entry.start_time = datetime.datetime.strptime(new_starttime, '%I:%M %p').strftime('%-I:%M %p')
previous_episode = None
entry.end_time = self.get_end_time_from_duration(entry.start_time, entry.duration)
self.db.remove_all_daily_scheduled_items()
self.db.add_media_to_daily_schedule(entry)
for entry in self.MEDIA:
previous_episode = entry
#print entry.natural_end_time
else:
if previous_episode != None:
self.db.add_media_to_daily_schedule(entry)
natural_start_time = datetime.datetime.strptime(entry.natural_start_time, '%I:%M %p')
previous_episode = entry
natural_end_time = entry.natural_end_time
if entry.is_strict_time.lower() == "true":
print "++++ Strict-time: {}".format(entry.title)
entry.end_time = self.get_end_time_from_duration(entry.start_time, entry.duration)
self.db.add_media_to_daily_schedule(entry)
previous_episode = entry
else:
print "++++ NOT strict-time: {}".format(entry.title)
new_starttime = self.calculate_start_time(
previous_episode.end_time,
entry.natural_start_time,
previous_episode.time_shift,
previous_episode.overlap_max
)
print "++++ New start time:", new_starttime
entry.start_time = datetime.datetime.strptime(new_starttime, '%I:%M %p').strftime('%-I:%M %p')
entry.end_time = self.get_end_time_from_duration(entry.start_time, entry.duration)
self.db.add_media_to_daily_schedule(entry)
previous_episode = entry
else:
self.db.add_media_to_daily_schedule(entry)
previous_episode = entry
except TypeError as e:
pass
if __name__ == '__main__':

View File

@@ -5,12 +5,42 @@
<wednesdays></wednesdays>
<thursdays></thursdays>
<fridays>
<time title="Looney Tunes" type="series" strict-time="true" time-shift="1" overlap-max="">12:25 PM</time>
<time title="Looney Tunes" type="series" strict-time="true" time-shift="1" overlap-max="">12:30 AM</time>
</fridays>
<saturdays></saturdays>
<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="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 &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:00 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 AM</time>
<time title="Garfield &#38; 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="random" type="movie" strict-time="false" time-shift="5" overlap-max="">11:06 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">2:00 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">4:06 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">6:06 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">8:06 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">10:06 PM</time>
<time title="random" type="movie" strict-time="false" time-shift="5" overlap-max="">11:06 PM</time>
<time title="talespin" type="series" strict-time="false" time-shift="5" overlap-max="">11:30 PM</time>
</saturdays>
<sundays></sundays>
<weekends></weekends>
<everyday></everyday>
<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>
</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>
@@ -19,9 +49,9 @@
<time title="Looney Tunes" type="series" strict-time="false" time-shift="1" overlap-max="">7:30 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:00 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:30 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">8:30 AM</time>
<time title="Garfield &#38; Friends" type="series" strict-time="false" time-shift="5" overlap-max="">9:00 AM</time>
<time title="Garfield &#38; 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>
@@ -53,10 +83,8 @@
<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="random" type="movie" strict-time="true" time-shift="5" overlap-max="">7:16 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="">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>
</weekdays>
</schedule>

View File

@@ -320,7 +320,7 @@ class PseudoDailyScheduleController():
timeB,
self.get_show_photo(
row[11],
row[3]
row[6] if row[11] == "TV Shows" else row[3]
),
datalist
)