monkeymusic 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/levels/testlevel.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  carrying_capacity 3
2
2
  turn_limit 100
3
- time_limit 300
3
+ time_limit 10000
4
4
 
5
5
  legend({
6
6
  "1" => Monkey.player(1),
7
7
  "2" => Monkey.player(2),
8
- "X" => Track.worth(-2),
9
- "x" => Track.worth(-1),
10
- "l" => Track.worth(1),
11
- "t" => Track.worth(2),
12
- "T" => Track.worth(3),
8
+ "X" => Track.tier(-2),
9
+ "x" => Track.tier(-1),
10
+ "l" => Track.tier(1),
11
+ "t" => Track.tier(2),
12
+ "T" => Track.tier(3),
13
13
  "U" => User,
14
14
  "W" => Wall,
15
15
  })
data/lib/monkey_music.rb CHANGED
@@ -9,7 +9,6 @@ require 'monkey_music/level'
9
9
  require 'monkey_music/level_loader'
10
10
 
11
11
  require 'monkey_music/ui/console'
12
- require 'monkey_music/ui/browser'
13
12
 
14
13
  require 'monkey_music/metadata/track'
15
14
  require 'monkey_music/metadata/album'
@@ -1,6 +1,6 @@
1
1
  module MonkeyMusic::Metadata
2
2
  class Track
3
- attr_reader :uri, :name, :artist, :album, :year, :multiplier, :value
3
+ attr_reader :uri, :name, :artist, :album, :year, :tier, :value
4
4
 
5
5
  def initialize(args = {})
6
6
  @name = args[:name]
@@ -10,8 +10,8 @@ module MonkeyMusic::Metadata
10
10
  @uri = args[:uri]
11
11
  end
12
12
 
13
- def set_value(multiplier, value)
14
- @multiplier = multiplier
13
+ def set_value(tier, value)
14
+ @tier = tier
15
15
  @value = value
16
16
  end
17
17
 
@@ -2,7 +2,7 @@ require 'benchmark'
2
2
 
3
3
  module MonkeyMusic
4
4
  class Player
5
- attr_accessor :monkey, :level, :has_boost, :remaining_time
5
+ attr_accessor :monkey, :level, :has_boost, :remaining_time, :command_line_argument
6
6
 
7
7
  def initialize(file)
8
8
  @file = file
@@ -11,10 +11,13 @@ module MonkeyMusic
11
11
  @penalty = 0
12
12
  @moves = []
13
13
  @queries = []
14
+ @command_line_argument = ""
14
15
  end
15
16
 
16
17
  def init!
17
- IO.popen(@file, "r+") {|io| io.puts initial_output }
18
+ IO.popen([@file, @command_line_argument], "r+") do |io|
19
+ io.puts initial_output
20
+ end
18
21
  end
19
22
 
20
23
  def query!(turn)
@@ -26,8 +29,6 @@ module MonkeyMusic
26
29
  io.puts turn_output(turn)
27
30
  @remaining_time -= (Benchmark.realtime { @input = io.gets } * 1000).round
28
31
  parse!(@input) if @input
29
- io.puts response_to(@queries) unless @queries.empty?
30
- @queries = []
31
32
  end
32
33
  @penalty = 5 if @remaining_time < 0
33
34
  end
@@ -54,14 +55,17 @@ module MonkeyMusic
54
55
 
55
56
  def turn_output(turn)
56
57
  [ "TURN",
58
+ @monkey.id,
57
59
  turn,
58
60
  @monkey.remaining_capacity,
59
61
  @remaining_time,
62
+ response_to(@queries),
60
63
  @monkey.level.serialize,
61
64
  ].join("\n")
62
65
  end
63
66
 
64
67
  def parse!(s)
68
+ @queries = []
65
69
  @tokens = s.chomp.split(",")
66
70
  parse_next_token!
67
71
  end
@@ -8,15 +8,14 @@ module MonkeyMusic
8
8
  @@default_user = 'demo_user.yaml'
9
9
  @@default_player = 'demo_player'
10
10
 
11
- def initialize(arguments)
12
- @arguments = arguments
11
+ def initialize
13
12
  @opt_parser = OptionParser.new
14
13
  @players = []
15
14
  @delay = 1
16
15
  init_parser(@opt_parser)
17
16
  end
18
17
 
19
- def run
18
+ def run(ui_class)
20
19
  if ARGV[0] == "demo"
21
20
  puts "\tcreate ./#{@@default_level}"
