From ce2d5f454ff514bfbb81bb908dcf9a91382937e0 Mon Sep 17 00:00:00 2001 From: Martin Matusiak Date: Wed, 19 May 2010 23:42:06 +0200 Subject: [PATCH] fix bitrate and quality --- network.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/network.py b/network.py index 2ecd56f..3cce8d5 100644 --- a/network.py +++ b/network.py @@ -142,8 +142,8 @@ def read_scan(scan_data): fields.essid = "ESSID:\"(.*?)\"" fields.channel = "Channel:([^\s]*)" fields.encrypted = "Encryption key:(on)" - fields.bitrate = "Bit Rates:((.|\s)+)" - fields.quality = "Quality=([^\s]*)/100" + fields.bitrate = "Bit Rates:(?:([0-9.]* [Mbs;/]*)*)" + fields.quality = "Quality=([0-9]+/[0-9]+)" fields.signal = "Signal level=([^\s]* dBm)" fields.noise = "Noise level=([^\s]* dBm)" fields.beacon = "Last beacon: ([^\s]*ms)" @@ -154,13 +154,10 @@ def read_scan(scan_data): s = regex.find1(fields[key], block) if s and s.strip(): net[key] = s.strip() - #try: - ## fix bad regex matching for bitrate - #rates = net.bitrate.split("Quality")[0] - #max_rate = re.split("; ", rates)[-1:][0] - #net.bitrate = max_rate.strip() - #except: - net.bitrate = -1 ## bitrate parsing is royally fucked + # special handling for bitrate + bitrates = regex.findall(fields.bitrate, block) + if bitrates: + net.bitrate = bitrates[-1] # extract wpa details fields.wpa = wpa % "WPA Version" -- 2.11.4.GIT