use of com.github.hakko.musiccabinet.parser.lastfm.ArtistTopTracksParserImpl in project musiccabinet by hakko.
the class WSResponseTest method illegalControlCharactersAreChomped2.
/*
* Use an authentic response from last.fm, and assert that WSResponse
* silently replaces illegal XML characters in it.
*/
@Test
public void illegalControlCharactersAreChomped2() throws ApplicationException {
String ctrlCharResponse = new ResourceUtil(CTRL_CHAR_RESPONSE_2).getContent();
WSResponse response = new WSResponse(ctrlCharResponse);
// supposed to work, as WSResponse chomps illegal control characters
new ArtistTopTracksParserImpl(new StringUtil(response.getResponseBody()).getInputStream());
try {
// supposed to fail, as it hasn't passed WSResponse
new ArtistTopTracksParserImpl(new ResourceUtil(CTRL_CHAR_RESPONSE_2).getInputStream());
Assert.fail();
} catch (ApplicationException e) {
}
}
use of com.github.hakko.musiccabinet.parser.lastfm.ArtistTopTracksParserImpl in project musiccabinet by hakko.
the class ArtistTopTracksService method updateSearchIndex.
@Override
protected void updateSearchIndex() throws ApplicationException {
Set<String> artistNames = webserviceHistoryService.getArtistNamesScheduledForUpdate(ARTIST_GET_TOP_TRACKS);
setTotalOperations(artistNames.size());
for (String artistName : artistNames) {
try {
WSResponse wsResponse = artistTopTracksClient.getTopTracks(new Artist(artistName));
if (wsResponse.wasCallAllowed() && wsResponse.wasCallSuccessful()) {
StringUtil stringUtil = new StringUtil(wsResponse.getResponseBody());
ArtistTopTracksParser attParser = new ArtistTopTracksParserImpl(stringUtil.getInputStream());
artistTopTracksDao.createTopTracks(attParser.getArtist(), attParser.getTopTracks());
}
} catch (ApplicationException e) {
LOG.warn("Fetching top tracks for " + artistName + " failed.", e);
}
addFinishedOperation();
}
}
use of com.github.hakko.musiccabinet.parser.lastfm.ArtistTopTracksParserImpl in project musiccabinet by hakko.
the class JdbcArtistTopTracksDaoTest method loadFunctionDependencyAndTestdata.
@Before
public void loadFunctionDependencyAndTestdata() throws ApplicationException {
PostgreSQLUtil.loadFunction(dao, UPDATE_ARTISTTOPTRACK);
ArtistTopTracksParser cherParser = new ArtistTopTracksParserImpl(new ResourceUtil(CHER_TOP_TRACKS).getInputStream());
ArtistTopTracksParser rihannaParser = new ArtistTopTracksParserImpl(new ResourceUtil(RIHANNA_TOP_TRACKS).getInputStream());
cherArtist = cherParser.getArtist();
rihannaArtist = rihannaParser.getArtist();
cherTopTracks = cherParser.getTopTracks();
rihannaTopTracks = rihannaParser.getTopTracks();
PostgreSQLUtil.truncateTables(dao);
}
use of com.github.hakko.musiccabinet.parser.lastfm.ArtistTopTracksParserImpl in project musiccabinet by hakko.
the class JdbcPlaylistGeneratorDaoTest method prepareTestdataForArtist.
private int prepareTestdataForArtist() throws ApplicationException {
ArtistSimilarityParser asParser = new ArtistSimilarityParserImpl(new ResourceUtil(CHER_SIMILAR_ARTISTS).getInputStream());
artistRelationDao.createArtistRelations(asParser.getArtist(), asParser.getArtistRelations());
ArtistTopTracksParser attParser = new ArtistTopTracksParserImpl(new ResourceUtil(CHER_TOP_TRACKS).getInputStream());
artistTopTracksDao.createTopTracks(attParser.getArtist(), attParser.getTopTracks());
List<File> files = new ArrayList<>();
for (Track topTrack : attParser.getTopTracks()) {
files.add(UnittestLibraryUtil.getFile(topTrack));
}
UnittestLibraryUtil.submitFile(additionDao, files);
int artistId = musicDao.getArtistId(asParser.getArtist());
playlistGeneratorDao.updateSearchIndex();
return artistId;
}
Aggregations