22
21
  FileUtils.cp(
@@ -70,16 +69,9 @@ module MonkeyMusic
70
69
  # Load level
71
70
  level = Level.new(@players, user)
72
71
  level.load_from_file(@level_file)
73
- ## Initialize UI
74
- if browser_ui?
75
- print "Using browser UI. Press the enter key to start game. "
76
- gets
77
- puts "Starting game..."
78
- ui = UI::Browser.new(@delay)
79
- else
80
- ui = UI::Console.new(@delay)
81
- end
82
- ## Start game
72
+ # Initialize UI
73
+ ui = ui_class.new(@delay)
74
+ # Start game
83
75
  @game = Game.new(level, @players, ui)
84
76
  @game.start
85
77
  end
@@ -92,10 +84,6 @@ module MonkeyMusic
92
84
  (not @players.empty?)
93
85
  end
94
86
 
95
- def browser_ui?
96
- @browser_ui == true
97
- end
98
-
99
87
  def init_parser(opts)
100
88
  opts.banner = "Usage: monkeymusic [demo] [-p PLAYER_FILE -n PLAYER_NAME [-u USER_FILE] [-l LEVEL_FILE]]"
101
89
 
@@ -112,6 +100,12 @@ module MonkeyMusic
112
100
  @players[-1].monkey.name = name unless @players.empty?
113
101
  end
114
102
 
103
+ opts.on('-c',
104
+ '--command-line-argument ARG',
105
+ 'An argument that will be passed to the last entered program on every execution.') do |arg|
106
+ @players[-1].command_line_argument = arg
107
+ end
108
+
115
109
  opts.on('-l',
116
110
  '--level LEVEL',
117
111
  'The level to play.') do |file|
@@ -129,14 +123,9 @@ module MonkeyMusic
129
123
  @delay = delay
130
124
  end
131
125
 
132
- #opts.on('-b', '--browser-ui',
133
- #'View the game through the browser instead of the console.') do |password|
134
- #@browser_ui = true
135
- #end
136
-
137
126
  opts.on('-v', '--version',
138
127
  'Show the current version.') do |password|
139
- puts '0.0.11' # TODO: Find out how to extract version from GemSpec
128
+ puts '0.0.12' # TODO: Find out how to extract version from GemSpec
140
129
  exit
141
130
  end
142
131
 
@@ -1,11 +1,13 @@
1
1
  require 'em-websocket'
2
- require 'json'
3
2
 
4
3
  module MonkeyMusic::UI
5
4
  class Browser
6
5
 
7
6
  def initialize(delay = 1)
8
7
  @delay = delay
8
+ print "Using browser UI. Press the enter key to start game. "
9
+ gets
10
+ puts "Starting game..."
9
11
  puts "Initializing websockets..."
10
12
  Thread.new {
11
13
  EM.run {
@@ -22,11 +24,11 @@ module MonkeyMusic::UI
22
24
  end
23
25
  }
24
26
  }
25
- sleep 1 # TODO: Asynchronous acknowledge that ui is ready
27
+ sleep 1.5 # TODO: Asynchronous acknowledge that ui is ready
26
28
  puts "Websockets initialized!"
27
29
  end
28
30
 
29
- def update(level, query_time = 0)
31
+ def update(level, turn = 0, turn_time = 0)
30
32
  @ws.send(level.as_json) if @ws
31
33
  sleep 1
32
34
  end
@@ -14,7 +14,7 @@ module MonkeyMusic::UI
14
14
 
15
15
  def update(level, turn = 0, query_time = 0)
16
16
  # Clear screen
17
- puts "\e[H\e[2J"
17
+ #puts "\e[H\e[2J"
18
18
  # Level
19
19
  puts level.to_s
20
20
  # Score
@@ -71,11 +71,11 @@ module MonkeyMusic
71
71
  end
72
72
 
73
73
  def serialize
74
- @id
74
+ "M#{@id}"
75
75
  end
76
76
 
77
77
  def name
78
- @name || "monkey#{@id}"
78
+ @name || serialize
79
79
  end
80
80
 
81
81
  def to_json(options = {})
@@ -2,14 +2,14 @@ module MonkeyMusic
2
2
  class Track < Base
3
3
  attr_accessor :metadata
4
4
 
5
- def self.worth(n)
6
- Class.new Track do @worth = n end
5
+ def self.tier(n)
6
+ Class.new Track do @tier = n end
7
7
  end
8
8
 
9
9
  def self.from_user(user)
10
10
  track = Track.new
11
- track.metadata = if @worth
12
- user.recommend!(@worth) || user.recommendations.sample
11
+ track.metadata = if @tier
12
+ user.recommend!(@tier) || user.recommendations.sample
13
13
  else
14
14
  user.recommendations.sample
15
15
  end
@@ -35,7 +35,7 @@ module MonkeyMusic
35
35
  :y => @y,
36
36
  :type => self.class.name.split('::').last,
37
37
  :name => @metadata.name,
38
- :multiplier => @metadata.multiplier,
38
+ :tier => @metadata.tier,
39
39
  :value => @metadata.value,
40
40
  }.to_json
41
41
  end
@@ -9,14 +9,14 @@ module MonkeyMusic
9
9
  @recommendations = @remaining_recommendations = []
10
10
  end
11
11
 
12
- def recommend!(worth)
12
+ def recommend!(tier)
13
13
  index = @remaining_recommendations.index do |r|
14
- r.multiplier == worth
14
+ r.tier == tier
15
15
  end
16
16
  if index
17
17
  @remaining_recommendations.delete_at(index)
18
18
  else
19
- @recommendations.find { |r| r.multiplier == worth }
19
+ @recommendations.find { |r| r.tier == tier }
20
20
  end
21
21
  end
22
22
 
@@ -52,7 +52,7 @@ module MonkeyMusic
52
52
  # Create user
53
53
  user = User.new
54
54
  # Connect to libspotify
55
- Hallon.load_timeout = 0
55
+ #Hallon.load_timeout = 0
56
56
  session = Hallon::Session.initialize(IO.read(@spotify_appkey_file))
57
57
  session.login!(@spotify_account, @spotify_password)
58
58
  # Load toplists
@@ -72,15 +72,16 @@ module MonkeyMusic
72
72
  score_system.evaluate_user_recommendations!(user)
73
73
  # Dump and print the user
74
74
  File.open(@out_file, 'w') do |f|
75
- f.write(user.dump)
75
+ # Clean out all commas before writing
76
+ f.write(user.dump.gsub(',', ''))
76
77
  end
77
78
  puts "====="
78
79
  puts "DONE!"
79
80
  puts "====="
80
- #puts "Loaded tracks:"
81
- #user.recommendations.group_by(&:multiplier).sort.each do |k,v|
82
- #puts "#Multiplier #{k}:\t#{v.length}"
83
- #end
81
+ puts "Loaded tracks:"
82
+ user.recommendations.group_by(&:multiplier).sort.each do |k,v|
83
+ puts "#Multiplier #{k}:\t#{v.length}"
84
+ end
84
85
  exit
