#!/usr/bin/python import dbus, flimflam flim = flimflam.FlimFlam(dbus.SystemBus()) strength = {} for device in flim.GetObjectList("Device"): device_properties = device.GetProperties(utf8_strings = True) try: if device_properties["Type"] not in ["wifi", "wimax", "bluetooth", "cellular"]: continue except Exception, e: continue for network in flim.GetObjectList("Network", device_properties): network_properties = network.GetProperties(utf8_strings = True) if "Name" not in network_properties: continue name = network_properties["Name"] if "Strength" not in network_properties: print "No strength for network %s" % name continue if strength.get(name, -1) < network_properties["Strength"]: strength[name] = network_properties["Strength"] # print "%-14s: strength %d network %d" % \ # (name, # int(strength.get(name, -1)), # int(network_properties.get("Strength", -1))) for service in flim.GetObjectList("Service"): properties = service.GetProperties(utf8_strings = True) if "Name" not in properties: continue name = properties["Name"] print "%-14s: network %d service %d" % \ (name, int(strength.get(name, -1)), int(properties.get("Strength", -1)))