
from xml.dom.minidom import parse
import MySQLdb

print "Connecting to database..."
connection=MySQLdb.connect(host="localhost", user="dj", passwd="djpwd7", db="dj",use_unicode=True,charset="utf8")
cursor=connection.cursor()

print "Parsing XML data..."
doc=parse('../media/LwDJState.xml')

numrecs=numlinks=numtags=0

print "Creating records and tags..."
for n in doc.documentElement.childNodes:
  if n.nodeName == "record":
     filename=n.getAttribute("filename")
     filename=filename.replace("M:","")
     filename=filename.replace("\\","/")
     cursor.execute("INSERT INTO record"+
         "(id,filename,artist,title,lastplayed,numplays,rating,notes)"+
         " values(%s,%s,%s,%s,%s,%s,%s,%s)",(
             n.getAttribute("id"),
             n.getAttribute("filename"),
             n.getAttribute("artist"),
             n.getAttribute("title"),
             n.getAttribute("lastplayed"),
             n.getAttribute("numplays"),
             n.getAttribute("rating"),
             n.getAttribute("notes")   ))
     numrecs+=1
  elif n.nodeName == "recordbox":
     cursor.execute("INSERT INTO tag(id,tag) values(%s,%s)",(
             n.getAttribute("id"),
             n.getAttribute("name") ))
     numtags+=1

print "Linking records and tags..."
for n in doc.documentElement.childNodes:
  if n.nodeName == "recordbox":
     for rn in n.childNodes:
       cursor.execute("INSERT INTO record2tag(record_id,tag_id) "+
           "values(%s,%s)",(n.getAttribute("id"),rn.getAttribute("id") ))
       numlinks+=1

print "Closing connection..."
cursor.close()
connection.close()

print "Finished - %d records, %d tags, %d links"%(numrecs,numtags,numlinks)



