From 85fb2bd018a2fefc6613e03ddaa821bcfae9e1d8 Mon Sep 17 00:00:00 2001 From: duc_tin Date: Fri, 6 Nov 2015 22:28:30 +0900 Subject: [PATCH] fix some minor bugs --- ui_elements.py | 2 ++ vpn_indicator.py | 2 +- vpnproxy_tui.py | 31 +++++++++++++++++++------------ 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ui_elements.py b/ui_elements.py index 0723cba..9f764c2 100644 --- a/ui_elements.py +++ b/ui_elements.py @@ -127,8 +127,10 @@ def item_callback(self, Button, data=None): port = self.port.edit_text if not country: self.country.set_edit_text('all') + country = 'all' if not port: self.port.set_edit_text('all') + port = 'all' self._emit("close") elif port != 'all' and not 0 <= int(port) <= 65535: self.port.set_edit_text('Invalid number!') diff --git a/vpn_indicator.py b/vpn_indicator.py index 250d768..e23ce43 100755 --- a/vpn_indicator.py +++ b/vpn_indicator.py @@ -208,7 +208,7 @@ def status(self, _, messages=[0]): summary = 'VPN tunnel established' body = ''' %s \t %s - Ping: \t\t\t%s \tSpeed : \t%s MB/s + Ping: \t\t\t%s \tSpeed : \t%s Mbps Up time:\t\t%s \tSeason: \t%s Log: \t\t\t%s Score: \t\t\t%s diff --git a/vpnproxy_tui.py b/vpnproxy_tui.py index 8c6e30b..942f70c 100755 --- a/vpnproxy_tui.py +++ b/vpnproxy_tui.py @@ -38,8 +38,9 @@ # Define some mirrors of vpngate.net mirrors = ['http://www.vpngate.net', 'http://103.253.112.16:49882', - 'http://158.ip-37-187-34.eu:58272', - ] + 'http://hannan.postech.ac.kr:6395', + 'http://115.160.46.181:38061', + 'http://hornet.knu.ac.kr:36171'] # TODO: add user manual to this and can be access by h, help. It may never be done, reads the README file instead @@ -210,29 +211,35 @@ def get_data(self): else: proxies = {} + self.vpndict.clear() i = 0 + success = 0 while i < len(mirrors): try: self.messages['debug'].appendleft(' using gate: ' + mirrors[i]) gate = mirrors[i] + '/api/iphone/' - vpn_data = requests.get(gate, proxies=proxies, timeout=3).text.replace('\r', '') + vpn_data = requests.get(gate, proxies=proxies, timeout=2).text.replace('\r', '') if 'vpn_servers' not in vpn_data: - raise requests.exceptions.RequestException + self.messages['debug'].appendleft(' Gate ' + mirrors[i] + ' does not have expected data!') + else: + servers = [line.split(',') for line in vpn_data.split('\n')] + self.vpndict.update({s[0]: Server(s) for s in servers[2:] if len(s) > 1}) + self.messages['debug'].appendleft(' Fetching servers completed') + success += 1 - servers = [line.split(',') for line in vpn_data.split('\n')] - self.vpndict = {s[0]: Server(s) for s in servers[2:] if len(s) > 1} - self.messages['debug'].appendleft(' Fetching servers completed') - repr(self.vpndict.items()[1][1]) - break + if success == 1: break + i += 1 except requests.exceptions.RequestException as e: self.messages['debug'].appendleft(str(e)) self.messages['debug'].appendleft(' Connection to gate ' + mirrors[i] + ' failed') i += 1 else: - self.messages['debug'].appendleft(' Failed to get VPN servers data\n Check your network setting and proxy') - sys.exit(1) + if not success: + self.messages['debug'].appendleft(' Failed to get VPN servers data\n ' + 'Check your network setting and proxy') + sys.exit(1) def refresh_data(self): # fetch data from vpngate.net @@ -591,7 +598,7 @@ def update_GUI(self): # Page number total = str(len(data_list) // self.ser_no + 1) page_no = str(self.index / self.ser_no + 1) - while page_no > total: + while int(page_no) > int(total): self.index -= self.ser_no page_no = str(self.index / self.ser_no + 1) self.pages.set_text([('command', u'\u2191\u2193 page: '), page_no + '/' + total])