diff --git a/main.py b/main.py index 50e981c..ca3a222 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import argparse import logging +import urllib3 from config import load_config from unifi_access import UnifiAccessManager from hostex_api import HostexManager @@ -7,6 +8,9 @@ from ics_parser import ICSParser from notification import NotificationManager from utils import setup_logging +# Suppress InsecureRequestWarning +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + def main(): parser = argparse.ArgumentParser(description="UniFi Access Visitor Management") parser.add_argument('-v', '--verbose', action='store_true', help="Increase output verbosity") @@ -38,8 +42,14 @@ def main(): summary = unifi_manager.generate_summary() logger.info(summary) + total_visitors = len(unifi_manager.fetch_visitors()) + logger.info(f"Total visitors remaining after cleanup: {total_visitors}") + if config['simplepush_enabled'] and unifi_manager.has_changes(): notification_manager.send_notification("UniFi Access Update", summary) + logger.debug("Simplepush notification sent") + else: + logger.debug("No Simplepush notification sent (no changes or Simplepush not enabled)") logger.debug("Script completed successfully") except Exception as e: diff --git a/unifi_access.py b/unifi_access.py index 9adf1be..143ab42 100644 --- a/unifi_access.py +++ b/unifi_access.py @@ -87,13 +87,6 @@ class UnifiAccessManager: else: return True - def is_pin_in_use(self, pin_code): - visitors = self.fetch_visitors() - for visitor in visitors: - if "pin_codes" in visitor and pin_code in visitor["pin_codes"]: - return True - return False - def process_reservations(self, reservations): today = datetime.date.today() next_month = today + datetime.timedelta(days=30) @@ -140,11 +133,16 @@ class UnifiAccessManager: self.logger.error(f"Failed to delete visitor: {visitor['first_name']} {visitor['last_name']}") def generate_summary(self): - summary = "UniFi Access Update Summary:\n" - summary += f"{len(self.changes['unchanged'])} existing visitors unchanged\n" - summary += f"{len(self.changes['deleted'])} visitor(s) deleted\n" - summary += f"{len(self.changes['added'])} visitor(s) added\n" - return summary + summary = "Hostex-UniFi Access Summary:\n" + unchanged_names = ", ".join(self.changes['unchanged']) + summary += f"{len(self.changes['unchanged'])} existing visitors unchanged ({unchanged_names})\n" + if self.changes['deleted']: + deleted_names = ", ".join(self.changes['deleted']) + summary += f"{len(self.changes['deleted'])} visitor(s) deleted ({deleted_names})\n" + if self.changes['added']: + added_names = ", ".join(self.changes['added']) + summary += f"{len(self.changes['added'])} visitor(s) added ({added_names})\n" + return summary.strip() def has_changes(self): return bool(self.changes['added'] or self.changes['deleted'])