From 96025c839d7b67d831cca15f0bb2dfc0ca6aa0e3 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Thu, 27 Jan 2022 10:52:07 -0800 Subject: [PATCH] Separate out plex.direct IP address log filter --- plexpy/logger.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/plexpy/logger.py b/plexpy/logger.py index e09ad52d..53f18662 100644 --- a/plexpy/logger.py +++ b/plexpy/logger.py @@ -191,15 +191,31 @@ class PublicIPFilter(RegexFilter): Log filter for public IP addresses """ REGEX = re.compile( - r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.-]){3}' + r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[.]){3}' r'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' r'(?!\d*-[a-z0-9]{6})' ) + def replace(self, text, ip): + if helpers.is_public_ip(ip): + return text.replace(ip, '.'.join(['***'] * 4)) + return text + + +class PlexDirectIPFilter(RegexFilter): + """ + Log filter for IP addresses in plex.direct URL + """ + REGEX = re.compile( + r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[-]){3}' + r'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' + r'(?!\d*-[a-z0-9]{6})' + r'(?=\.[a-z0-9]+\.plex\.direct)' + ) + def replace(self, text, ip): if helpers.is_public_ip(ip.replace('-', '.')): - partition = '-' if '-' in ip else '.' - return text.replace(ip, partition.join(['***'] * 4)) + return text.replace(ip, '-'.join(['***'] * 4)) return text @@ -321,6 +337,7 @@ def initLogger(console=False, log_dir=False, verbose=False): handler.addFilter(UsernameFilter()) handler.addFilter(BlacklistFilter()) handler.addFilter(PublicIPFilter()) + handler.addFilter(PlexDirectIPFilter()) handler.addFilter(EmailFilter()) handler.addFilter(PlexTokenFilter())