respondd.py 881 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python3
  2. import json
  3. import time
  4. import lib.helper
  5. class Respondd:
  6. def __init__(self, config):
  7. self._config = config
  8. self.__cache = {}
  9. self.__cacheTime = 0
  10. def getNodeID(self):
  11. if 'nodeinfo' in self._config and 'node_id' in self._config['nodeinfo']:
  12. return self._config['nodeinfo']['node_id']
  13. else:
  14. return lib.helper.getInterfaceMAC(self._config['batman']).replace(':', '')
  15. def getStruct(self, rootName=None):
  16. if 'caching' in self._config and time.time() - self.__cacheTime <= self._config['caching']:
  17. ret = self.__cache
  18. else:
  19. ret = self._get()
  20. self.__cache = ret
  21. self.__cacheTime = time.time()
  22. ret['node_id'] = self.getNodeID()
  23. if rootName is not None:
  24. ret_tmp = ret
  25. ret = {}
  26. ret[rootName] = ret_tmp
  27. return ret
  28. @staticmethod
  29. def _get():
  30. return {}