| #!/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))) |