diff --git a/CHANGELOG.md b/CHANGELOG.md index 457cbf1c..75461af4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,15 @@ # Changelog -## v1.0 (2015-08-11) +## v1.1.2 (2015-08-16) -* First release +* Fix bug where user refresh would fail under certain circumstances. -## v1.0.1 (2015-08-13) +## v1.1.1 (2015-08-15) -* Allow SSL certificate check override for certain systems with bad CA stores. -* Fix typo on graphs page causing date selection to break on Safari. +* Added Most watched movie for home stats. Thanks @jroyal. +* Added TV show title to recently added text. Thanks @jroyal. +* Fix bug with buffer warnings where notification would trigger continuously after first trigger. +* Fix bug where custom avatar URL would get reset on every user refresh. ## v1.1.0 (2015-08-15) @@ -24,13 +26,11 @@ * Fix behaviour of close button on update popup, will now stay closed for an hour after clicking close. * Fix some styling niggles. -## v1.1.1 (2015-08-15) +## v1.0.1 (2015-08-13) -* Added Most watched movie for home stats. Thanks @jroyal. -* Added TV show title to recently added text. Thanks @jroyal. -* Fix bug with buffer warnings where notification would trigger continuously after first trigger. -* Fix bug where custom avatar URL would get reset on every user refresh. +* Allow SSL certificate check override for certain systems with bad CA stores. +* Fix typo on graphs page causing date selection to break on Safari. -## v1.1.2 (2015-08-16) +## v1.0 (2015-08-11) -* Fix bug where user refresh would fail under certain circumstances. \ No newline at end of file +* First release \ No newline at end of file diff --git a/README.md b/README.md index 4370d213..e6839cbd 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This project is based on code from Headphones (https://github.com/rembo10/headph * plexPy forum thread: https://forums.plex.tv/discussion/169591/plexpy-another-plex-monitoring-program -If you'd like to buy me a beer, hit the donate button below. +If you'd like to buy me a beer, hit the donate button below. All donations go to the project maintainer (primarily for the procurement of liquid refreshment). [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=G9HZK9BDJLKT6) @@ -34,6 +34,14 @@ If you'd like to buy me a beer, hit the donate button below. * stream type (direct, transcoded) * video type & resolution * audio type & channel count. + +* Top statistics on home page with configurable duration and measurement metric: + * Most watched TV + * Most popular TV + * Most watched Movie + * Most popular Movie + * Most active user + * Most active platform * Recently added media and how long ago it was added @@ -41,42 +49,49 @@ If you'd like to buy me a beer, hit the donate button below. * date * user * platform - * ip address (if enabled in plexWatch) + * ip address * title * stream information details * start time * paused duration length * stop time * duration length - * percentage completed + * watched progress + * show/hide columns + * delete mode - allows deletion of specific history items * Full user list with general information and comparison stats * Individual user information - - username and gravatar (if available) - - daily, weekly, monthly, all time stats for play count and duration length - - individual platform stats for each user - - public ip address history with last seen date and geo tag location - - recently watched content - - watching history - - synced items + * username and gravatar (if available) + * daily, weekly, monthly, all time stats for play count and duration length + * individual platform stats for each user + * public ip address history with last seen date and geo tag location + * recently watched content + * watching history + * synced items + * assign users custom friendly names within PlexPy + * assign users custom avatar URL within PlexPy + * disable history logging per user + * disable notifications per user + * option to purge all history per user. * Rich analytics presented using Highcharts graphing - - user-selectable time periods of 30, 90 or 365 days - - daily watch count and duration - - totals by day of week and hours of the day - - totals by top 10 platform - - totals by top 10 users - - detailed breakdown by transcode decision - - source and stream resolutions - - transcode decision counts by user and platform - - total monthly counts + * user-selectable time periods of 30, 90 or 365 days + * daily watch count and duration + * totals by day of week and hours of the day + * totals by top 10 platform + * totals by top 10 users + * detailed breakdown by transcode decision + * source and stream resolutions + * transcode decision counts by user and platform + * total monthly counts * Content information pages - - movies (includes watching history) - - tv shows (includes watching history) - - tv seasons - - tv episodes (includes watching history) + * movies (includes watching history) + * tv shows (includes watching history) + * tv seasons + * tv episodes (includes watching history) * Full sync list data on all users syncing items from your library diff --git a/data/interfaces/default/css/dataTables.colVis.css b/data/interfaces/default/css/dataTables.colVis.css index 7998bb4d..10d62649 100644 --- a/data/interfaces/default/css/dataTables.colVis.css +++ b/data/interfaces/default/css/dataTables.colVis.css @@ -75,6 +75,7 @@ ul.ColVis_collection { background-color: #444; overflow: hidden; z-index: 2002; + border-radius: 4px; } ul.ColVis_collection li { diff --git a/data/interfaces/default/css/plexpy.css b/data/interfaces/default/css/plexpy.css index da015f42..4d9bef17 100644 --- a/data/interfaces/default/css/plexpy.css +++ b/data/interfaces/default/css/plexpy.css @@ -253,13 +253,7 @@ fieldset[disabled] .btn-bright.active { .modal-body table { color: #999; } -.modal-body ul { - list-style: none; - -webkit-padding-start: 0px; - margin: 0; -} .modal-body li { - list-style: none; margin-top: 7px; margin-left: 4px; color: #aaa; @@ -270,6 +264,9 @@ fieldset[disabled] .btn-bright.active { .modal-body i { color: #F9AA03; } +.modal-body i.fa { + color: #fff; +} .modal-body strong { color: #F9AA03; } @@ -407,39 +404,31 @@ input[type="color"], } .poster { float: left; - min-height: 232px; - min-width: 155px; + min-height: 225px; + min-width: 150px; + margin-bottom: 8px; position: relative; } -.poster-face img { - bottom: 0; - overflow: hidden; +.poster-face { + background-position: center; + background-size: cover; height: 225px; - width: 153px; + width: 150px; + position: relative; + webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); +} +.cover-face { + background-position: center; + background-size: cover; + height: 150px; + width: 150px; position: absolute; - bottom: 5px; - left: 0; - border: 1px solid rgba(128, 128, 128, 0.3); -} -.poster-face img:hover { - webkit-box-shadow: 0 0 0 2px #e9a049; - -moz-box-shadow: 0 0 0 2px #e9a049; - box-shadow: 0 0 0 2px #e9a049; -} -.cover-face img { bottom: 0; - overflow: hidden; - height: 153px; - width: 153px; - border: 1px solid rgba(128, 128, 128, 0.3); - position: absolute; - bottom: 5px; - left: 0; -} -.cover-face img:hover { - webkit-box-shadow: 0 0 0 2px #e9a049; - -moz-box-shadow: 0 0 0 2px #e9a049; - box-shadow: 0 0 0 2px #e9a049; + webkit-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + -moz-box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); + box-shadow: 0 0 4px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.1); } .users-poster-face img { bottom: 0; @@ -630,6 +619,11 @@ input[type="color"], } .dashboard-recent-media-instance { } +.dashboard-recent-media-instance a:hover .poster-face { + webkit-box-shadow: inset 0 0 0 2px #e9a049; + -moz-box-shadow: inset 0 0 0 2px #e9a049; + box-shadow: inset 0 0 0 2px #e9a049; +} .dashboard-recent-media li { margin-right: 27px; position: relative; @@ -650,13 +644,14 @@ input[type="color"], font-size: 13px; margin: 0; line-height: 15px; - font-weight: bold; + font-weight: normal; width: 153px; white-space: nowrap; text-align: center; clear: both; } -.dashboard-recent-media-metacontainer text-muted { +.dashboard-recent-media-metacontainer .text-muted { + padding-top: 5px; text-overflow: ellipsis; overflow: hidden; position: relative; @@ -1160,7 +1155,7 @@ input[type="color"], position: relative; font-size: 13px; line-height: 15px; - font-weight: bold; + font-weight: normal; width: 140px; margin-left: 10px; } diff --git a/data/interfaces/default/edit_user.html b/data/interfaces/default/edit_user.html index 37aba8bb..cb1a5775 100644 --- a/data/interfaces/default/edit_user.html +++ b/data/interfaces/default/edit_user.html @@ -58,6 +58,12 @@ DOCUMENTATION :: END
Uncheck this if you do not want this keep any history on this user's activity.
+ % if data['user_id']: +DANGER ZONE! Click the purge button to remove all history logged for this user. This is permanent!
+plays
+ % else: + ${a['rows'][0]['total_duration'] | hd} + % endifplays
+ % else: + ${a['rows'][0]['total_duration'] | hd} + % endif +users
plays
+ % else: + ${a['rows'][0]['total_duration'] | hd} + % endifplays
+ % else: + ${a['rows'][0]['total_duration'] | hd} + % endifDelete | Time | User | Platform | @@ -182,7 +183,7 @@ DOCUMENTATION :: ENDPaused | Stopped | Duration | -Watched | +
---|
Delete | Time | User | Platform | @@ -172,7 +174,7 @@ from plexpy import helpersPaused | Stopped | Duration | -Watched | +
---|