Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Listener:
- services = {}
- devices = {}
- def __init__(self):
- pass
- def remove_service(self, zeroconf, type, name):
- info = zeroconf.get_service_info(type, name)
- logging.info("Service %s removed" % (name,))
- if name in self.services:
- del self.services[name]
- def add_service(self, zeroconf, type, service_name):
- info = zeroconf.get_service_info(type, service_name)
- if info:
- address = None
- if info.address is not None:
- address = socket.inet_ntoa(info.address)
- port = info.port
- server = str(info.server)
- m = re_iid.match(server)
- # print("Service %s added, service info: %s" % (name, info))
- if m is not None:
- iid = m.groupdict()['iid']
- logging.info("Service %s added, service info: %s" % (service_name, '%s %s %s %s' % (address, port, server, iid)))
- if service_name not in self.services:
- name = get_device_info(iid, address)
- d = {
- 'address': address,
- 'service_name': service_name,
- 'port': port,
- 'server': server,
- 'iid': iid,
- 'name': name,
- }
- self.services[service_name] = d
- else:
- d = self.services[service_name]
- if iid not in self.devices:
- address = d.get('address')
- name = get_name(iid, address, d)
- self.devices[iid] = {
- 'address': address,
- 'iid': d.get('iid'),
- 'name': name,
- 'services': {
- d.get('service_name'): {
- 'service_name': d.get('service_name'),
- 'port': d.get('port'),
- 'server': d.get('server'),
- }
- }
- }
- else:
- self.devices[iid]['services'][d.get('service_name')] = {
- 'service_name': d.get('service_name'),
- 'port': d.get('port'),
- 'server': d.get('server'),
- }
- else:
- 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