import sys
import urllib
import urllib2
import webbrowser
from elementtree import ElementTree

if len(sys.argv) != 2:
    print "usage: itunesimport.py <ALBUMID>"
    raise SystemExit

def format_time(ms):
    return "%d:%02d" % (ms / 60000, (ms / 1000) % 60)

url = 'http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum'
values = {
    'playlistId' : sys.argv[1]
}
headers = {
    'User-Agent': 'iTunes/4.2 (Macintosh; U; PPC MacOS X 10.2)'
}

data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
#response = file('a.xml')
the_page = response.read()

tree = ElementTree.fromstring(the_page)
artists = {}
data = []
for e in tree.find("{http://www.apple.com/itms/}TrackList/{http://www.apple.com/itms/}plist/{http://www.apple.com/itms/}dict/{http://www.apple.com/itms/}array"):
    d = {}
    for e2 in e:
        if e2.tag == '{http://www.apple.com/itms/}key':
            key = e2.text
        else:
            d[key] = e2.text
    artists[d['artistName']] = 1
    data.append(d)

values = {}
if len(artists) > 1:
    values['hasmultipletrackartists'] = '1'
    values['artistid'] = '1'
    values['artistname'] = 'Various Artists'
else:
    values['hasmultipletrackartists'] = '0'
    values['artistid'] = '2'
    values['artistname'] = data[0]['artistName'].encode('utf-8')
values['artistedit'] = '1'
values['releasename'] = data[0]['playlistName'].encode('utf-8')
tracks = 0
for i, d in enumerate(data):
    try:
        i = int(d['trackNumber']) - 1
    except:
        pass
    tracks = max(tracks, i + 1)
    values['track%d' % i] = d['itemName'].encode('utf-8')
    values['tracklength%d' % i] = format_time(int(d['duration']))
    if len(artists) > 1:
        values['tr%d_artistedit' % i] = '1'
    values['tr%d_artistname' % i] = d['artistName'].encode('utf-8')
values['tracks'] = str(tracks)

url = 'http://musicbrainz.org/cdi/enter.html?' + urllib.urlencode(values)
print url
#webbrowser.open(url)
