From 5b31fabf8159e2097d7f72a9c508ab26638f79dd Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Tue, 26 Mar 2024 10:49:43 -0400 Subject: [PATCH] Fix only tracking domain part of browser url --- WakaTime/Extensions/AXUIElementExtension.swift | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/WakaTime/Extensions/AXUIElementExtension.swift b/WakaTime/Extensions/AXUIElementExtension.swift index 6f7f8b9..132c346 100644 --- a/WakaTime/Extensions/AXUIElementExtension.swift +++ b/WakaTime/Extensions/AXUIElementExtension.swift @@ -173,8 +173,9 @@ extension AXUIElement { FilterManager.filterBrowsedSites(url) else { return nil } - // TODO: return only domain part depending on user setting - return url + guard PropertiesManager.domainPreference == .domain else { return url } + + return domainFromUrl(url) } return title(for: monitoredApp) @@ -320,6 +321,13 @@ extension AXUIElement { return nil } + func domainFromUrl(_ url: String) -> String? { + guard let host = URL(string: url)?.host else { return nil } + let domain = host.replacingOccurrences(of: "^www.", with: "", options: .regularExpression) + guard let port = URL(string: url)?.port else { return domain } + return "\(domain):\(port)" + } + // Traverses the element's subtree (breadth-first) until visitor() returns false or traversal is completed func traverseDown(visitor: (AXUIElement) -> Bool) { var queue: [AXUIElement] = [self]