From 69a6ae92be84c904188780904740ba20f939a73c Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Sat, 28 Aug 2021 16:48:05 +0200 Subject: [PATCH] feat: added cron job to refresh public IP address every hour --- Modules/Net/main.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Modules/Net/main.swift b/Modules/Net/main.swift index 2ff38789..ca04e684 100644 --- a/Modules/Net/main.swift +++ b/Modules/Net/main.swift @@ -76,6 +76,8 @@ public class Network: Module { private var usageReader: UsageReader? = nil private var processReader: ProcessReader? = nil + private let ipUpdater = NSBackgroundActivityScheduler(identifier: "eu.exelban.Stats.Network.IP") + public init() { self.settingsView = Settings("Network") self.popupView = Popup("Network") @@ -120,6 +122,14 @@ public class Network: Module { if let reader = self.processReader { self.addReader(reader) } + + self.ipUpdater.interval = 60 * 60 + self.ipUpdater.repeats = true + self.ipUpdater.schedule { (completion: @escaping NSBackgroundActivityScheduler.CompletionHandler) in + debug("going to automatically refresh IP address...") + NotificationCenter.default.post(name: .refreshPublicIP, object: nil, userInfo: nil) + completion(NSBackgroundActivityScheduler.Result.finished) + } } public override func isAvailable() -> Bool {