diff --git a/fixadded.py b/fixadded.py new file mode 100755 index 0000000..8d4dc91 --- /dev/null +++ b/fixadded.py @@ -0,0 +1,58 @@ +#!/usr/bin/python + +import os +from datetime import datetime +from pathlib import Path +from plexapi.myplex import MyPlexAccount +from plexapi.server import PlexServer +from plexapi.media import Media +from pprint import pprint +import sys +import time + +try: + import apiconfig +except: + print("Error!") + print(" \"apiconfig.py\" seems to be missing!") + print(" Have you copied the default config to \"apiconfig.py\" and made appropriate edits?") + print() + sys.exit() + +fixing = False +if len(sys.argv) > 1: + if sys.argv[1] == "--fix": + fixing = True + +plex = PlexServer(apiconfig.url, apiconfig.apikey) + +wrong_count = 0 +print("Looking for videos that have added dates not matching ctime...") +videos = plex.library.section(apiconfig.libraryname).all() +nowstamp = time.time() +cutoff = 86400 * 10 +for video in videos: + file = None + for part in video.iterParts(): + if file == None: file = part.file + if not os.path.isfile(file): + print(f"*** Missing: {video.title} ({file})") + continue + path = Path(file) + stat = path.stat() + filestamp = stat.st_mtime + #if (nowstamp - addedstamp) < cutoff: + # print(f"{video.title}: {addedstamp}") + filedate = datetime.fromtimestamp(int(filestamp)) + addeddate = video.addedAt + if filedate.date() != addeddate.date(): + wrong_count += 1 + print(f"{video.title}: ctime={filedate.date()} added={addeddate.date()}") + if fixing: + video.editAddedAt(filedate, locked=True) + + +print(f"Total Files With Wrong Added: {wrong_count}") +if not fixing and (wrong_count > 0): + print("Fix these files by using the '--fix' parameter") +print()