v0.16 - generate correct URL for downloading a specific version, and enable "Latest Symbian^X" functionality.
authorWilliam Roberts <williamr@symbian.org>
Thu, 18 Mar 2010 14:17:43 +0000
changeset 207 a99c74c53f62
parent 199 90e6dc719131
child 209 97a2261627a2
child 210 161402049aa3
v0.16 - generate correct URL for downloading a specific version, and enable "Latest Symbian^X" functionality. Specify just "2" or "3" to get the latest version of Symbian^2 or Symbian^3 respectively
downloadkit/downloadkit.py
--- a/downloadkit/downloadkit.py	Tue Mar 16 12:52:44 2010 +0000
+++ b/downloadkit/downloadkit.py	Thu Mar 18 14:17:43 2010 +0000
@@ -26,7 +26,7 @@
 import hashlib
 import xml.etree.ElementTree as ET 
 
-version = '0.15'
+version = '0.16'
 user_agent = 'downloadkit.py script v' + version
 headers = { 'User-Agent' : user_agent }
 top_level_url = "https://developer.symbian.org"
@@ -380,11 +380,14 @@
 	urlbase = top_level_url + '/main/tools_and_kits/downloads/'
 
 	viewid = 5   # default to Symbian^3
-	if version[0] == 2:
+	if version[0] == '2':
 		viewid= 1  # Symbian^2
-	if version[0] == 3:
+	if version[0] == '3':
 		viewid= 5  # Symbian^3
-	url = urlbase + ('view.php?id=%d'% viewid) + 'vId=' + version
+	url = urlbase + ('view.php?id=%d'% viewid)
+	if len(version) > 1:
+		# single character version means "give me the latest"
+		url = url + '&vId=' + version
 
 	req = urllib2.Request(url, None, headers)
 	response = urllib2.urlopen(req)
@@ -406,11 +409,18 @@
 
 	# check that this is the right version
 	match = re.search('Platform Release (\(Public\) )?v(\d\.\d\.[0-9a-z]+)', doc, re.IGNORECASE)
-	if match and match.group(2) != version:
-		print "*** ERROR: version %s is not available" % version
-		print "*** the website is offering version %s instead" % match.group(1)
+	if not match:
+		print "*** ERROR: no version information in the download page"
 		return 0
 		
+	if len(version) > 1:
+		if match.group(2) != version:
+			print "*** ERROR: version %s is not available" % version
+			print "*** the website is offering version %s instead" % match.group(2)
+			return 0
+	else:
+		print "The latest version of Symbian^%s is PDK %s" % (version, match.group(2))
+		
 	# let's hope the HTML format never changes...
 	# <a href='download.php?id=27&cid=60&iid=270' title='src_oss_mw.zip'> ...</a> 
 	threadlist = []
@@ -488,7 +498,7 @@
 
 (options, args) = parser.parse_args()
 if len(args) != 1:
-	parser.error("Must supply a PDK version, e.g. 3.0.f")
+	parser.error("Must supply a PDK version, e.g. 3 or 3.0.h")
 if not check_unzip_environment() :
 	parser.error("Unable to execute 7z command")