85
86
  end
86
87
  end
@@ -9,23 +9,23 @@ module MonkeyMusic::Generate
9
9
  end
10
10
 
11
11
  def evaluate!(track)
12
- multiplier = 0
12
+ tier = 0
13
13
  if @user.toplists[:top_tracks].any? {|t| t.name == track.name }
14
- multiplier = -1
14
+ tier = -1
15
15
  elsif @user.toplists[:disliked_artists].any? {|ar| ar.name == track.artist }
16
- multiplier = -2
16
+ tier = -2
17
17
  else
18
18
  if @user.toplists[:top_albums].any? {|al| al.name == track.album }
19
- multiplier += 1
19
+ tier += 1
20
20
  end
21
21
  if @user.toplists[:top_artists].any? {|ar| ar.name == track.artist }
22
- multiplier += 1
22
+ tier += 1
23
23
  end
24
24
  if @top_decade == decade_of(track.year)
25
- multiplier += 1
25
+ tier += 1
26
26
  end
27
27
  end
28
- track.set_value(multiplier, 4**multiplier.abs * sign(multiplier))
28
+ track.set_value(tier, 4**tier.abs * sign(tier))
29
29
  end
30
30
 
31
31
  private
data/users/demo_user.yaml CHANGED
@@ -960,19 +960,19 @@
960
960
  multiplier: 2
961
961
  value: 16
962
962
  - !ruby/object:MonkeyMusic::Metadata::Track
963
- name: Angel
963
+ name: Soothe My Soul
964
964
  artist: Depeche Mode
965
965
  album: Delta Machine
966
966
  year: 2013
967
- uri: spotify:track:24nDMmzJlHcDfF8iSXWFnA
967
+ uri: spotify:track:2AxI7waLrZSY9KkL3D2huk
968
968
  multiplier: 2
969
969
  value: 16
970
970
  - !ruby/object:MonkeyMusic::Metadata::Track
971
- name: Soothe My Soul
971
+ name: Angel
972
972
  artist: Depeche Mode
973
973
  album: Delta Machine
974
974
  year: 2013
975
- uri: spotify:track:2AxI7waLrZSY9KkL3D2huk
975
+ uri: spotify:track:24nDMmzJlHcDfF8iSXWFnA
976
976
  multiplier: 2
977
977
  value: 16
978
978
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -991,14 +991,6 @@
991
991
  uri: spotify:track:62nmAEHbcpxxwnwAlb1Z7a
992
992
  multiplier: 2
993
993
  value: 16
994
- - !ruby/object:MonkeyMusic::Metadata::Track
995
- name: Broken
996
- artist: Depeche Mode
997
- album: Delta Machine
998
- year: 2013
999
- uri: spotify:track:1Hm9pX5iwwS7jJLLPad9yJ
1000
- multiplier: 2
1001
- value: 16
1002
994
  - !ruby/object:MonkeyMusic::Metadata::Track
1003
995
  name: Just Can't Get Enough - Single Version;2006 Digital Remaster
1004
996
  artist: Depeche Mode
@@ -1007,6 +999,14 @@
1007
999
  uri: spotify:track:2FpyKkCFIfqmp6eQx4Rn1V
1008
1000
  multiplier: 2
1009
1001
  value: 16
1002
+ - !ruby/object:MonkeyMusic::Metadata::Track
1003
+ name: Broken
1004
+ artist: Depeche Mode
1005
+ album: Delta Machine
1006
+ year: 2013
1007
+ uri: spotify:track:1Hm9pX5iwwS7jJLLPad9yJ
1008
+ multiplier: 2
1009
+ value: 16
1010
1010
  - !ruby/object:MonkeyMusic::Metadata::Track
1011
1011
  name: My Little Universe
1012
1012
  artist: Depeche Mode
@@ -1023,14 +1023,6 @@
1023
1023
  uri: spotify:track:6VzfdkKU7J6ideJPwVJnAN
1024
1024
  multiplier: 2
1025
1025
  value: 16
1026
- - !ruby/object:MonkeyMusic::Metadata::Track
1027
- name: Electricity
1028
- artist: Orchestral Manoeuvres In The Dark
1029
- album: The OMD Singles
1030
- year: 1998
1031
- uri: spotify:track:3vy2QK19RCnS4Egaq9fGhy
1032
- multiplier: 1
1033
- value: 4
1034
1026
  - !ruby/object:MonkeyMusic::Metadata::Track
1035
1027
  name: Enola Gay - 2003 - Remaster
1036
1028
  artist: Orchestral Manoeuvres In The Dark
@@ -1039,6 +1031,14 @@
1039
1031
  uri: spotify:track:7tEDqanTZ8NWxV7zzqth3m
1040
1032
  multiplier: -1
1041
1033
  value: -4
1034
+ - !ruby/object:MonkeyMusic::Metadata::Track
1035
+ name: Electricity
1036
+ artist: Orchestral Manoeuvres In The Dark
1037
+ album: The OMD Singles
1038
+ year: 1998
1039
+ uri: spotify:track:3vy2QK19RCnS4Egaq9fGhy
1040
+ multiplier: 1
1041
+ value: 4
1042
1042
  - !ruby/object:MonkeyMusic::Metadata::Track
1043
1043
  name: Enola Gay
1044
1044
  artist: Orchestral Manoeuvres In The Dark
@@ -1064,19 +1064,19 @@
1064
1064
  multiplier: 1
1065
1065
  value: 4
1066
1066
  - !ruby/object:MonkeyMusic::Metadata::Track
1067
- name: Walking On The Milky Way
1067
+ name: Souvenir
1068
1068
  artist: Orchestral Manoeuvres In The Dark
