Add support for ListenBrainz Audio Scrobbler Service

- Add textbox in user settings page for ListenBrainz token
- Add changes to db
    - Add db colume to store MusicBrainz Recording ID
    - Add db colume to store ListenBrainz token
- Add test for reading id
    - Add tag on testing file
- Add localization entry

Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com>
Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
This commit is contained in:
Shen-Ta Hsieh
2019-11-23 12:36:48 -07:00
committed by Andrew DeMaria
parent e3b3bc9d2b
commit 84df4e3b94
50 changed files with 443 additions and 12 deletions
@@ -187,6 +187,8 @@ public class UserDaoTestCase extends DaoTestCaseBean2 {
assertFalse("Error in getUserSettings().", userSettings.isLastFmEnabled());
assertNull("Error in getUserSettings().", userSettings.getLastFmUsername());
assertNull("Error in getUserSettings().", userSettings.getLastFmPassword());
assertFalse("Error in getUserSettings().", userSettings.isListenBrainzEnabled());
assertNull("Error in getUserSettings().", userSettings.getListenBrainzToken());
assertSame("Error in getUserSettings().", TranscodeScheme.OFF, userSettings.getTranscodeScheme());
assertFalse("Error in getUserSettings().", userSettings.isShowNowPlayingEnabled());
assertEquals("Error in getUserSettings().", -1, userSettings.getSelectedMusicFolderId());
@@ -208,6 +210,8 @@ public class UserDaoTestCase extends DaoTestCaseBean2 {
settings.setLastFmEnabled(true);
settings.setLastFmUsername("last_user");
settings.setLastFmPassword("last_pass");
settings.setListenBrainzEnabled(true);
settings.setListenBrainzToken("01234567-89ab-cdef-0123-456789abcdef");
settings.setTranscodeScheme(TranscodeScheme.MAX_192);
settings.setShowNowPlayingEnabled(false);
settings.setSelectedMusicFolderId(3);
@@ -233,6 +237,8 @@ public class UserDaoTestCase extends DaoTestCaseBean2 {
assertEquals("Error in getUserSettings().", true, userSettings.isLastFmEnabled());
assertEquals("Error in getUserSettings().", "last_user", userSettings.getLastFmUsername());
assertEquals("Error in getUserSettings().", "last_pass", userSettings.getLastFmPassword());
assertEquals("Error in getUserSettings().", true, userSettings.isListenBrainzEnabled());
assertEquals("Error in getUserSettings().", "01234567-89ab-cdef-0123-456789abcdef", userSettings.getListenBrainzToken());
assertSame("Error in getUserSettings().", TranscodeScheme.MAX_192, userSettings.getTranscodeScheme());
assertFalse("Error in getUserSettings().", userSettings.isShowNowPlayingEnabled());
assertEquals("Error in getUserSettings().", 3, userSettings.getSelectedMusicFolderId());
@@ -267,4 +273,4 @@ public class UserDaoTestCase extends DaoTestCaseBean2 {
assertEquals("Wrong jukebox role.", expected.isJukeboxRole(), actual.isJukeboxRole());
assertEquals("Wrong settings role.", expected.isSettingsRole(), actual.isSettingsRole());
}
}
}
@@ -218,7 +218,7 @@ public class MediaScannerServiceTestCase {
Assert.assertEquals("0820752d-1043-4572-ab36-2df3b5cc15fa", album.getMusicBrainzReleaseId());
Assert.assertEquals(musicFolderFile.toPath().resolve("TestAlbum").toString(), album.getPath());
// Test that the music file is correctly imported, along with its MusicBrainz release ID
// Test that the music file is correctly imported, along with its MusicBrainz release ID and recording ID
List<MediaFile> albumFiles = mediaFileDao.getChildrenOf(allAlbums.get(0).getPath());
Assert.assertEquals(1, albumFiles.size());
MediaFile file = albumFiles.get(0);
@@ -232,5 +232,6 @@ public class MediaScannerServiceTestCase {
Assert.assertEquals(album.getPath(), file.getParentPath());
Assert.assertEquals(new File(album.getPath()).toPath().resolve("01 - Aria.flac").toString(), file.getPath());
Assert.assertEquals("0820752d-1043-4572-ab36-2df3b5cc15fa", file.getMusicBrainzReleaseId());
Assert.assertEquals("831586f4-56f9-4785-ac91-447ae20af633", file.getMusicBrainzRecordingId());
}
}