def get_user_friendly_name(self, user=None, user_id=None): if user_id: monitor_db = database.MonitorDatabase() query = 'select username, ' \ '(CASE WHEN friendly_name IS NULL THEN username ELSE friendly_name END) as friendly_name,' \ 'do_notify, keep_history, custom_avatar_url as thumb ' \ 'FROM users WHERE user_id = ?' result = monitor_db.select(query, args=[user_id]) if result: user_detail = { 'user_id': user_id, 'user': result[0]['username'], 'friendly_name': result[0]['friendly_name'], 'thumb': result[0]['thumb'], 'do_notify': helpers.checked(result[0]['do_notify']), 'keep_history': helpers.checked(result[0]['keep_history']) } return user_detail else: user_detail = { 'user_id': user_id, 'user': '', 'friendly_name': '', 'do_notify': '', 'thumb': '', 'keep_history': '' } return user_detail elif user: monitor_db = database.MonitorDatabase() query = 'select user_id, ' \ '(CASE WHEN friendly_name IS NULL THEN username ELSE friendly_name END) as friendly_name,' \ 'do_notify, keep_history, custom_avatar_url as thumb ' \ 'FROM users WHERE username = ?' result = monitor_db.select(query, args=[user]) if result: user_detail = { 'user_id': result[0]['user_id'], 'user': user, 'friendly_name': result[0]['friendly_name'], 'thumb': result[0]['thumb'], 'do_notify': helpers.checked(result[0]['do_notify']), 'keep_history': helpers.checked(result[0]['keep_history']) } return user_detail else: user_detail = { 'user_id': None, 'user': user, 'friendly_name': '', 'do_notify': '', 'thumb': '', 'keep_history': '' } return user_detail return None
def get_user_friendly_name(self, user=None, user_id=None): if user_id: monitor_db = database.MonitorDatabase() query = 'select username, ' \ '(CASE WHEN friendly_name IS NULL THEN username ELSE friendly_name END) as friendly_name,' \ 'do_notify, keep_history, custom_avatar_url as thumb ' \ 'FROM users WHERE user_id = ?' result = monitor_db.select(query, args=[user_id]) if result: user_detail = {'user_id': user_id, 'user': result[0]['username'], 'friendly_name': result[0]['friendly_name'], 'thumb': result[0]['thumb'], 'do_notify': helpers.checked(result[0]['do_notify']), 'keep_history': helpers.checked(result[0]['keep_history']) } return user_detail else: user_detail = {'user_id': user_id, 'user': '', 'friendly_name': '', 'do_notify': '', 'thumb': '', 'keep_history': ''} return user_detail elif user: monitor_db = database.MonitorDatabase() query = 'select user_id, ' \ '(CASE WHEN friendly_name IS NULL THEN username ELSE friendly_name END) as friendly_name,' \ 'do_notify, keep_history, custom_avatar_url as thumb ' \ 'FROM users WHERE username = ?' result = monitor_db.select(query, args=[user]) if result: user_detail = {'user_id': result[0]['user_id'], 'user': user, 'friendly_name': result[0]['friendly_name'], 'thumb': result[0]['thumb'], 'do_notify': helpers.checked(result[0]['do_notify']), 'keep_history': helpers.checked(result[0]['keep_history'])} return user_detail else: user_detail = {'user_id': None, 'user': user, 'friendly_name': '', 'do_notify': '', 'thumb': '', 'keep_history': ''} return user_detail return None
def get_user_list(self, kwargs=None): data_tables = datatables.DataTables() custom_where = ['users.deleted_user', 0] columns = [ 'session_history.id', 'users.user_id as user_id', 'users.custom_avatar_url as user_thumb', '(case when users.friendly_name is null then users.username else \ users.friendly_name end) as friendly_name', 'MAX(session_history.started) as last_seen', 'session_history.ip_address as ip_address', 'COUNT(session_history.id) as plays', 'session_history.platform as platform', 'session_history.player as player', 'session_history_metadata.full_title as last_watched', 'session_history_metadata.thumb', 'session_history_metadata.parent_thumb', 'session_history_metadata.grandparent_thumb', 'session_history_metadata.media_type', 'session_history.rating_key as rating_key', 'session_history_media_info.video_decision', 'users.username as user', 'users.do_notify as do_notify', 'users.keep_history as keep_history' ] try: query = data_tables.ssp_query( table_name='users', columns=columns, custom_where=[custom_where], group_by=['users.user_id'], join_types=[ 'LEFT OUTER JOIN', 'LEFT OUTER JOIN', 'LEFT OUTER JOIN' ], join_tables=[ 'session_history', 'session_history_metadata', 'session_history_media_info' ], join_evals=[ ['session_history.user_id', 'users.user_id'], ['session_history.id', 'session_history_metadata.id'], ['session_history.id', 'session_history_media_info.id'] ], kwargs=kwargs) except: logger.warn("Unable to execute database query.") return { 'recordsFiltered': 0, 'recordsTotal': 0, 'draw': 0, 'data': 'null', 'error': 'Unable to execute database query.' } users = query['result'] rows = [] for item in users: if item["media_type"] == 'episode' and item["parent_thumb"]: thumb = item["parent_thumb"] elif item["media_type"] == 'episode': thumb = item["grandparent_thumb"] else: thumb = item["thumb"] if not item['user_thumb'] or item['user_thumb'] == '': user_thumb = common.DEFAULT_USER_THUMB else: user_thumb = item['user_thumb'] # Rename Mystery platform names platform = common.PLATFORM_NAME_OVERRIDES.get( item["platform"], item["platform"]) row = { "id": item['id'], "plays": item['plays'], "last_seen": item['last_seen'], "friendly_name": item['friendly_name'], "ip_address": item['ip_address'], "platform": platform, "player": item["player"], "last_watched": item['last_watched'], "thumb": thumb, "media_type": item['media_type'], "rating_key": item['rating_key'], "video_decision": item['video_decision'], "user_thumb": user_thumb, "user": item["user"], "user_id": item['user_id'], "do_notify": helpers.checked(item['do_notify']), "keep_history": helpers.checked(item['keep_history']) } rows.append(row) dict = { 'recordsFiltered': query['filteredCount'], 'recordsTotal': query['totalCount'], 'data': rows, 'draw': query['draw'] } return dict
def get_user_list(self, kwargs=None): data_tables = datatables.DataTables() custom_where = ['users.deleted_user', 0] columns = ['session_history.id', 'users.user_id as user_id', 'users.custom_avatar_url as user_thumb', '(case when users.friendly_name is null then users.username else \ users.friendly_name end) as friendly_name', 'MAX(session_history.started) as last_seen', 'session_history.ip_address as ip_address', 'COUNT(session_history.id) as plays', 'session_history.platform as platform', 'session_history.player as player', 'session_history_metadata.full_title as last_watched', 'session_history_metadata.thumb', 'session_history_metadata.parent_thumb', 'session_history_metadata.grandparent_thumb', 'session_history_metadata.media_type', 'session_history.rating_key as rating_key', 'session_history_media_info.video_decision', 'users.username as user', 'users.do_notify as do_notify', 'users.keep_history as keep_history' ] try: query = data_tables.ssp_query(table_name='users', columns=columns, custom_where=[custom_where], group_by=['users.user_id'], join_types=['LEFT OUTER JOIN', 'LEFT OUTER JOIN', 'LEFT OUTER JOIN'], join_tables=['session_history', 'session_history_metadata', 'session_history_media_info'], join_evals=[['session_history.user_id', 'users.user_id'], ['session_history.id', 'session_history_metadata.id'], ['session_history.id', 'session_history_media_info.id']], kwargs=kwargs) except: logger.warn("Unable to execute database query.") return {'recordsFiltered': 0, 'recordsTotal': 0, 'draw': 0, 'data': 'null', 'error': 'Unable to execute database query.'} users = query['result'] rows = [] for item in users: if item["media_type"] == 'episode' and item["parent_thumb"]: thumb = item["parent_thumb"] elif item["media_type"] == 'episode': thumb = item["grandparent_thumb"] else: thumb = item["thumb"] if not item['user_thumb'] or item['user_thumb'] == '': user_thumb = common.DEFAULT_USER_THUMB else: user_thumb = item['user_thumb'] # Rename Mystery platform names platform = common.PLATFORM_NAME_OVERRIDES.get(item["platform"], item["platform"]) row = {"id": item['id'], "plays": item['plays'], "last_seen": item['last_seen'], "friendly_name": item['friendly_name'], "ip_address": item['ip_address'], "platform": platform, "player": item["player"], "last_watched": item['last_watched'], "thumb": thumb, "media_type": item['media_type'], "rating_key": item['rating_key'], "video_decision": item['video_decision'], "user_thumb": user_thumb, "user": item["user"], "user_id": item['user_id'], "do_notify": helpers.checked(item['do_notify']), "keep_history": helpers.checked(item['keep_history']) } rows.append(row) dict = {'recordsFiltered': query['filteredCount'], 'recordsTotal': query['totalCount'], 'data': rows, 'draw': query['draw'] } return dict