monkeymusic 0.0.4 → 0.0.5
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.
- checksums.yaml +8 -8
- data/bin/monkeymusic-generate +2 -2
- data/levels/bomberman2.rb +13 -15
- data/levels/demolevel.rb +23 -0
- data/levels/testlevel.rb +7 -6
- data/lib/monkey_music/game.rb +14 -10
- data/lib/monkey_music/level.rb +6 -3
- data/lib/monkey_music/level_loader.rb +5 -4
- data/lib/monkey_music/metadata/album.rb +15 -0
- data/lib/monkey_music/metadata/artist.rb +13 -0
- data/lib/monkey_music/metadata/track.rb +22 -0
- data/lib/monkey_music/player.rb +88 -20
- data/lib/monkey_music/runner.rb +8 -8
- data/lib/monkey_music/ui/{browser_ui.rb → browser.rb} +6 -7
- data/lib/monkey_music/ui/{console_ui.rb → console.rb} +5 -4
- data/lib/monkey_music/units/track.rb +17 -7
- data/lib/monkey_music/units/user.rb +3 -5
- data/lib/monkey_music.rb +6 -2
- data/lib/monkey_music_generate/recommendation_loader.rb +25 -64
- data/lib/monkey_music_generate/runner.rb +100 -0
- data/lib/monkey_music_generate/score_system.rb +24 -9
- data/lib/monkey_music_generate/toplist_loader.rb +41 -25
- data/lib/monkey_music_generate.rb +1 -1
- data/users/synth.rb +8 -4
- data/users/synth.yaml +846 -1335
- metadata +9 -5
- data/lib/monkey_music_generate/generator.rb +0 -98
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monkeymusic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Soderlund
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -34,7 +34,7 @@ files:
|
|
34
34
|
- lib/monkey_music_generate.rb
|
35
35
|
- lib/monkey_music_generate/recommendation_loader.rb
|
36
36
|
- lib/monkey_music_generate/toplist_loader.rb
|
37
|
-
- lib/monkey_music_generate/
|
37
|
+
- lib/monkey_music_generate/runner.rb
|
38
38
|
- lib/monkey_music_generate/score_system.rb
|
39
39
|
- lib/monkey_music.rb
|
40
40
|
- lib/monkey_music/level.rb
|
@@ -45,10 +45,13 @@ files:
|
|
45
45
|
- lib/monkey_music/units/user.rb
|
46
46
|
- lib/monkey_music/game.rb
|
47
47
|
- lib/monkey_music/runner.rb
|
48
|
+
- lib/monkey_music/metadata/track.rb
|
49
|
+
- lib/monkey_music/metadata/artist.rb
|
50
|
+
- lib/monkey_music/metadata/album.rb
|
48
51
|
- lib/monkey_music/player.rb
|
49
52
|
- lib/monkey_music/level_loader.rb
|
50
|
-
- lib/monkey_music/ui/
|
51
|
-
- lib/monkey_music/ui/
|
53
|
+
- lib/monkey_music/ui/browser.rb
|
54
|
+
- lib/monkey_music/ui/console.rb
|
52
55
|
- levels/testmaze_30.rb
|
53
56
|
- levels/bomberman2.rb
|
54
57
|
- levels/the_last_crusade.rb
|
@@ -56,6 +59,7 @@ files:
|
|
56
59
|
- levels/testmaze_10.rb
|
57
60
|
- levels/testlevel_maze.rb
|
58
61
|
- levels/travelling_salesmonkeys.rb
|
62
|
+
- levels/demolevel.rb
|
59
63
|
- levels/testmaze_20.rb
|
60
64
|
- bin/monkeymusic-generate
|
61
65
|
- bin/monkeymusic
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'optparse'
|
2
|
-
require 'hallon'
|
3
|
-
|
4
|
-
module MonkeyMusic
|
5
|
-
class Generator
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
OptionParser.new do |opts|
|
9
|
-
opts.banner = 'Usage: monkeymusic-generate [options]'
|
10
|
-
|
11
|
-
opts.on('-g',
|
12
|
-
'--generate TOPLIST_FILE',
|
13
|
-
'Generate a user from a toplist file.') do |user|
|
14
|
-
@toplist_file = File.join(Dir.getwd, user)
|
15
|
-
end
|
16
|
-
|
17
|
-
opts.on('-o',
|
18
|
-
'--out OUT_FILE',
|
19
|
-
'The file to dump a generated user to.') do |file|
|
20
|
-
@out_file = File.join(Dir.getwd, file)
|
21
|
-
end
|
22
|
-
|
23
|
-
opts.on('-k',
|
24
|
-
'--app-key KEY',
|
25
|
-
'Path to libspotify application key.') do |key|
|
26
|
-
@spotify_appkey_file = File.join(Dir.getwd, key)
|
27
|
-
end
|
28
|
-
|
29
|
-
opts.on('-a',
|
30
|
-
'--account ACCOUNT',
|
31
|
-
'Username for a Spotify premium account.') do |account|
|
32
|
-
@spotify_account = account
|
33
|
-
end
|
34
|
-
|
35
|
-
opts.on('-w', '--password PASSWORD',
|
36
|
-
'Password for a Spotify premium account.') do |password|
|
37
|
-
@spotify_password = password
|
38
|
-
end
|
39
|
-
|
40
|
-
opts.on_tail('-h',
|
41
|
-
'--help',
|
42
|
-
'Show this message.') do
|
43
|
-
puts opts
|
44
|
-
exit
|
45
|
-
end
|
46
|
-
end.parse!
|
47
|
-
end
|
48
|
-
|
49
|
-
def run
|
50
|
-
if generate_user?
|
51
|
-
# Create user
|
52
|
-
user = User.new
|
53
|
-
# Connect to libspotify
|
54
|
-
Hallon.load_timeout = 0
|
55
|
-
session = Hallon::Session.initialize(IO.read(@spotify_appkey_file))
|
56
|
-
session.login!(@spotify_account, @spotify_password)
|
57
|
-
# Load toplists
|
58
|
-
puts "Loading toplists from #{@toplist_file}..."
|
59
|
-
toplist_loader = ToplistLoader.new(@toplist_file)
|
60
|
-
toplist_loader.load_for_user!(user)
|
61
|
-
# Generate recommendations
|
62
|
-
puts "Loading recommendations..."
|
63
|
-
loaded_toplists = toplist_loader.loaded_toplists
|
64
|
-
recommendation_loader = RecommendationLoader.new(loaded_toplists)
|
65
|
-
recommendation_loader.load_for_user!(user)
|
66
|
-
# Disconnect from libspotify
|
67
|
-
session.logout!
|
68
|
-
# Evaluate recommendations
|
69
|
-
puts "Evaluating recommendations..."
|
70
|
-
score_system = ScoreSystem.new
|
71
|
-
score_system.evaluate_user_recommendations!(user)
|
72
|
-
# Dump and print the user
|
73
|
-
File.open(@out_file, 'w') do |f|
|
74
|
-
f.write(user.dump)
|
75
|
-
end
|
76
|
-
puts "====="
|
77
|
-
puts "DONE!"
|
78
|
-
puts "====="
|
79
|
-
puts "Loaded tracks:"
|
80
|
-
user.recommendations.group_by(&:multiplier).sort.each do |k,v|
|
81
|
-
puts "#Multiplier #{k}:\t#{v.length}"
|
82
|
-
end
|
83
|
-
exit
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
private
|
88
|
-
|
89
|
-
def generate_user?
|
90
|
-
(defined? @toplist_file) &&
|
91
|
-
(defined? @out_file) &&
|
92
|
-
(defined? @spotify_appkey_file) &&
|
93
|
-
(defined? @spotify_account) &&
|
94
|
-
(defined? @spotify_password)
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
end
|