1069
1069
  album: The OMD Singles
1070
1070
  year: 1998
1071
- uri: spotify:track:5rN6eummWzwLTQxXZcyeCY
1071
+ uri: spotify:track:1H6dcVdpMiMIydKdykY6W0
1072
1072
  multiplier: 1
1073
1073
  value: 4
1074
1074
  - !ruby/object:MonkeyMusic::Metadata::Track
1075
- name: Souvenir
1075
+ name: Walking On The Milky Way
1076
1076
  artist: Orchestral Manoeuvres In The Dark
1077
1077
  album: The OMD Singles
1078
1078
  year: 1998
1079
- uri: spotify:track:1H6dcVdpMiMIydKdykY6W0
1079
+ uri: spotify:track:5rN6eummWzwLTQxXZcyeCY
1080
1080
  multiplier: 1
1081
1081
  value: 4
1082
1082
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1159,14 +1159,6 @@
1159
1159
  uri: spotify:track:7t2DtwDaxiuZDulbXsWrnO
1160
1160
  multiplier: 2
1161
1161
  value: 16
1162
- - !ruby/object:MonkeyMusic::Metadata::Track
1163
- name: Love Action (I Believe in Love)
1164
- artist: The Human League
1165
- album: The Best Of
1166
- year: 1998
1167
- uri: spotify:track:7ttwrfe807K63aXv3VSKU1
1168
- multiplier: 1
1169
- value: 4
1170
1162
  - !ruby/object:MonkeyMusic::Metadata::Track
1171
1163
  name: Mirror Man - 2003 - Remaster
1172
1164
  artist: The Human League
@@ -1175,6 +1167,14 @@
1175
1167
  uri: spotify:track:3pI8laGp6QKWVfPfuQIhy3
1176
1168
  multiplier: 2
1177
1169
  value: 16
1170
+ - !ruby/object:MonkeyMusic::Metadata::Track
1171
+ name: Love Action (I Believe in Love)
1172
+ artist: The Human League
1173
+ album: The Best Of
1174
+ year: 1998
1175
+ uri: spotify:track:7ttwrfe807K63aXv3VSKU1
1176
+ multiplier: 1
1177
+ value: 4
1178
1178
  - !ruby/object:MonkeyMusic::Metadata::Track
1179
1179
  name: Bizarre Love Triangle
1180
1180
  artist: New Order
@@ -1191,14 +1191,6 @@
1191
1191
  uri: spotify:track:6tzeMSH4TRGBTzdNvbF5hr
1192
1192
  multiplier: 1
1193
1193
  value: 4
