Search in sources :

Example 1 with UserStarredTrack

use of com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack in project musiccabinet by hakko.

the class UserLovedTracksService method updateUserLovedTracks.

private void updateUserLovedTracks() throws ApplicationException {
    List<LastFmUser> users = lastFmSettingsService.getLastFmUsers();
    setTotalOperations(users.size());
    List<UserLovedTracks> userLovedTracks = new ArrayList<>();
    for (LastFmUser user : users) {
        short page = 0, totalPages = 0;
        List<Track> lovedTracks = new ArrayList<>();
        do {
            WSResponse wsResponse = userLovedTracksClient.getUserLovedTracks(user, page);
            if (wsResponse.wasCallAllowed() && wsResponse.wasCallSuccessful()) {
                StringUtil stringUtil = new StringUtil(wsResponse.getResponseBody());
                UserLovedTracksParser parser = new UserLovedTracksParserImpl(stringUtil.getInputStream());
                totalPages = parser.getTotalPages();
                lovedTracks.addAll(parser.getLovedTracks());
            }
        } while (++page < totalPages);
        addFinishedOperation();
        userLovedTracks.add(new UserLovedTracks(user.getLastFmUsername(), lovedTracks));
    }
    userLovedTracksDao.createLovedTracks(userLovedTracks);
    for (UserStarredTrack ust : userLovedTracksDao.getStarredButNotLovedTracks()) {
        trackLoveClient.love(ust.getStarredTrack(), ust.getLastFmUser());
    }
}
Also used : UserStarredTrack(com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack) ArrayList(java.util.ArrayList) WSResponse(com.github.hakko.musiccabinet.ws.lastfm.WSResponse) UserLovedTracks(com.github.hakko.musiccabinet.domain.model.aggr.UserLovedTracks) UserLovedTracksParserImpl(com.github.hakko.musiccabinet.parser.lastfm.UserLovedTracksParserImpl) LastFmUser(com.github.hakko.musiccabinet.domain.model.library.LastFmUser) StringUtil(com.github.hakko.musiccabinet.util.StringUtil) UserLovedTracksParser(com.github.hakko.musiccabinet.parser.lastfm.UserLovedTracksParser) UserStarredTrack(com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack) Track(com.github.hakko.musiccabinet.domain.model.music.Track)

Example 2 with UserStarredTrack

use of com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack in project musiccabinet by hakko.

the class UserStarredTrackRowMapper method mapRow.

@Override
public UserStarredTrack mapRow(ResultSet rs, int rowNum) throws SQLException {
    String username = rs.getString(1);
    String sessionKey = rs.getString(2);
    String artistName = rs.getString(3);
    String trackName = rs.getString(4);
    return new UserStarredTrack(new LastFmUser(username, sessionKey), new Track(artistName, trackName));
}
Also used : UserStarredTrack(com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack) LastFmUser(com.github.hakko.musiccabinet.domain.model.library.LastFmUser) Track(com.github.hakko.musiccabinet.domain.model.music.Track) UserStarredTrack(com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack)

Aggregations

UserStarredTrack (com.github.hakko.musiccabinet.domain.model.aggr.UserStarredTrack)2 LastFmUser (com.github.hakko.musiccabinet.domain.model.library.LastFmUser)2 Track (com.github.hakko.musiccabinet.domain.model.music.Track)2 UserLovedTracks (com.github.hakko.musiccabinet.domain.model.aggr.UserLovedTracks)1 UserLovedTracksParser (com.github.hakko.musiccabinet.parser.lastfm.UserLovedTracksParser)1 UserLovedTracksParserImpl (com.github.hakko.musiccabinet.parser.lastfm.UserLovedTracksParserImpl)1 StringUtil (com.github.hakko.musiccabinet.util.StringUtil)1 WSResponse (com.github.hakko.musiccabinet.ws.lastfm.WSResponse)1 ArrayList (java.util.ArrayList)1