summaryrefslogtreecommitdiff
path: root/examples/python/gi/show-wifi-networks.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python/gi/show-wifi-networks.py')
-rwxr-xr-xexamples/python/gi/show-wifi-networks.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/examples/python/gi/show-wifi-networks.py b/examples/python/gi/show-wifi-networks.py
index c76d1c4cb9..7f3bd2dbb0 100755
--- a/examples/python/gi/show-wifi-networks.py
+++ b/examples/python/gi/show-wifi-networks.py
@@ -20,6 +20,7 @@
# Copyright (C) 2013 Red Hat, Inc.
#
+import locale
from gi.repository import NM
#
@@ -31,22 +32,20 @@ from gi.repository import NM
# an error without it: http://www.python.org/dev/peps/pep-0263/
#
-signal_bars = {
- 0 : "____",
- 1 : "▂___",
- 2 : "▂▄__",
- 3 : "▂▄▆_",
- 4 : "▂▄▆█"
-}
-
def clamp(value, minvalue, maxvalue):
return max(minvalue, min(value, maxvalue))
+def ssid_to_utf8(ap):
+ ssid = ap.get_ssid()
+ if not ssid:
+ return ""
+ return NM.utils_ssid_to_utf8(ap.get_ssid().get_data())
+
def print_device_info(device):
active_ap = dev.get_active_access_point()
ssid = None
if active_ap is not None:
- ssid = active_ap.get_ssid()
+ ssid = ssid_to_utf8(active_ap)
info = "Device: %s | Driver: %s | Active AP: %s" % (dev.get_iface(), dev.get_driver(), ssid)
print info
print '=' * len(info)
@@ -54,14 +53,19 @@ def print_device_info(device):
def print_ap_info(ap):
strength = ap.get_strength()
frequency = ap.get_frequency()
- print "SSID: %s" % (ap.get_ssid())
+ print "SSID: %s" % (ssid_to_utf8(ap))
print "BSSID: %s" % (ap.get_bssid())
print "Frequency: %s" % (frequency)
print "Channel: %s" % (NM.utils_wifi_freq_to_channel(frequency))
- print "Strength: %s %s%%" % (signal_bars[(clamp(strength-5, 0, 99)+24)/25], strength)
+ print "Strength: %s %s%%" % (NM.utils_wifi_strength_bars(strength), strength)
print
if __name__ == "__main__":
+ # Python apparently doesn't call setlocale() on its own? We have to call this or else
+ # NM.utils_wifi_strength_bars() will think the locale is ASCII-only, and return the
+ # fallback characters rather than the unicode bars
+ locale.setlocale(locale.LC_ALL, '')
+
nmc = NM.Client.new(None)
devs = nmc.get_devices()