use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class TrackUnLoveClientTest method validateParameters.
@Test
public void validateParameters() throws ApplicationException {
final String method = TrackUnLoveClient.METHOD;
final String lastFmUser = "arnathalon";
final String sessionKey = "sessionkey";
final String artist = "artist";
final String track = "track";
new TrackUnLoveClient() {
@Override
protected WSResponse executeWSRequest(List<NameValuePair> params) throws ApplicationException {
assertHasParameter(params, PARAM_METHOD, method);
assertHasParameter(params, PARAM_TRACK, track);
assertHasParameter(params, PARAM_ARTIST, artist);
assertHasParameter(params, PARAM_SK, sessionKey);
return null;
}
}.unlove(new Track(artist, track), new LastFmUser(lastFmUser, sessionKey));
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class UpdateNowPlayingClientTest method validateParameters.
@Test
public void validateParameters() throws ApplicationException {
final Track track = browserDao.getTracks(browserDao.getRandomTrackIds(1)).get(0);
final LastFmUser user = new LastFmUser("lastFmUser", "sessionKey");
final Scrobble scrobble = new Scrobble(user, track, false);
final String method = UpdateNowPlayingClient.METHOD;
new UpdateNowPlayingClient() {
@Override
protected WSResponse executeWSRequest(List<NameValuePair> params) throws ApplicationException {
assertHasParameter(params, PARAM_METHOD, method);
assertHasParameter(params, PARAM_ARTIST, track.getArtist().getName());
assertHasParameter(params, PARAM_ALBUM, track.getMetaData().getAlbum());
assertHasParameter(params, PARAM_TRACK, track.getName());
assertHasParameter(params, PARAM_DURATION, "" + track.getMetaData().getDuration());
assertHasParameter(params, PARAM_SK, user.getSessionKey());
return null;
}
}.updateNowPlaying(scrobble);
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcArtistTopTracksDao method batchInsert.
private void batchInsert(Artist artist, List<Track> topTracks) {
int sourceArtistId = jdbcTemplate.queryForInt("select * from music.get_artist_id(?)", artist.getName());
String sql = "insert into music.artisttoptrack_import (artist_id, track_name, rank) values (?,?,?)";
BatchSqlUpdate batchUpdate = new BatchSqlUpdate(jdbcTemplate.getDataSource(), sql);
batchUpdate.setBatchSize(1000);
batchUpdate.declareParameter(new SqlParameter("artist_id", Types.INTEGER));
batchUpdate.declareParameter(new SqlParameter("track_name", Types.VARCHAR));
batchUpdate.declareParameter(new SqlParameter("rank", Types.SMALLINT));
short rank = 0;
for (Track t : topTracks) {
batchUpdate.update(new Object[] { sourceArtistId, t.getName(), ++rank });
}
batchUpdate.flush();
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcNameSearchDao method getTracks.
@Override
public NameSearchResult<Track> getTracks(String userQuery, int offset, int limit) {
String sql = "select mart.id, mart.artist_name_capitalization," + " malb.id, malb.album_name_capitalization," + " lt.id, mt.track_name_capitalization from library.track lt" + " inner join music.track mt on lt.track_id = mt.id" + " inner join music.album malb on lt.album_id = malb.id" + " inner join music.artist mart on mt.artist_id = mart.id" + " where lt.track_name_search like ?" + " order by mt.track_name" + " offset ? limit ?";
List<Track> albums = jdbcTemplate.query(sql, new Object[] { getNameQuery(userQuery), offset, limit }, new RowMapper<Track>() {
@Override
public Track mapRow(ResultSet rs, int rowNum) throws SQLException {
MetaData metaData = new MetaData();
metaData.setArtistId(rs.getInt(1));
metaData.setArtist(rs.getString(2));
metaData.setAlbumId(rs.getInt(3));
metaData.setAlbum(rs.getString(4));
return new Track(rs.getInt(5), rs.getString(6), metaData);
}
});
return new NameSearchResult<>(albums, offset);
}
use of com.github.hakko.musiccabinet.domain.model.music.Track in project musiccabinet by hakko.
the class JdbcTrackRelationDao method getTrackRelations.
@Override
public List<TrackRelation> getTrackRelations(Track sourceTrack) {
final int sourceTrackId = jdbcTemplate.queryForInt("select * from music.get_track_id(?,?)", sourceTrack.getArtist().getName(), sourceTrack.getName());
String sql = "select artist_name_capitalization, track_name_capitalization, weight" + " from music.trackrelation" + " inner join music.track on music.trackrelation.target_id = music.track.id" + " inner join music.artist on music.track.artist_id = music.artist.id" + " where music.trackrelation.source_id = ?";
List<TrackRelation> trackRelations = jdbcTemplate.query(sql, new Object[] { sourceTrackId }, new RowMapper<TrackRelation>() {
@Override
public TrackRelation mapRow(ResultSet rs, int rowNum) throws SQLException {
String artistName = rs.getString(1);
String trackName = rs.getString(2);
float weight = rs.getFloat(3);
return new TrackRelation(new Track(artistName, trackName), weight);
}
});
return trackRelations;
}
Aggregations