diff --git a/API.md b/API.md index 95fae901..e04e47c2 100644 --- a/API.md +++ b/API.md @@ -1271,7 +1271,7 @@ Returns: "sync_id": "11617019", "title": "Deadpool", "total_size": "0", - "user_id": "328871", + "user_id": "696969", "username": "DrukenDwarfMan", "video_quality": "60" }, @@ -1286,7 +1286,7 @@ Get the data on PlexPy users IP table. ``` Required parameters: - user_id (str): The id of the Plex user + user_id (str): The id of the Plex user Optional parameters: order_column (str): "last_seen", "ip_address", "platform", "player", @@ -1317,7 +1317,7 @@ Returns: "rating_key": 153037, "thumb": "/library/metadata/153036/thumb/1462175062", "transcode_decision": "transcode", - "user_id": 328871, + "user_id": 133788, "year": 2016 }, {...}, @@ -1327,6 +1327,45 @@ Returns: ``` +### get_user_logins +Get the data on PlexPy user login table. + +``` +Required parameters: + user_id (str): The id of the Plex user + +Optional parameters: + order_column (str): "date", "time", "ip_address", "host", "os", "browser" + order_dir (str): "desc" or "asc" + start (int): Row to start from, 0 + length (int): Number of items to return, 25 + search (str): A string to search for, "xxx.xxx.xxx.xxx" + +Returns: + json: + {"draw": 1, + "recordsTotal": 2344, + "recordsFiltered": 10, + "data": + [{"browser": "Safari 7.0.3", + "date": 1462591869, + "friendly_name": "Jon Snow", + "host": "http://plexpy.castleblack.com", + "ip_address": "xxx.xxx.xxx.xxx", + "os": "Mac OS X", + "time": 1462591869, + "user": "LordCommanderSnow", + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A", + "user_group": "guest", + "user_id": 133788 + }, + {...}, + {...} + ] + } +``` + + ### get_user_names Get a list of all user and user ids. @@ -1369,7 +1408,7 @@ Returns: "is_home_user": "1", "is_restricted": "0", "thumb": "https://plex.tv/users/k10w42309cynaopq/avatar", - "user_id": "328871", + "user_id": "133788", "username": "Jon Snow" }, {...}, @@ -1418,7 +1457,7 @@ Returns: "rating_key": 153037, "thumb": "/library/metadata/153036/thumb/1462175062", "transcode_decision": "transcode", - "user_id": 328871, + "user_id": 133788, "user_thumb": "https://plex.tv/users/568gwwoib5t98a3a/avatar", "year": 2016 }, diff --git a/data/interfaces/default/js/tables/login_table.js b/data/interfaces/default/js/tables/login_table.js index 2868cac9..f65dce30 100644 --- a/data/interfaces/default/js/tables/login_table.js +++ b/data/interfaces/default/js/tables/login_table.js @@ -20,7 +20,7 @@ login_table_options = { "columnDefs": [ { "targets": [0], - "data": "timestamp", + "data": "date", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { date = moment(cellData, "X").format(date_format); @@ -35,7 +35,7 @@ login_table_options = { }, { "targets": [1], - "data": "timestamp", + "data": "time", "createdCell": function (td, cellData, rowData, row, col) { if (cellData !== '') { time = moment(cellData, "X").format(time_format); diff --git a/plexpy/users.py b/plexpy/users.py index ce0a931a..26efebc6 100644 --- a/plexpy/users.py +++ b/plexpy/users.py @@ -714,7 +714,8 @@ class Users(object): 'user_login.ip_address', 'user_login.host', 'user_login.user_agent', - 'user_login.timestamp', + 'user_login.timestamp AS date', + 'user_login.timestamp AS time', 'users.friendly_name' ] @@ -745,7 +746,8 @@ class Users(object): 'user_agent': item['user_agent'], 'os': os, 'browser': browser, - 'timestamp': item['timestamp'], + 'date': item['date'], + 'time': item['time'], 'friendly_name': item['friendly_name'] } diff --git a/plexpy/webserve.py b/plexpy/webserve.py index f5c104bc..6244fcfb 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -933,7 +933,7 @@ class WebInterface(object): "rating_key": 153037, "thumb": "/library/metadata/153036/thumb/1462175062", "transcode_decision": "transcode", - "user_id": 328871, + "user_id": 133788, "user_thumb": "https://plex.tv/users/568gwwoib5t98a3a/avatar", "year": 2016 }, @@ -1108,7 +1108,7 @@ class WebInterface(object): ``` Required parameters: - user_id (str): The id of the Plex user + user_id (str): The id of the Plex user Optional parameters: order_column (str): "last_seen", "ip_address", "platform", "player", @@ -1139,7 +1139,7 @@ class WebInterface(object): "rating_key": 153037, "thumb": "/library/metadata/153036/thumb/1462175062", "transcode_decision": "transcode", - "user_id": 328871, + "user_id": 133788, "year": 2016 }, {...}, @@ -1168,13 +1168,51 @@ class WebInterface(object): @cherrypy.expose @cherrypy.tools.json_out() @requireAuth() + @addtoapi() def get_user_logins(self, user_id=None, **kwargs): - """ Get the data on PlexPy user login table. """ + """ Get the data on PlexPy user login table. + + ``` + Required parameters: + user_id (str): The id of the Plex user + + Optional parameters: + order_column (str): "date", "time", "ip_address", "host", "os", "browser" + order_dir (str): "desc" or "asc" + start (int): Row to start from, 0 + length (int): Number of items to return, 25 + search (str): A string to search for, "xxx.xxx.xxx.xxx" + + Returns: + json: + {"draw": 1, + "recordsTotal": 2344, + "recordsFiltered": 10, + "data": + [{"browser": "Safari 7.0.3", + "date": 1462591869, + "friendly_name": "Jon Snow", + "host": "http://plexpy.castleblack.com", + "ip_address": "xxx.xxx.xxx.xxx", + "os": "Mac OS X", + "time": 1462591869, + "user": "LordCommanderSnow", + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A", + "user_group": "guest", + "user_id": 133788 + }, + {...}, + {...} + ] + } + ``` + """ # Check if datatables json_data was received. # If not, then build the minimal amount of json data for a query if not kwargs.get('json_data'): # TODO: Find some one way to automatically get the columns - dt_columns = [("time", True, False), + dt_columns = [("date", True, False), + ("time", True, False), ("ip_address", True, True), ("host", True, True), ("os", True, True), @@ -3635,7 +3673,7 @@ class WebInterface(object): "is_home_user": "1", "is_restricted": "0", "thumb": "https://plex.tv/users/k10w42309cynaopq/avatar", - "user_id": "328871", + "user_id": "133788", "username": "Jon Snow" }, {...}, @@ -3685,7 +3723,7 @@ class WebInterface(object): "sync_id": "11617019", "title": "Deadpool", "total_size": "0", - "user_id": "328871", + "user_id": "696969", "username": "DrukenDwarfMan", "video_quality": "60" },