Fix UnifiAccessManager, add Simplepush debug logs, and adjust output format
parent
4e4e3a7f5a
commit
ad16fbb56e
10
main.py
10
main.py
|
|
@ -1,5 +1,6 @@
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
import urllib3
|
||||||
from config import load_config
|
from config import load_config
|
||||||
from unifi_access import UnifiAccessManager
|
from unifi_access import UnifiAccessManager
|
||||||
from hostex_api import HostexManager
|
from hostex_api import HostexManager
|
||||||
|
|
@ -7,6 +8,9 @@ from ics_parser import ICSParser
|
||||||
from notification import NotificationManager
|
from notification import NotificationManager
|
||||||
from utils import setup_logging
|
from utils import setup_logging
|
||||||
|
|
||||||
|
# Suppress InsecureRequestWarning
|
||||||
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="UniFi Access Visitor Management")
|
parser = argparse.ArgumentParser(description="UniFi Access Visitor Management")
|
||||||
parser.add_argument('-v', '--verbose', action='store_true', help="Increase output verbosity")
|
parser.add_argument('-v', '--verbose', action='store_true', help="Increase output verbosity")
|
||||||
|
|
@ -38,8 +42,14 @@ def main():
|
||||||
summary = unifi_manager.generate_summary()
|
summary = unifi_manager.generate_summary()
|
||||||
logger.info(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():
|
if config['simplepush_enabled'] and unifi_manager.has_changes():
|
||||||
notification_manager.send_notification("UniFi Access Update", summary)
|
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")
|
logger.debug("Script completed successfully")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
|
|
@ -87,13 +87,6 @@ class UnifiAccessManager:
|
||||||
else:
|
else:
|
||||||
return True
|
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):
|
def process_reservations(self, reservations):
|
||||||
today = datetime.date.today()
|
today = datetime.date.today()
|
||||||
next_month = today + datetime.timedelta(days=30)
|
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']}")
|
self.logger.error(f"Failed to delete visitor: {visitor['first_name']} {visitor['last_name']}")
|
||||||
|
|
||||||
def generate_summary(self):
|
def generate_summary(self):
|
||||||
summary = "UniFi Access Update Summary:\n"
|
summary = "Hostex-UniFi Access Summary:\n"
|
||||||
summary += f"{len(self.changes['unchanged'])} existing visitors unchanged\n"
|
unchanged_names = ", ".join(self.changes['unchanged'])
|
||||||
summary += f"{len(self.changes['deleted'])} visitor(s) deleted\n"
|
summary += f"{len(self.changes['unchanged'])} existing visitors unchanged ({unchanged_names})\n"
|
||||||
summary += f"{len(self.changes['added'])} visitor(s) added\n"
|
if self.changes['deleted']:
|
||||||
return summary
|
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):
|
def has_changes(self):
|
||||||
return bool(self.changes['added'] or self.changes['deleted'])
|
return bool(self.changes['added'] or self.changes['deleted'])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue