jamendo-import 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #!/usr/bin/python
  2. import lxml.etree as ET
  3. import codecs, locale, sys
  4. sys.stdout = codecs.getwriter(locale.getdefaultlocale()[1])(sys.stdout, 'replace')
  5. def tardescape(lol):
  6. if lol:
  7. lol = lol.replace('\\', '\\\\')
  8. lol = lol.replace('"','\\\"')
  9. return lol
  10. tree = ET.parse("/tmp/dbdump_artistalbumtrack.xml")
  11. wuggie = tree.getiterator("artist")
  12. print """
  13. DROP TABLE jm_artist;
  14. DROP TABLE jm_album;
  15. DROP TABLE jm_track;
  16. CREATE TABLE jm_artist (id varchar(10), name varchar(255), url varchar(255), image varchar(255), mbgid varchar(36));
  17. CREATE TABLE jm_album (id varchar(10), artist varchar(10), name varchar(255), url varchar(255), genre varchar(4), mbgid varchar(36), licenseartwork varchar(255), releasedate char(26));
  18. CREATE TABLE jm_track (id varchar(10), album varchar(10), name varchar(255), mbgid varchar(36), tracknum varchar(3), genre varchar(4), license varchar(255));
  19. """
  20. for i in wuggie:
  21. Eid = i.find("id")
  22. Ename = i.find("name")
  23. Eurl = i.find("url")
  24. Eimage = i.find("image")
  25. Embgid = i.find("mbgid")
  26. if Eid == None:
  27. id = ""
  28. else:
  29. id = Eid.text
  30. if Ename == None:
  31. name = ""
  32. else:
  33. name = Ename.text
  34. if Eurl == None:
  35. url = ""
  36. else:
  37. url = Eurl.text
  38. if Eimage == None:
  39. image = ""
  40. else:
  41. image = Eimage.text
  42. if Embgid.text == None:
  43. mbgid = ""
  44. else:
  45. mbgid = Embgid.text
  46. print "INSERT INTO jm_artist (id, name, url, image, mbgid) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\");" % (tardescape(id), tardescape(name), tardescape(url), tardescape(image), tardescape(mbgid))
  47. for j in i.findall("Albums/album"):
  48. Aid = j.find("id")
  49. Aname = j.find("name")
  50. Aurl = j.find("url")
  51. Agenre = j.find("id3genre")
  52. Ambgid = j.find("mbgid")
  53. Alicenseartwork = j.find("license_artwork")
  54. Areleasedate = j.find("releasedate")
  55. if Aid == None:
  56. aid = ""
  57. else:
  58. aid = Aid.text
  59. if Aname == None:
  60. aname = ""
  61. else:
  62. aname = Aname.text
  63. if Aurl == None:
  64. aurl = ""
  65. else:
  66. aurl = Aurl.text
  67. if Agenre == None:
  68. genre = ""
  69. else:
  70. genre = Agenre.text
  71. if Ambgid.text == None:
  72. ambgid = ""
  73. else:
  74. ambgid = Ambgid.text
  75. if Alicenseartwork == None:
  76. licenseartwork = ""
  77. else:
  78. licenseartwork = Alicenseartwork.text
  79. if Areleasedate == None:
  80. releasedate = ""
  81. else:
  82. releasedate = Areleasedate.text
  83. print "INSERT INTO jm_album (id, artist, name, url, genre, mbgid, licenseartwork, releasedate) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\");" % (tardescape(aid), tardescape(id), tardescape(aname), tardescape(aurl), tardescape(genre), tardescape(ambgid), tardescape(licenseartwork), tardescape(releasedate))
  84. for k in j.findall("Tracks/track"):
  85. Tid = k.find("id")
  86. Tname = k.find("name")
  87. Tmbgid = k.find("mbgid")
  88. Tnumalbum = k.find("numalbum")
  89. Tgenre = k.find("id3genre")
  90. Tlicense = k.find("license")
  91. if Tid == None:
  92. tid = ""
  93. else:
  94. tid = Tid.text
  95. if Tname == None:
  96. tname = ""
  97. else:
  98. tname = Tname.text
  99. if Tmbgid.text == None:
  100. tmbgid = ""
  101. else:
  102. tmbgid = Tmbgid.text
  103. if Tnumalbum == None:
  104. tracknum = ""
  105. else:
  106. tracknum = Tnumalbum.text
  107. if Tgenre == None:
  108. tgenre = ""
  109. else:
  110. tgenre = Tgenre.text
  111. if Tlicense == None:
  112. tlicense = ""
  113. else:
  114. tlicense = Tlicense.text
  115. print "INSERT INTO jm_track (id, album, name, mbgid, tracknum, genre, license) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\");" % (tardescape(tid), tardescape(aid), tardescape(tname), tardescape(tmbgid), tardescape(tracknum), tardescape(tgenre), tardescape(tlicense))