1194
- - !ruby/object:MonkeyMusic::Metadata::Track
1195
- name: Age Of Consent
1196
- artist: New Order
1197
- album: Power, Corruption & Lies [Collector's Edition]
1198
- year: 2008
1199
- uri: spotify:track:1iKCbLGTa0uNJ3AZhfoFOL
1200
- multiplier: 2
1201
- value: 16
1202
1194
  - !ruby/object:MonkeyMusic::Metadata::Track
1203
1195
  name: Blue Monday [88]
1204
1196
  artist: New Order
@@ -1207,6 +1199,14 @@
1207
1199
  uri: spotify:track:31MOjWj3CT3dCQsMV2b8Wu
1208
1200
  multiplier: 2
1209
1201
  value: 16
1202
+ - !ruby/object:MonkeyMusic::Metadata::Track
1203
+ name: Age Of Consent
1204
+ artist: New Order
1205
+ album: Power Corruption & Lies [Collector's Edition]
1206
+ year: 2008
1207
+ uri: spotify:track:1iKCbLGTa0uNJ3AZhfoFOL
1208
+ multiplier: 2
1209
+ value: 16
1210
1210
  - !ruby/object:MonkeyMusic::Metadata::Track
1211
1211
  name: True Faith - '94
1212
1212
  artist: New Order
@@ -1231,14 +1231,6 @@
1231
1231
  uri: spotify:track:0NvJy5gPR591Qh2z22EAak
1232
1232
  multiplier: 2
1233
1233
  value: 16
1234
- - !ruby/object:MonkeyMusic::Metadata::Track
1235
- name: Temptation [7" Version]
1236
- artist: New Order
1237
- album: Movement [Collector's Edition]
1238
- year: 2008
1239
- uri: spotify:track:6aydUK6llaiRoKQyQTDNPY
1240
- multiplier: 2
1241
- value: 16
1242
1234
  - !ruby/object:MonkeyMusic::Metadata::Track
1243
1235
  name: Ceremony
1244
1236
  artist: New Order
@@ -1255,6 +1247,14 @@
1255
1247
  uri: spotify:track:58IihaOsYb2riCPEVabDol
1256
1248
  multiplier: 1
1257
1249
  value: 4
1250
+ - !ruby/object:MonkeyMusic::Metadata::Track
1251
+ name: Temptation [7" Version]
1252
+ artist: New Order
1253
+ album: Movement [Collector's Edition]
1254
+ year: 2008
1255
+ uri: spotify:track:6aydUK6llaiRoKQyQTDNPY
1256
+ multiplier: 2
1257
+ value: 16
1258
1258
  - !ruby/object:MonkeyMusic::Metadata::Track
1259
1259
  name: Such Great Heights
1260
1260
  artist: The Postal Service
@@ -1400,19 +1400,19 @@
1400
1400
  multiplier: 2
1401
1401
  value: 16
1402
1402
  - !ruby/object:MonkeyMusic::Metadata::Track
1403
- name: Prologue - 2009 - Remaster
1403
+ name: The Man Machine - 2009 Digital Remaster
1404
1404
  artist: Kraftwerk
1405
- album: Tour De France - 2009 Digital Remaster
1405
+ album: The Man Machine - 2009 Digital Remaster
1406
1406
  year: 2009
1407
- uri: spotify:track:5bRcU0Jo1gyCBOsSln1War
1407
+ uri: spotify:track:4rbt9xJMIYwjTyMUYSvEL2
1408
1408
  multiplier: 2
1409
1409
  value: 16
1410
1410
  - !ruby/object:MonkeyMusic::Metadata::Track
1411
- name: The Man Machine - 2009 Digital Remaster
1411
+ name: The Robots
1412
1412
  artist: Kraftwerk
1413
- album: The Man Machine - 2009 Digital Remaster
1413
+ album: The Mix (2009 Digital Remaster)
1414
1414
  year: 2009
1415
- uri: spotify:track:4rbt9xJMIYwjTyMUYSvEL2
1415
+ uri: spotify:track:2Dx4OYlS0zhjSm0z43midb
1416
1416
  multiplier: 2
1417
1417
  value: 16
1418
1418
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1472,19 +1472,19 @@
1472
1472
  multiplier: 2
1473
1473
  value: 16
1474
1474
  - !ruby/object:MonkeyMusic::Metadata::Track
1475
- name: Dead Sun Rising (Sonoio Remix) - Sonoio Remix
1475
+ name: Music For Chameleons
1476
1476
  artist: Gary Numan
1477
- album: Dead Moon Falling
1478
- year: 2013
1479
- uri: spotify:track:5t8sVFvTOpR8rl8u4dcFcW
1477
+ album: I Assassin
1478
+ year: 1982
1479
+ uri: spotify:track:4fqRCykZ9uVe4PNSjWIR2f
1480
1480
  multiplier: 1
1481
1481
  value: 4
1482
1482
  - !ruby/object:MonkeyMusic::Metadata::Track
1483
- name: Music For Chameleons
1483
+ name: Dead Sun Rising (Sonoio Remix) - Sonoio Remix
1484
1484
  artist: Gary Numan
1485
- album: I, Assassin
1486
- year: 1982
1487
- uri: spotify:track:4fqRCykZ9uVe4PNSjWIR2f
1485
+ album: Dead Moon Falling
1486
+ year: 2013
1487
+ uri: spotify:track:5t8sVFvTOpR8rl8u4dcFcW
1488
1488
  multiplier: 1
1489
1489
  value: 4
1490
1490
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1536,19 +1536,19 @@
1536
1536
  multiplier: 2
1537
1537
  value: 16
1538
1538
  - !ruby/object:MonkeyMusic::Metadata::Track
1539
- name: The Youth
1539
+ name: Pieces of What
1540
1540
  artist: MGMT
1541
1541
  album: Oracular Spectacular
1542
1542
  year: 2007
1543
- uri: spotify:track:5nv854ey1k43KaZ0kHmE4Z
1543
+ uri: spotify:track:6wxDu7ISgm5nppPMea4W7D
1544
1544
  multiplier: 2
1545
1545
  value: 16
1546
1546
  - !ruby/object:MonkeyMusic::Metadata::Track
1547
- name: Pieces of What
1547
+ name: The Youth
1548
1548
  artist: MGMT
1549
1549
  album: Oracular Spectacular
1550
1550
  year: 2007
1551
- uri: spotify:track:6wxDu7ISgm5nppPMea4W7D
1551
+ uri: spotify:track:5nv854ey1k43KaZ0kHmE4Z
1552
1552
  multiplier: 2
1553
1553
  value: 16
1554
1554
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1560,7 +1560,7 @@
1560
1560
  multiplier: 1
1561
1561
  value: 4
1562
1562
  - !ruby/object:MonkeyMusic::Metadata::Track
1563
- name: Of Moons, Birds & Monsters
1563
+ name: Of Moons Birds & Monsters
1564
1564
  artist: MGMT
1565
1565
  album: Oracular Spectacular
1566
1566
  year: 2007
@@ -1578,19 +1578,11 @@
1578
1578
  - !ruby/object:MonkeyMusic::Metadata::Track
1579
1579
  name: Midnight City
1580
1580
  artist: M83
1581
- album: Hurry Up, We're Dreaming
1581
+ album: Hurry Up We're Dreaming
1582
1582
  year: 2011
1583
1583
  uri: spotify:track:4kO7mrAPfqIrsKwUOK5BFx
1584
1584
  multiplier: 1
1585
1585
  value: 4
1586
- - !ruby/object:MonkeyMusic::Metadata::Track
1587
- name: Oblivion (feat. Susanne Sundfør)
1588
- artist: M83
1589
- album: Oblivion (feat. Susanne Sundfør)
1590
- year: 2013
1591
- uri: spotify:track:66fKIbn90iaQZ0jEuurozt
1592
- multiplier: 1
1593
- value: 4
1594
1586
  - !ruby/object:MonkeyMusic::Metadata::Track
1595
1587
  name: We Own The Sky
1596
1588
  artist: M83
@@ -1600,19 +1592,19 @@
1600
1592
  multiplier: 2
1601
1593
  value: 16
1602
1594
  - !ruby/object:MonkeyMusic::Metadata::Track
1603
- name: Jack's Dream
1595
+ name: Oblivion (feat. Susanne Sundfør)
1604
1596
  artist: M83
1605
- album: Oblivion - Original Motion Picture Soundtrack
1597
+ album: Oblivion (feat. Susanne Sundfør)
1606
1598
  year: 2013
1607
- uri: spotify:track:2OsVwe7SubQyge9LJFTh0Y
1599
+ uri: spotify:track:66fKIbn90iaQZ0jEuurozt
1608
1600
  multiplier: 1
1609
1601
  value: 4
1610
1602
  - !ruby/object:MonkeyMusic::Metadata::Track
1611
- name: Waking Up
1603
+ name: Jack's Dream
1612
1604
  artist: M83
1613
1605
  album: Oblivion - Original Motion Picture Soundtrack
1614
1606
  year: 2013
1615
- uri: spotify:track:7fco9ocFesu9I09AMmpWkW
1607
+ uri: spotify:track:2OsVwe7SubQyge9LJFTh0Y
1616
1608
  multiplier: 1
1617
1609
  value: 4
1618
1610
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1623,6 +1615,14 @@
1623
1615
  uri: spotify:track:5pCTXoSYslXKP2D21e3ZJK
1624
1616
  multiplier: 2
1625
1617
  value: 16
1618
+ - !ruby/object:MonkeyMusic::Metadata::Track
1619
+ name: Waking Up
1620
+ artist: M83
1621
+ album: Oblivion - Original Motion Picture Soundtrack
1622
+ year: 2013
1623
+ uri: spotify:track:7fco9ocFesu9I09AMmpWkW
1624
+ multiplier: 1
1625
+ value: 4
1626
1626
  - !ruby/object:MonkeyMusic::Metadata::Track
1627
1627
  name: Midnight City [Eric Prydz Private Remix] - Eric Prydz Private Remix
1628
1628
  artist: M83
@@ -1648,11 +1648,11 @@
1648
1648
  multiplier: 1
1649
1649
  value: 4
1650
1650
  - !ruby/object:MonkeyMusic::Metadata::Track
1651
- name: Odyssey Rescue
1651
+ name: Reunion
1652
1652
  artist: M83
1653
- album: Oblivion - Original Motion Picture Soundtrack
1654
- year: 2013
1655
- uri: spotify:track:1E3O3g7xZsFAGyK4g7ott4
1653
+ album: Hurry Up We're Dreaming
1654
+ year: 2011
1655
+ uri: spotify:track:4dNCg774LzE2kmtbMOLdP7
1656
1656
  multiplier: 1
1657
1657
  value: 4
1658
1658
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1695,14 +1695,6 @@
1695
1695
  uri: spotify:track:0wokCRaKD0zPNhMRXAgVsr
1696
1696
  multiplier: 1
1697
1697
  value: 4
1698
- - !ruby/object:MonkeyMusic::Metadata::Track
1699
- name: Girls on Film
1700
- artist: Duran Duran
1701
- album: Duran Duran
1702
- year: 1993
1703
- uri: spotify:track:5KE4iIOeucoLMnkF6NEwKM
1704
- multiplier: 1
1705
- value: 4
1706
1698
  - !ruby/object:MonkeyMusic::Metadata::Track
1707
1699
  name: The Wild Boys
1708
1700
  artist: Duran Duran
@@ -1712,11 +1704,11 @@
1712
1704
  multiplier: 1
1713
1705
  value: 4
1714
1706
  - !ruby/object:MonkeyMusic::Metadata::Track
1715
- name: The Reflex
1707
+ name: Girls on Film
1716
1708
  artist: Duran Duran
1717
- album: Greatest
1718
- year: 1998
1719
- uri: spotify:track:0OsWMTxDjtpmJjX43113oq
1709
+ album: Duran Duran
1710
+ year: 1993
1711
+ uri: spotify:track:5KE4iIOeucoLMnkF6NEwKM
1720
1712
  multiplier: 1
1721
1713
  value: 4
1722
1714
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1727,6 +1719,14 @@
1727
1719
  uri: spotify:track:1stJclD9IGUbxtUnl8CzG3
1728
1720
  multiplier: 1
1729
1721
  value: 4
1722
+ - !ruby/object:MonkeyMusic::Metadata::Track
1723
+ name: The Reflex
1724
+ artist: Duran Duran
1725
+ album: Greatest
1726
+ year: 1998
1727
+ uri: spotify:track:0OsWMTxDjtpmJjX43113oq
1728
+ multiplier: 1
1729
+ value: 4
1730
1730
  - !ruby/object:MonkeyMusic::Metadata::Track
1731
1731
  name: Save A Prayer - 2009 Digital Remaster
1732
1732
  artist: Duran Duran
@@ -1760,7 +1760,7 @@
1760
1760
  multiplier: -2
1761
1761
  value: -16
1762
1762
  - !ruby/object:MonkeyMusic::Metadata::Track
1763
- name: Die, Die My Darling - Fox Studio 1983
1763
+ name: Die Die My Darling - Fox Studio 1983
1764
1764
  artist: Misfits
1765
1765
  album: Collection
1766
1766
  year: 1986
@@ -1775,14 +1775,6 @@
1775
1775
  uri: spotify:track:0PTP53h7PvqEMeGyGClkOk
1776
1776
  multiplier: -2
1777
1777
  value: -16
1778
- - !ruby/object:MonkeyMusic::Metadata::Track
1779
- name: Scream
1780
- artist: Misfits
1781
- album: Famous Monsters
1782
- year: 1999
1783
- uri: spotify:track:2uqQXl3CWniLE0Uhfb7izu
1784
- multiplier: -2
1785
- value: -16
1786
1778
  - !ruby/object:MonkeyMusic::Metadata::Track
1787
1779
  name: Saturday Night
1788
1780
  artist: Misfits
@@ -1792,11 +1784,11 @@
1792
1784
  multiplier: -2
1793
1785
  value: -16
1794
1786
  - !ruby/object:MonkeyMusic::Metadata::Track
1795
- name: Dig Up Her Bones
1787
+ name: Scream
1796
1788
  artist: Misfits
1797
- album: American Psycho
1798
- year: 1997
1799
- uri: spotify:track:16MPZDpM5JTtIBs3pOMSWx
1789
+ album: Famous Monsters
1790
+ year: 1999
1791
+ uri: spotify:track:2uqQXl3CWniLE0Uhfb7izu
1800
1792
  multiplier: -2
1801
1793
  value: -16
1802
1794
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -1807,6 +1799,14 @@
1807
1799
  uri: spotify:track:38T3oJ4ykhLtoHFjhpjOoL
1808
1800
  multiplier: -2
1809
1801
  value: -16
1802
+ - !ruby/object:MonkeyMusic::Metadata::Track
1803
+ name: Dig Up Her Bones
1804
+ artist: Misfits
1805
+ album: American Psycho
1806
+ year: 1997
1807
+ uri: spotify:track:16MPZDpM5JTtIBs3pOMSWx
1808
+ multiplier: -2
1809
+ value: -16
1810
1810
  - !ruby/object:MonkeyMusic::Metadata::Track
1811
1811
  name: We Are 138 - 1995 Digital Remaster
1812
1812
  artist: Misfits
@@ -1855,6 +1855,22 @@
1855
1855
  uri: spotify:track:2JcUB7LyS4MDI5fvSWU6se
1856
1856
  multiplier: -2
1857
1857
  value: -16
1858
+ - !ruby/object:MonkeyMusic::Metadata::Track
1859
+ name: She Talks to Rainbows
1860
+ artist: The Ramones
1861
+ album: Adios Amigos
1862
+ year: 1995
1863
+ uri: spotify:track:0GVcm9IeiuWWOQk3yXI7yx
1864
+ multiplier: -2
1865
+ value: -16
1866
+ - !ruby/object:MonkeyMusic::Metadata::Track
1867
+ name: Have You Ever Seen The Rain
1868
+ artist: The Ramones
1869
+ album: Acid Eaters
1870
+ year: 1993
1871
+ uri: spotify:track:4Ri7GhJiAHy9dCYnxxWuzM
1872
+ multiplier: -2
1873
+ value: -16
1858
1874
  - !ruby/object:MonkeyMusic::Metadata::Track
1859
1875
  name: Merry Christmas (I Don't Want to Fight Tonight)
1860
1876
  artist: The Ramones
@@ -1871,14 +1887,6 @@
1871
1887
  uri: spotify:track:5KAII1Bt2SgySRfPByKgcJ
1872
1888
  multiplier: -2
1873
1889
  value: -16
1874
- - !ruby/object:MonkeyMusic::Metadata::Track
1875
- name: She Talks to Rainbows
1876
- artist: The Ramones
1877
- album: Adios Amigos
1878
- year: 1995
1879
- uri: spotify:track:0GVcm9IeiuWWOQk3yXI7yx
1880
- multiplier: -2
1881
- value: -16
1882
1890
  - !ruby/object:MonkeyMusic::Metadata::Track
1883
1891
  name: The Kkk Took My Baby Away - Live
1884
1892
  artist: The Ramones
@@ -1887,14 +1895,6 @@
1887
1895
  uri: spotify:track:29KP3ieVXuw7rahzuK422u
1888
1896
  multiplier: -2
1889
1897
  value: -16
1890
- - !ruby/object:MonkeyMusic::Metadata::Track
1891
- name: Have You Ever Seen The Rain
1892
- artist: The Ramones
1893
- album: Acid Eaters
1894
- year: 1993
1895
- uri: spotify:track:4Ri7GhJiAHy9dCYnxxWuzM
1896
- multiplier: -2
1897
- value: -16
1898
1898
  - !ruby/object:MonkeyMusic::Metadata::Track
1899
1899
  name: 21st Century
1900
1900
  artist: Bad Religion
@@ -1911,6 +1911,14 @@
1911
1911
  uri: spotify:track:5VQg5YHgCAjJTIBtEZHacQ
1912
1912
  multiplier: -2
1913
1913
  value: -16
1914
+ - !ruby/object:MonkeyMusic::Metadata::Track
1915
+ name: Los Angeles Is Burning
1916
+ artist: Bad Religion
1917
+ album: The Empire Strikes First
1918
+ year: 2004
1919
+ uri: spotify:track:27KrzUfX8fHDEYyvmZdrqa
1920
+ multiplier: -2
1921
+ value: -16
1914
1922
  - !ruby/object:MonkeyMusic::Metadata::Track
1915
1923
  name: True North
1916
1924
  artist: Bad Religion
@@ -1927,22 +1935,6 @@
1927
1935
  uri: spotify:track:3qriuhIxVQXmdHRIIzP4Fe
1928
1936
  multiplier: -2
1929
1937
  value: -16
1930
- - !ruby/object:MonkeyMusic::Metadata::Track
1931
- name: Los Angeles Is Burning
1932
- artist: Bad Religion
1933
- album: The Empire Strikes First
1934
- year: 2004
1935
- uri: spotify:track:27KrzUfX8fHDEYyvmZdrqa
1936
- multiplier: -2
1937
- value: -16
1938
- - !ruby/object:MonkeyMusic::Metadata::Track
1939
- name: Past is Dead
1940
- artist: Bad Religion
1941
- album: True North
1942
- year: 2013
1943
- uri: spotify:track:0yC8t1Rd1RbscJAZI4n8aD
1944
- multiplier: -2
1945
- value: -16
1946
1938
  - !ruby/object:MonkeyMusic::Metadata::Track
1947
1939
  name: Punk Rock Song
1948
1940
  artist: Bad Religion
@@ -1951,6 +1943,14 @@
1951
1943
  uri: spotify:track:3cAeRRvExh8FwzWPQqMhsS
1952
1944
  multiplier: -2
1953
1945
  value: -16
1946
+ - !ruby/object:MonkeyMusic::Metadata::Track
1947
+ name: You
1948
+ artist: Bad Religion
1949
+ album: Punk-O-Rama 3
1950
+ year: 1998
1951
+ uri: spotify:track:2taLSL36n5j5BxOqBAILMN
1952
+ multiplier: -2
1953
+ value: -16
1954
1954
  - !ruby/object:MonkeyMusic::Metadata::Track
1955
1955
  name: I Want to Conquer the World
1956
1956
  artist: Bad Religion
@@ -1960,19 +1960,19 @@
1960
1960
  multiplier: -2
1961
1961
  value: -16
1962
1962
  - !ruby/object:MonkeyMusic::Metadata::Track
1963
- name: Robin Hood in Reverse
1963
+ name: Past is Dead
1964
1964
  artist: Bad Religion
1965
1965
  album: True North
1966
1966
  year: 2013
1967
- uri: spotify:track:6nWNZQeEMgkM0al5pmxazN
1967
+ uri: spotify:track:0yC8t1Rd1RbscJAZI4n8aD
1968
1968
  multiplier: -2
1969
1969
  value: -16
1970
1970
  - !ruby/object:MonkeyMusic::Metadata::Track
1971
- name: You
1971
+ name: Sorrow
1972
1972
  artist: Bad Religion
1973
- album: Punk-O-Rama 3
1974
- year: 1998
1975
- uri: spotify:track:2taLSL36n5j5BxOqBAILMN
1973
+ album: The Process Of Belief
1974
+ year: 2002
1975
+ uri: spotify:track:2ccdGN0u41iaveyQeae9Iy
1976
1976
  multiplier: -2
1977
1977
  value: -16
1978
1978
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -2008,11 +2008,11 @@
2008
2008
  multiplier: -2
2009
2009
  value: -16
2010
2010
  - !ruby/object:MonkeyMusic::Metadata::Track
2011
- name: Bankrobber
2011
+ name: Should I Stay Or Should I Go
2012
2012
  artist: The Clash
2013
- album: The Story Of The Clash Volume 1
2014
- year: 1988
2015
- uri: spotify:track:326OKIhvo9ZJBcjGah2e1E
2013
+ album: The Essential Clash
2014
+ year: 2001
2015
+ uri: spotify:track:7EwcNyYIMehlWfjk0yprbj
2016
2016
  multiplier: -2
2017
2017
  value: -16
2018
2018
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -2024,11 +2024,11 @@
2024
2024
  multiplier: -2
2025
2025
  value: -16
2026
2026
  - !ruby/object:MonkeyMusic::Metadata::Track
2027
- name: Should I Stay Or Should I Go
2027
+ name: Bankrobber
2028
2028
  artist: The Clash
2029
- album: The Essential Clash
2030
- year: 2001
2031
- uri: spotify:track:7EwcNyYIMehlWfjk0yprbj
2029
+ album: The Story Of The Clash Volume 1
2030
+ year: 1988
2031
+ uri: spotify:track:326OKIhvo9ZJBcjGah2e1E
2032
2032
  multiplier: -2
2033
2033
  value: -16
2034
2034
  - !ruby/object:MonkeyMusic::Metadata::Track
@@ -2058,7 +2058,7 @@
2058
2058
  - !ruby/object:MonkeyMusic::Metadata::Track
2059
2059
  name: God Save The Queen
2060
2060
  artist: Sex Pistols
2061
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2061
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2062
2062
  year: 2012
2063
2063
  uri: spotify:track:2mHchPRtQWet3iIS3jANr1
2064
2064
  multiplier: -2
@@ -2074,7 +2074,7 @@
2074
2074
  - !ruby/object:MonkeyMusic::Metadata::Track
2075
2075
  name: Anarchy In The UK
2076
2076
  artist: Sex Pistols
2077
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2077
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2078
2078
  year: 2012
2079
2079
  uri: spotify:track:5moTxUGPZXgGmosl4rIELm
2080
2080
  multiplier: -2
@@ -2098,7 +2098,7 @@
2098
2098
  - !ruby/object:MonkeyMusic::Metadata::Track
2099
2099
  name: Holidays In The Sun
2100
2100
  artist: Sex Pistols
2101
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2101
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2102
2102
  year: 2012
2103
2103
  uri: spotify:track:4e3TIXJcX3oQJnLup57I0r
2104
2104
  multiplier: -2
@@ -2106,7 +2106,7 @@
2106
2106
  - !ruby/object:MonkeyMusic::Metadata::Track
2107
2107
  name: Bodies
2108
2108
  artist: Sex Pistols
2109
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2109
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2110
2110
  year: 2012
2111
2111
  uri: spotify:track:4kU7cIlf4FDrWrs99AcaWS
2112
2112
  multiplier: -2
@@ -2122,7 +2122,7 @@
2122
2122
  - !ruby/object:MonkeyMusic::Metadata::Track
2123
2123
  name: No Feelings
2124
2124
  artist: Sex Pistols
2125
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2125
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2126
2126
  year: 2012
2127
2127
  uri: spotify:track:5Pl46yccvPXXcIiXps3qHl
2128
2128
  multiplier: -2
@@ -2130,7 +2130,7 @@
2130
2130
  - !ruby/object:MonkeyMusic::Metadata::Track
2131
2131
  name: Problems
2132
2132
  artist: Sex Pistols
2133
- album: Never Mind The Bollocks, Here’s The Sex Pistols
2133
+ album: Never Mind The Bollocks Here’s The Sex Pistols
2134
2134
  year: 2012
2135
2135
  uri: spotify:track:5dI4YIBXUmat0Kp6N1SjuV
2136
2136
  multiplier: -2