45 lines
1.3 KiB
Python
Executable file
45 lines
1.3 KiB
Python
Executable file
#!/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)))
|