Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. import simplejson as json
  2. from pysqlite2 import dbapi2 as sqlite
  3.  
  4. import os
  5.  
  6. # Connexion à la base de données sqlite
  7. connection = sqlite.connect('rbfscores.sqlite')
  8. cursor = connection.cursor()
  9.  
  10. # Création de la table users
  11. cursor.execute('CREATE TABLE users (id INTEGER PRIMARY KEY ASC, name)')
  12.  
  13. fh = open('users.json')
  14. users = json.load(fh)
  15. for data in users:
  16. cursor.execute('INSERT INTO users VALUES (?, ?)', (data["id"], data["name"]))
  17.  
  18. connection.commit()
  19.  
  20. # Création de la table des chansons
  21. cursor.execute('CREATE TABLE songs (id INTEGER PRIMARY KEY ASC, song, artist, album, image, track INTEGER, album_year INTEGER, genre, song_length INTEGER, pack, type, released, xbox_cost REAL, ps3_cost REAL, wii_cost REAL, guitar NUMERIC, bass NUMERIC, drums NUMERIC, keys NUMERIC, vocals NUMERIC, pro_guitar NUMERIC, pro_bass NUMERIC, pro_drums NUMERIC, pro_keys NUMERIC, harmonies NUMERIC, topic INTEGER)')
  22.  
  23. fh = open('songs.json')
  24. songs = json.load(fh)
  25. maxid = 0
  26. # Bug ? certaines chansons n’ont pas d’id ni de difficultés pour les instruments
  27. # FIXME
  28. # On fait une première passe pour déterminer l’id le plus élevé et on en crée un
  29. # Les difficultés sont mises à -1 par défaut
  30. # FIXME
  31. for data in songs:
  32. if data["id"] and maxid < data["id"]:
  33. maxid = int(data["id"])
  34. maxid += 1
  35. for data in songs:
  36. for item in ("guitar",
  37. "bass",
  38. "drums",
  39. "keys",
  40. "vocals",
  41. "pro_guitar",
  42. "pro_bass",
  43. "pro_drums",
  44. "pro_keys",
  45. "harmonies"):
  46. if not data[item]:
  47. data[item] = -1
  48. if not data["id"]:
  49. data["id"] = maxid
  50. maxid += 1
  51. cursor.execute('INSERT INTO songs VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
  52. (data["id"],
  53. data["song"],
  54. data["artist"],
  55. data["album"],
  56. data["image"],
  57. data["track"],
  58. data["album_year"],
  59. data["genre"],
  60. data["song_length"],
  61. data["pack"],
  62. data["type"],
  63. data["released"],
  64. data["xbox_cost"],
  65. data["ps3_cost"],
  66. data["wii_cost"],
  67. data["guitar"],
  68. data["bass"],
  69. data["drums"],
  70. data["keys"],
  71. data["vocals"],
  72. data["pro_guitar"],
  73. data["pro_bass"],
  74. data["pro_drums"],
  75. data["pro_keys"],
  76. data["harmonies"],
  77. data["topic"]))
  78.  
  79. connection.commit()
  80.  
  81. # Création de la table des scores
  82. cursor.execute('CREATE TABLE songs_scores (id INTEGER, instr INTEGER, u INTEGER, sys INTEGER, l INTEGER, s INTEGER, stars INTEGER, r INTEGER, es INTEGER, er INTEGER)')
  83.  
  84. fh = open('songs_scores.json')
  85. scores = json.load(fh)
  86. for data in scores:
  87. cursor.execute('INSERT INTO songs_scores VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
  88. (data["id"],
  89. data["instr"],
  90. data["u"],
  91. data["sys"],
  92. data["l"],
  93. data["s"],
  94. data["stars"],
  95. data["r"],
  96. data["es"],
  97. data["er"]))
  98.  
  99. connection.commit()
  100.  
  101. # Création de la table des cutoffs
  102. cursor.execute('CREATE TABLE songs_stars (id INTEGER, instr INTEGER, min INTEGER, max INTEGER, stars INTEGER)')
  103.  
  104. fh = open('songs_stars.json')
  105. stars = json.load(fh)
  106. for data in stars:
  107. cursor.execute('INSERT INTO songs_stars VALUES (?, ?, ?, ?, ?)',
  108. (data["id"],
  109. data["instr"],
  110. data["min"],
  111. data["max"],
  112. data["stars"]))
  113.  
  114. connection.commit()
  115.  
  116. # Création de la table des scores en carrière
  117. cursor.execute('CREATE TABLE career_scores (u INTEGER, sys INTEGER, instr INTEGER, s INTEGER, r INTEGER, ro INTEGER, so INTEGER)')
  118.  
  119. fh = open('career_scores.json')
  120. stars = json.load(fh)
  121. for data in stars:
  122. cursor.execute('INSERT INTO career_scores VALUES (?, ?, ?, ?, ?, ?, ?)',
  123. (data["u"],
  124. data["sys"],
  125. data["instr"],
  126. data["r"],
  127. data["s"],
  128. data["ro"],
  129. data["so"]))
  130.  
  131. connection.commit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement