From a238742b1b81d0e830f3856eefa45f9e348e9805 Mon Sep 17 00:00:00 2001
From: blacktwin <blacktwin@users.noreply.github.com>
Date: Tue, 2 Feb 2021 01:25:51 -0500
Subject: [PATCH] addressing #279 --date can now accept YYYY-MM-DD or X days

---
 utility/media_manager.py | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/utility/media_manager.py b/utility/media_manager.py
index 21e81d8..574f143 100644
--- a/utility/media_manager.py
+++ b/utility/media_manager.py
@@ -534,6 +534,8 @@ def action_show(items, selector, date, users=None):
         print("The following items were last played before {}".format(date))
     elif selector == 'watched':
         print("The following items were watched by {}".format(", ".join([user.name for user in users])))
+    elif selector == 'unwatched':
+        print("The following items were added before {} and are unwatched".format(date))
     else:
         print("The following items were added before {}".format(date))
     
@@ -630,12 +632,21 @@ if __name__ == '__main__':
     size_lst = []
     user_lst = []
     transcode_lst = []
+    date_format = ''
 
-    if opts.date:
-        date = time.mktime(time.strptime(opts.date, "%Y-%m-%d"))
-    else:
+    # Check for days or date format
+    if opts.date and opts.date.isdigit():
+        days = datetime.date.today() - datetime.timedelta(int(opts.date))
+        date = time.mktime(days.timetuple())
+    elif opts.date is None:
         date = None
-
+    else:
+        date = time.mktime(time.strptime(opts.date, "%Y-%m-%d"))
+    
+    if date:
+        days = (datetime.datetime.utcnow() - datetime.datetime.fromtimestamp(date))
+        date_format = time.strftime("%Y-%m-%d", time.localtime(date))
+        date_format = '{} ({} days)'.format(date_format, days.days)
     # Create a Tautulli instance
     tautulli_server = Tautulli(Connection(url=TAUTULLI_URL.rstrip("/"),
                                           apikey=TAUTULLI_APIKEY,
@@ -669,7 +680,7 @@ if __name__ == '__main__':
                 unwatched_lst += unwatched_work(sectionID=_library.key, date=date)
                 
         if opts.action == "show":
-            action_show(unwatched_lst, opts.select, opts.date)
+            action_show(unwatched_lst, opts.select, date_format)
             
         if opts.action == "delete":
             plex_deletion(unwatched_lst, libraries, opts.toggleDeletion)
@@ -702,7 +713,7 @@ if __name__ == '__main__':
         watched_by_all = list(set(watched_by_all))
         
         if opts.action == "show":
-            action_show(watched_by_all, opts.select, opts.date, user_lst)
+            action_show(watched_by_all, opts.select, date_format, user_lst)
         
         if opts.action == "delete":
             plex_deletion(watched_by_all, libraries, opts.toggleDeletion)
@@ -714,7 +725,7 @@ if __name__ == '__main__':
                 last_played_lst += last_played_work(sectionID=_library.key, date=date)
     
         if opts.action == "show":
-            action_show(last_played_lst, opts.select, opts.date)
+            action_show(last_played_lst, opts.select, date_format)
     
         if opts.action == "delete":
             plex_deletion(last_played_lst, libraries, opts.toggleDeletion)
@@ -755,4 +766,4 @@ if __name__ == '__main__':
                     transcode_lst += transcoded_lst
 
             if opts.action == "show":
-                action_show(transcode_lst, opts.select, opts.date)
\ No newline at end of file
+                action_show(transcode_lst, opts.select, date_format)
\ No newline at end of file