diff --git a/ffmap/inputs/alfred.py b/ffmap/inputs/alfred.py index 6c0f66e..340c0d9 100644 --- a/ffmap/inputs/alfred.py +++ b/ffmap/inputs/alfred.py @@ -7,12 +7,26 @@ class Input: def get_data(self, nodedb): """Add data from alfred to the supplied nodedb""" + # get nodeinfo output = subprocess.check_output([ "alfred-json", "-r", str(self.request_data_type), "-f", "json", ]) - alfred_data = json.loads(output.decode("utf-8")) + nodeinfo = json.loads(output.decode("utf-8")) - for mac, node in alfred_data.items(): + # get statistics + output = subprocess.check_output([ + "alfred-json", + "-r", str(self.request_data_type+1), + "-f", "json", + ]) + statistics = json.loads(output.decode("utf-8")) + + # merge statistics into nodeinfo to be compatible with earlier versions + for mac, node in statistics.items(): + if mac in nodeinfo: + nodeinfo[mac]['statistics'] = statistics[mac] + + for mac, node in nodeinfo.items(): nodedb.add_or_update([mac], node)