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
956 957 958 959 960 961 |
# File 'lib/maimai_net/client.rb', line 956 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
946 947 948 949 950 951 |
# File 'lib/maimai_net/client.rb', line 946 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
966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 |
# File 'lib/maimai_net/client.rb', line 966 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 |