mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-12 08:16:06 -07:00
parent
9f1b7de623
commit
6e6de11aaa
3 changed files with 25 additions and 13 deletions
|
@ -548,6 +548,8 @@ def start():
|
|||
global _STARTED
|
||||
|
||||
if _INITIALIZED:
|
||||
logger.filter_usernames()
|
||||
|
||||
# Start refreshes on a separate thread
|
||||
threading.Thread(target=startup_refresh).start()
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ MAX_SIZE = 5000000 # 5 MB
|
|||
MAX_FILES = 5
|
||||
|
||||
_BLACKLIST_WORDS = set()
|
||||
_FILTER_USERNAMES = []
|
||||
|
||||
# Tautulli logger
|
||||
logger = logging.getLogger("tautulli")
|
||||
|
@ -71,6 +72,19 @@ def blacklist_config(config):
|
|||
_BLACKLIST_WORDS.update(blacklist)
|
||||
|
||||
|
||||
def filter_usernames(new_users=None):
|
||||
global _FILTER_USERNAMES
|
||||
|
||||
if new_users is None:
|
||||
new_users = [user['username'] for user in users.Users().get_users()]
|
||||
|
||||
for username in new_users:
|
||||
if username.lower() not in ('local', 'guest') and username not in _FILTER_USERNAMES:
|
||||
_FILTER_USERNAMES.append(username)
|
||||
|
||||
_FILTER_USERNAMES = sorted(_FILTER_USERNAMES, key=len, reverse=True)
|
||||
|
||||
|
||||
class NoThreadFilter(logging.Filter):
|
||||
"""
|
||||
Log filter for the current thread
|
||||
|
@ -126,18 +140,7 @@ class UsernameFilter(logging.Filter):
|
|||
if not plexpy._INITIALIZED:
|
||||
return True
|
||||
|
||||
items = sorted(
|
||||
users.Users().get_users(),
|
||||
key=lambda x: len(x['username']),
|
||||
reverse=True
|
||||
)
|
||||
|
||||
for item in items:
|
||||
username = item['username']
|
||||
|
||||
if username.lower() in ('local', 'guest'):
|
||||
continue
|
||||
|
||||
for username in _FILTER_USERNAMES:
|
||||
try:
|
||||
record.msg = self.replace(record.msg, username)
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ def refresh_users():
|
|||
|
||||
# Keep track of user_id to update is_active status
|
||||
user_ids = [0] # Local user always considered active
|
||||
new_users = []
|
||||
|
||||
for item in result:
|
||||
user_ids.append(helpers.cast_to_int(item['user_id']))
|
||||
|
@ -92,11 +93,17 @@ def refresh_users():
|
|||
if not item['username']:
|
||||
item['username'] = item['title']
|
||||
|
||||
monitor_db.upsert('users', key_dict=keys_dict, value_dict=item)
|
||||
result = monitor_db.upsert('users', key_dict=keys_dict, value_dict=item)
|
||||
|
||||
if result == 'insert':
|
||||
new_users.append(item['username'])
|
||||
|
||||
query = 'UPDATE users SET is_active = 0 WHERE user_id NOT IN ({})'.format(', '.join(['?'] * len(user_ids)))
|
||||
monitor_db.action(query=query, args=user_ids)
|
||||
|
||||
# Add new users to loger username filter
|
||||
logger.filter_usernames(new_users)
|
||||
|
||||
logger.info("Tautulli Users :: Users list refreshed.")
|
||||
return True
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue