Module: MaimaiNet::Client::ConnectionSupportUserFavorite
- Included in:
- Connection
- Defined in:
- lib/maimai_net/client.rb
Instance Method Summary collapse
-
#get_favorites ⇒ Array<Model::SongEntry>
get current user favorite songs.
-
#get_songs ⇒ Array<Model::SongEntry>
get current available songs.
-
#set_favorites(songs) ⇒ void
set current user favorite songs.
Instance Method Details
#get_favorites ⇒ Array<Model::SongEntry>
get current user favorite songs
933 934 935 936 937 938 |
# File 'lib/maimai_net/client.rb', line 933 def get_favorites send_request( 'get', '/home/userOption/favorite/updateMusic', nil, response_page: Page::UserFavorite, ).select(&:flag).map(&:song) end |
#get_songs ⇒ Array<Model::SongEntry>
get current available songs
923 924 925 926 927 928 |
# File 'lib/maimai_net/client.rb', line 923 def get_songs send_request( 'get', '/home/userOption/favorite/updateMusic', nil, response_page: Page::UserFavorite, ).map(&:song) end |
#set_favorites(songs) ⇒ void
This method returns an undefined value.
set current user favorite songs
943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 |
# File 'lib/maimai_net/client.rb', line 943 def set_favorites(songs) fail TypeError, "expected Array, given #{songs.class}" unless Array === songs song_classes = songs.map(&:class).uniq fail TypeError, sprintf( 'expected Array of <%1$p, %2$p, %3$p>. given %4$p', Model::SongFavoriteInfo, Model::SongEntry, Model::WebID, song_classes, ) unless songs.all? do |song| [Model::SongFavoriteInfo, Model::SongEntry, Model::WebID].any? do |cls| cls === song end end songs.select! do |info| Model::SongFavoriteInfo === info ? info.flag : true end fail ArgumentError, "expected array size is 30 or less, given #{songs.size}" if songs.size > 30 songs.map! do |info| song = info song = info.song if Model::SongFavoriteInfo === info song = info.web_id if Model::SongEntry song end fetch_and_submit_form( '/home/userOption/favorite/updateMusic', nil, response_page: Page::UserFavorite, ) do |data| data[:music] = songs true end end |