23 from BeautifulSoup import BeautifulSoup |
23 from BeautifulSoup import BeautifulSoup |
24 from optparse import OptionParser |
24 from optparse import OptionParser |
25 import hashlib |
25 import hashlib |
26 import xml.etree.ElementTree as ET |
26 import xml.etree.ElementTree as ET |
27 |
27 |
28 user_agent = 'downloadkit.py script' |
28 version = '0.10' |
|
29 user_agent = 'downloadkit.py script v' + version |
29 headers = { 'User-Agent' : user_agent } |
30 headers = { 'User-Agent' : user_agent } |
30 top_level_url = "http://developer.symbian.org" |
31 top_level_url = "http://developer.symbian.org" |
31 download_list = [] |
32 download_list = [] |
32 unzip_list = [] |
33 unzip_list = [] |
33 |
34 |
358 downloadurl = urlbase + result['href'] |
359 downloadurl = urlbase + result['href'] |
359 filename = result['title'] |
360 filename = result['title'] |
360 |
361 |
361 if options.nosrc and re.match(r"(src_sfl|src_oss)", filename) : |
362 if options.nosrc and re.match(r"(src_sfl|src_oss)", filename) : |
362 continue # no snapshots of Mercurial source thanks... |
363 continue # no snapshots of Mercurial source thanks... |
|
364 if options.nowinscw and re.search(r"winscw", filename) : |
|
365 continue # no winscw emulator... |
363 |
366 |
364 if download_file(filename, downloadurl) != True : |
367 if download_file(filename, downloadurl) != True : |
365 continue # download failed |
368 continue # download failed |
366 |
369 |
367 # unzip the file (if desired) |
370 # unzip the file (if desired) |
380 # wait for the unzipping threads to complete |
383 # wait for the unzipping threads to complete |
381 complete_outstanding_unzips() |
384 complete_outstanding_unzips() |
382 |
385 |
383 return 1 |
386 return 1 |
384 |
387 |
385 parser = OptionParser(version="%prog 0.9", usage="Usage: %prog [options] version") |
388 parser = OptionParser(version="%prog "+version, usage="Usage: %prog [options] version") |
386 parser.add_option("-n", "--dryrun", action="store_true", dest="dryrun", |
389 parser.add_option("-n", "--dryrun", action="store_true", dest="dryrun", |
387 help="print the files to be downloaded, the 7z commands, and the recommended deletions") |
390 help="print the files to be downloaded, the 7z commands, and the recommended deletions") |
388 parser.add_option("--nosrc", action="store_true", dest="nosrc", |
391 parser.add_option("--nosrc", action="store_true", dest="nosrc", |
389 help="Don't download any of the source code available directly from Mercurial") |
392 help="Don't download any of the source code available directly from Mercurial") |
|
393 parser.add_option("--nowinscw", action="store_true", dest="nowinscw", |
|
394 help="Don't download the winscw emulator") |
390 parser.add_option("--nounzip", action="store_true", dest="nounzip", |
395 parser.add_option("--nounzip", action="store_true", dest="nounzip", |
391 help="Just download, don't unzip or delete any files") |
396 help="Just download, don't unzip or delete any files") |
392 parser.add_option("--nodelete", action="store_true", dest="nodelete", |
397 parser.add_option("--nodelete", action="store_true", dest="nodelete", |
393 help="Do not delete files after unzipping") |
398 help="Do not delete files after unzipping") |
394 parser.add_option("--progress", action="store_true", dest="progress", |
399 parser.add_option("--progress", action="store_true", dest="progress", |