X-Git-Url: http://git.pippins.net/embedvideo/.git/static/git-logo.png?a=blobdiff_plain;f=aired_today_playlist.py;fp=aired_today_playlist.py;h=c06e5e8ad644a6b90719fbe6cd07f72b628ed461;hb=aea4af9869a2086c5085afb34a1bd790940c8b7d;hp=0000000000000000000000000000000000000000;hpb=2675e038e4a9ef7bf5cee7ff32a77a6f31799965;p=videoscripts%2F.git diff --git a/aired_today_playlist.py b/aired_today_playlist.py new file mode 100755 index 0000000..c06e5e8 --- /dev/null +++ b/aired_today_playlist.py @@ -0,0 +1,77 @@ +""" +Create a Plex Playlist with what aired on this day in history (month-day), sort by oldest first. +If Playlist from yesterday exists delete and create today's. +If today's Playlist exists exit. +""" + +import operator +from plexapi.server import PlexServer +import requests +import datetime + +PLEX_URL = 'http://localhost:32400' +PLEX_TOKEN = 'xxxxx' + +LIBRARY_NAMES = ['Movies', 'TV Shows'] # Your library names + +today = datetime.datetime.now().date() + +TODAY_PLAY_TITLE = 'Aired Today {}-{}'.format(today.month, today.day) + +plex = PlexServer(PLEX_URL, PLEX_TOKEN) + +def remove_old(): + # Remove old Aired Today Playlists + for playlist in plex.playlists(): + if playlist.title.startswith('Aired Today') and playlist.title != TODAY_PLAY_TITLE: + playlist.delete() + print('Removing old Aired Today Playlists: {}'.format(playlist.title)) + elif playlist.title == TODAY_PLAY_TITLE: + print('{} already exists. No need to make again.'.format(TODAY_PLAY_TITLE)) + exit(0) + + +def get_all_content(library_name): + # Get all movies or episodes from LIBRARY_NAME + child_lst = [] + for library in library_name: + for child in plex.library.section(library).all(): + if child.type == 'movie': + child_lst += [child] + elif child.type == 'show': + child_lst += child.episodes() + else: + pass + return child_lst + + +def find_air_dates(content_lst): + # Find what aired with today's month-day + aired_lst = [] + for video in content_lst: + try: + ad_month = str(video.originallyAvailableAt.month) + ad_day = str(video.originallyAvailableAt.day) + + if ad_month == str(today.month) and ad_day == str(today.day): + aired_lst += [[video] + [str(video.originallyAvailableAt)]] + except Exception as e: + # print(e) + pass + + # Sort by original air date, oldest first + aired_lst = sorted(aired_lst, key=operator.itemgetter(1)) + + # Remove date used for sorting + play_lst = [x[0] for x in aired_lst] + return play_lst + + +remove_old() +play_lst = find_air_dates(get_all_content(LIBRARY_NAMES)) +# Create Playlist +if play_lst: + plex.createPlaylist(TODAY_PLAY_TITLE, play_lst) +else: + print('Found nothing aired on this day in history.') +