Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.58 KB | None | 0 0
  1. class Listener:
  2.     services = {}
  3.     devices = {}
  4.  
  5.     def __init__(self):
  6.         pass
  7.  
  8.     def remove_service(self, zeroconf, type, name):
  9.         info = zeroconf.get_service_info(type, name)
  10.         logging.info("Service %s removed" % (name,))
  11.         if name in self.services:
  12.             del self.services[name]
  13.  
  14.     def add_service(self, zeroconf, type, service_name):
  15.         info = zeroconf.get_service_info(type, service_name)
  16.         if info:
  17.             address = None
  18.             if info.address is not None:
  19.                 address = socket.inet_ntoa(info.address)
  20.             port = info.port
  21.             server = str(info.server)
  22.             m = re_iid.match(server)
  23.             # print("Service %s added, service info: %s" % (name, info))
  24.             if m is not None:
  25.                 iid = m.groupdict()['iid']
  26.                 logging.info("Service %s added, service info: %s" % (service_name, '%s %s %s %s' % (address, port, server, iid)))
  27.                 if service_name not in self.services:
  28.                     name = get_device_info(iid, address)
  29.                     d = {
  30.                         'address': address,
  31.                         'service_name': service_name,
  32.                         'port': port,
  33.                         'server': server,
  34.                         'iid': iid,
  35.                         'name': name,
  36.                     }
  37.                     self.services[service_name] = d
  38.                 else:
  39.                     d = self.services[service_name]
  40.  
  41.                 if iid not in self.devices:
  42.                     address = d.get('address')
  43.                     name = get_name(iid, address, d)
  44.                     self.devices[iid] = {
  45.                         'address': address,
  46.                         'iid': d.get('iid'),
  47.                         'name': name,
  48.                         'services': {
  49.                             d.get('service_name'): {
  50.                                 'service_name': d.get('service_name'),
  51.                                 'port': d.get('port'),
  52.                                 'server': d.get('server'),
  53.                             }
  54.                         }
  55.                     }
  56.                 else:
  57.                     self.devices[iid]['services'][d.get('service_name')] = {
  58.                         'service_name': d.get('service_name'),
  59.                         'port': d.get('port'),
  60.                         'server': d.get('server'),
  61.                     }
  62.             else:
  63.                 print("Service %s added, service info: %s" % (service_name, '%s %s %s' % (address, port, server)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement