Notify when new credentials are captured.
(self, new_count, total)
| 233 | threading.Thread(target=self.send, args=(msg, "Ragnar — Vulnerability Alert", 1), daemon=True).start() |
| 234 | |
| 235 | def notify_new_credentials(self, new_count, total): |
| 236 | """Notify when new credentials are captured.""" |
| 237 | if not self.is_enabled(): |
| 238 | return |
| 239 | if not self.shared_data.config.get("pushover_notify_new_credential", True): |
| 240 | return |
| 241 | if new_count <= 0: |
| 242 | return |
| 243 | if total == self._notified_creds: |
| 244 | return |
| 245 | self._notified_creds = total |
| 246 | # Suppress notification during startup grace — just absorb the baseline |
| 247 | if self._in_startup_grace(): |
| 248 | logger.debug(f"Pushover: suppressed credential alert during startup grace") |
| 249 | return |
| 250 | msg = f"🗝️ {new_count} new credential(s) captured! (total: {total})" |
| 251 | threading.Thread(target=self.send, args=(msg, "Ragnar — Credentials"), daemon=True).start() |
| 252 | |
| 253 | # ------------------------------------------------------------------ |
| 254 | # RuSense (WiFi-CSI camera-free surveillance) alerts |
no test coverage detected