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]