Merge 682bb729b7 into 22210ca352
				
					
				
			This commit is contained in:
		
						commit
						c037c24b03
					
				|  | @ -0,0 +1,15 @@ | ||||||
|  | <?xml version="1.0"?> | ||||||
|  | <settings> | ||||||
|  | <servers> | ||||||
|  | <server url="http://speedtest.deltacable.com:8080/speedtest/upload.php" lat="49.0902" lon="-123.0652" name="Delta, BC" country="Canada" cc="CA" sponsor="Eastlink" id="22154" host="speedtest.deltacable.com:8080"/> | ||||||
|  | <server url="https://speedtest.vc.shawcable.net:8080/speedtest/upload.php" lat="49.2505" lon="-123.1119" name="Vancouver, BC" country="Canada" cc="CA" sponsor="Shaw Communications" id="4243" host="speedtest.vc.shawcable.net:8080"/> | ||||||
|  | <server url="http://speedtest.skywaywest.net:8080/speedtest/upload.php" lat="49.2505" lon="-123.1119" name="Vancouver, BC" country="Canada" cc="CA" sponsor="Skyway West Business Internet Services" id="3318" host="speedtest.skywaywest.net:8080"/> | ||||||
|  | <server url="http://speedtest-6.aebc.com:8080/speedtest/upload.php" lat="49.2505" lon="-123.1119" name="Vancouver, BC" country="Canada" cc="CA" sponsor="AEBC Internet" id="41509" host="speedtest-6.aebc.com:8080"/> | ||||||
|  | <server url="http://speedtest.van3.fibretel.ca:8080/speedtest/upload.php" lat="49.2505" lon="-123.1119" name="Vancouver, BC" country="Canada" cc="CA" sponsor="FIBRETEL" id="58622" host="speedtest.van3.fibretel.ca:8080"/> | ||||||
|  | <server url="http://fast.rockisland.net:8080/speedtest/upload.php" lat="48.5343" lon="-123.0171" name="Friday Harbor, WA" country="United States" cc="US" sponsor="Rock Island Communications" id="26805" host="fast.rockisland.net:8080"/> | ||||||
|  | <server url="http://speedtest.cityofanacortes.org:8080/speedtest/upload.php" lat="48.5126" lon="-122.6127" name="Anacortes, WA" country="United States" cc="US" sponsor="City of Anacortes" id="31110" host="speedtest.cityofanacortes.org:8080"/> | ||||||
|  | <server url="http://ost02.whidbey.net:8080/speedtest/upload.php" lat="48.0401" lon="-122.4063" name="Langley, WA" country="United States" cc="US" sponsor="Whidbey Telecom" id="54406" host="ost02.whidbey.net:8080"/> | ||||||
|  | <server url="https://speedtestvm-evrtwaxa.as20055.net:8080/speedtest/upload.php" lat="47.9790" lon="-122.2021" name="Everett, WA" country="United States" cc="US" sponsor="Ziply Fiber" id="42157" host="speedtestvm-evrtwaxa.as20055.net:8080"/> | ||||||
|  | <server url="http://speedtest1-bothwaxb.as20055.net:8080/speedtest/upload.php" lat="47.7717" lon="-122.2044" name="Bothell, WA" country="United States" cc="US" sponsor="Ziply Fiber" id="51693" host="speedtest1-bothwaxb.as20055.net:8080"/> | ||||||
|  | </servers> | ||||||
|  | </settings> | ||||||
							
								
								
									
										25
									
								
								speedtest.py
								
								
								
								
							
							
						
						
									
										25
									
								
								speedtest.py
								
								
								
								
							|  | @ -1237,7 +1237,7 @@ class Speedtest(object): | ||||||
| 
 | 
 | ||||||
|         return self.config |         return self.config | ||||||
| 
 | 
 | ||||||
