Fix UnifiAccessManager, add Simplepush debug logs, and adjust output format

main
Keith Herrington 2024-08-22 20:36:28 -07:00
parent 4e4e3a7f5a
commit ad16fbb56e
2 changed files with 20 additions and 12 deletions

10
main.py
View File

@ -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:

View File

@ -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'])