|     def get_servers(self, servers=None, exclude=None): |     def get_servers(self, servers=None, exclude=None, load_servers=None): | ||||||
|         """Retrieve a the list of speedtest.net servers, optionally filtered |         """Retrieve a the list of speedtest.net servers, optionally filtered | ||||||
|         to servers matching those specified in the ``servers`` argument |         to servers matching those specified in the ``servers`` argument | ||||||
|         """ |         """ | ||||||
|  | @ -1326,6 +1326,14 @@ class Speedtest(object): | ||||||
|                 except (SyntaxError, xml.parsers.expat.ExpatError): |                 except (SyntaxError, xml.parsers.expat.ExpatError): | ||||||
|                     raise ServersRetrievalError() |                     raise ServersRetrievalError() | ||||||
| 
 | 
 | ||||||
|  |                 #load from file if exist | ||||||
|  |                 printer('Servers File:\n%s' % load_servers, debug=True) | ||||||
|  |                 if load_servers is not None: | ||||||
|  |                     if os.path.isfile(load_servers): | ||||||
|  |                         serverfile = ET.parse(load_servers) | ||||||
|  |                         serverlist = serverfile.getroot() | ||||||
|  |                         elements = elements + list(set(serverlist[0])-set(elements)) | ||||||
|  | 
 | ||||||
|                 for server in elements: |                 for server in elements: | ||||||
|                     try: |                     try: | ||||||
|                         attrib = server.attrib |                         attrib = server.attrib | ||||||
|  | @ -1757,6 +1765,8 @@ def parse_args(): | ||||||
|                         help='Suppress verbose output, only show basic ' |                         help='Suppress verbose output, only show basic ' | ||||||
|                              'information in JSON format. Speeds listed in ' |                              'information in JSON format. Speeds listed in ' | ||||||
|                              'bit/s and not affected by --bytes') |                              'bit/s and not affected by --bytes') | ||||||
|  |     parser.add_argument('--load-servers', action='append', | ||||||
|  |                         help='Load list of servers from file') | ||||||
|     parser.add_argument('--list', action='store_true', |     parser.add_argument('--list', action='store_true', | ||||||
|                         help='Display a list of speedtest.net servers ' |                         help='Display a list of speedtest.net servers ' | ||||||
|                              'sorted by distance') |                              'sorted by distance') | ||||||
|  | @ -1891,9 +1901,18 @@ def shell(): | ||||||
|         printer('Cannot retrieve speedtest configuration', error=True) |         printer('Cannot retrieve speedtest configuration', error=True) | ||||||
|         raise SpeedtestCLIError(get_exception()) |         raise SpeedtestCLIError(get_exception()) | ||||||
| 
 | 
 | ||||||
|  |     if args.load_servers: | ||||||
|  |         printer('Loading file with servers...', quiet) | ||||||
|  |         if not os.path.isfile(args.load_servers[0]): | ||||||
|  |             raise SystemExit('ERROR: Cannot load specified %s file' % args.load_servers)      | ||||||
|  |          | ||||||
|  |         file = args.load_servers[0] | ||||||
|  |     else: | ||||||
|  |         file = None | ||||||
|  | 
 | ||||||
|     if args.list: |     if args.list: | ||||||
|         try: |         try: | ||||||
|             speedtest.get_servers() |             speedtest.get_servers(load_servers=file) | ||||||
|         except (ServersRetrievalError,) + HTTP_ERRORS: |         except (ServersRetrievalError,) + HTTP_ERRORS: | ||||||
|             printer('Cannot retrieve speedtest server list', error=True) |             printer('Cannot retrieve speedtest server list', error=True) | ||||||
|             raise SpeedtestCLIError(get_exception()) |             raise SpeedtestCLIError(get_exception()) | ||||||
|  | @ -1916,7 +1935,7 @@ def shell(): | ||||||
|     if not args.mini: |     if not args.mini: | ||||||
|         printer('Retrieving speedtest.net server list...', quiet) |         printer('Retrieving speedtest.net server list...', quiet) | ||||||
|         try: |         try: | ||||||
|             speedtest.get_servers(servers=args.server, exclude=args.exclude) |             speedtest.get_servers(servers=args.server, exclude=args.exclude, load_servers=file) | ||||||
|         except NoMatchedServers: |         except NoMatchedServers: | ||||||
|             raise SpeedtestCLIError( |             raise SpeedtestCLIError( | ||||||
|                 'No matched servers: %s' % |                 'No matched servers: %s' % | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue