From 06e0e451a7441c048d5af5f3dbad230297e197cc Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Sun, 11 Aug 2024 12:43:08 +0530 Subject: [PATCH 01/10] Added listen counts in listen card component --- .../android/ui/components/ListenCardSmall.kt | 22 +- .../ui/screens/profile/BaseProfileScreen.kt | 3 +- .../ui/screens/profile/stats/StatsScreen.kt | 233 ++++++++++++++---- 3 files changed, 204 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/org/listenbrainz/android/ui/components/ListenCardSmall.kt b/app/src/main/java/org/listenbrainz/android/ui/components/ListenCardSmall.kt index e8e27015..328e473d 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/components/ListenCardSmall.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/components/ListenCardSmall.kt @@ -2,6 +2,7 @@ package org.listenbrainz.android.ui.components import android.content.res.Configuration.UI_MODE_NIGHT_YES import androidx.annotation.DrawableRes +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -13,6 +14,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Divider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -22,6 +24,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.FilterQuality import androidx.compose.ui.layout.ContentScale @@ -51,6 +54,7 @@ fun ListenCardSmall( trackName: String, artistName: String, coverArtUrl: String?, + listenCount: Int? = null, @DrawableRes errorAlbumArt: Int = R.drawable.ic_coverartarchive_logo_no_text, enableDropdownIcon: Boolean = false, onDropdownIconClick: () -> Unit = {}, @@ -100,16 +104,28 @@ fun ListenCardSmall( Spacer(modifier = Modifier.width(ListenBrainzTheme.paddings.coverArtAndTextGap)) TitleAndSubtitle(modifier = Modifier.padding(end = 6.dp), title = trackName, subtitle = artistName, titleColor = titleColor, subtitleColor = subtitleColor) - } - + Box( modifier = modifier .fillMaxWidth(1f - mainContentFraction) .align(Alignment.CenterEnd), contentAlignment = Alignment.Center ) { - + if(listenCount != null){ + Box( + modifier = Modifier + .clip(RoundedCornerShape(16.dp)) + .background(ListenBrainzTheme.colorScheme.followerChipSelected) + .padding(6.dp), + contentAlignment = Alignment.Center + ) { + Text( + text = listenCount.toString(), + color = Color.Black + ) + } + } // Trailing content if (enableTrailingContent) { trailingContent( diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt index 669f4f27..3de228aa 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt @@ -207,7 +207,8 @@ fun BaseProfileScreen( username = username ) ProfileScreenTab.STATS -> StatsScreen( - username = username + username = username, + snackbarState = snackbarState, ) ProfileScreenTab.TASTE -> TasteScreen( snackbarState = snackbarState, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt index 421a48c8..65e39447 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt @@ -20,6 +20,7 @@ import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ElevatedSuggestionChip import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.SuggestionChipDefaults import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -30,10 +31,15 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -51,23 +57,48 @@ import com.patrykandpatrick.vico.core.cartesian.data.columnSeries import com.patrykandpatrick.vico.core.cartesian.layer.ColumnCartesianLayer import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.isActive +import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.listenbrainz.android.R +import org.listenbrainz.android.model.AdditionalInfo +import org.listenbrainz.android.model.MbidMapping +import org.listenbrainz.android.model.Metadata +import org.listenbrainz.android.model.SocialUiState +import org.listenbrainz.android.model.TrackMetadata +import org.listenbrainz.android.model.feed.ReviewEntityType +import org.listenbrainz.android.ui.components.ErrorBar import org.listenbrainz.android.ui.components.ListenCardSmall +import org.listenbrainz.android.ui.components.SuccessBar +import org.listenbrainz.android.ui.components.dialogs.Dialog +import org.listenbrainz.android.ui.components.dialogs.rememberDialogsState +import org.listenbrainz.android.ui.screens.feed.FeedUiState +import org.listenbrainz.android.ui.screens.feed.SocialDropdown import org.listenbrainz.android.ui.screens.profile.ProfileUiState +import org.listenbrainz.android.ui.screens.profile.listens.Dialogs +import org.listenbrainz.android.ui.screens.profile.listens.ListenDialogBundleKeys import org.listenbrainz.android.ui.screens.profile.listens.LoadMoreButton import org.listenbrainz.android.ui.theme.ListenBrainzTheme import org.listenbrainz.android.ui.theme.app_bg_secondary_dark import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl +import org.listenbrainz.android.viewmodel.FeedViewModel import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.SocialViewModel @Composable fun StatsScreen( username: String?, viewModel: ProfileViewModel = hiltViewModel(), + socialViewModel: SocialViewModel = hiltViewModel(), + feedViewModel : FeedViewModel = hiltViewModel(), + snackbarState : SnackbarHostState, ) { val uiState by viewModel.uiState.collectAsState() + val socialUiState by socialViewModel.uiState.collectAsState() + val feedUiState by feedViewModel.uiState.collectAsState() + val dropdownItemIndex: MutableState = rememberSaveable { + mutableStateOf(null) + } val statsRangeState: MutableState = remember { mutableStateOf(StatsRange.THIS_WEEK) } @@ -94,53 +125,48 @@ fun StatsScreen( }, fetchTopSongs = { viewModel.getUserTopSongs(it) + }, + dropdownItemIndex = dropdownItemIndex, + feedUiState = feedUiState, + playListen = { + socialViewModel.playListen(it) + }, + snackbarState = snackbarState, + socialUiState = socialUiState, + onRecommend = {metadata -> + socialViewModel.recommend(metadata) + dropdownItemIndex.value = null + }, + onErrorShown = { + socialViewModel.clearErrorFlow() + }, + onMessageShown = { + socialViewModel.clearMsgFlow() + }, + onPin = { + metadata, blurbContent -> socialViewModel.pin(metadata , blurbContent) + dropdownItemIndex.value = null + }, + searchUsers = { + query -> feedViewModel.searchUser(query) + }, + isCritiqueBrainzLinked = { + feedViewModel.isCritiqueBrainzLinked() + }, + onReview = { + type, blurbContent, rating, locale, metadata -> socialViewModel.review(metadata , type , blurbContent , rating , locale) + }, + onPersonallyRecommend = { + metadata, users, blurbContent -> socialViewModel.personallyRecommend(metadata, users, blurbContent) } ) } - -fun weekFormatter ( - value: Int -): String { - val weekDay = when(value){ - 0 -> "Mon" - 1 -> "Tue" - 2 -> "Wed" - 3 -> "Thu" - 4 -> "Fri" - 5 -> "Sat" - 6 -> "Sun" - else -> "" - } - return weekDay -} - -fun yearFormatter( - value: Int -): String { - val month = when(value){ - 0 -> "Jan" - 1 -> "Feb" - 2 -> "Mar" - 3 -> "Apr" - 4 -> "May" - 5 -> "Jun" - 6 -> "Jul" - 7 -> "Aug" - 8 -> "Sep" - 9 -> "Oct" - 10 -> "Nov" - 11 -> "Dec" - else -> "" - } - return month -} - - @Composable fun StatsScreen( username: String?, uiState: ProfileUiState, + uriHandler: UriHandler = LocalUriHandler.current, statsRangeState: StatsRange, setStatsRange: (StatsRange) -> Unit, userGlobalState: UserGlobal, @@ -148,24 +174,37 @@ fun StatsScreen( fetchTopArtists: suspend (String?) -> Unit, fetchTopAlbums: suspend (String?) -> Unit, fetchTopSongs: suspend (String?) -> Unit, + dropdownItemIndex : MutableState, + feedUiState: FeedUiState, + playListen: (TrackMetadata) -> Unit, + snackbarState: SnackbarHostState, + socialUiState: SocialUiState, + onRecommend : (metadata : Metadata) -> Unit, + onErrorShown : () -> Unit, + onMessageShown : () -> Unit, + onPin : (metadata : Metadata , blurbContent : String) -> Unit, + searchUsers: (String) -> Unit, + isCritiqueBrainzLinked: suspend () -> Boolean?, + onReview: (type: ReviewEntityType, blurbContent: String, rating: Int?, locale: String, metadata: Metadata) -> Unit, + onPersonallyRecommend: (metadata: Metadata, users: List, blurbContent: String) -> Unit, ) { - val currentTabSelection: MutableState = remember { mutableStateOf(CategoryState.ARTISTS) } - val artistsCollapseState: MutableState = remember { mutableStateOf(true) } - val albumsCollapseState: MutableState = remember { mutableStateOf(true) } - val songsCollapseState: MutableState = remember { mutableStateOf(true) } + val dialogsState = rememberDialogsState() + val scope = rememberCoroutineScope() + val context = LocalContext.current + when(currentTabSelection.value){ CategoryState.ARTISTS -> { if(uiState.statsTabUIState.topArtists == null){ @@ -398,9 +437,21 @@ fun StatsScreen( } else{ Column (horizontalAlignment = Alignment.CenterHorizontally) { - topAlbums.map { - topAlbum -> - ListenCardSmall(trackName = topAlbum.releaseName ?: "", artistName = topAlbum.artistName ?: "", coverArtUrl = getCoverArtUrl(topAlbum.caaReleaseMbid, topAlbum.caaId), modifier = Modifier.padding(top = 10.dp, bottom = 10.dp, end = 10.dp), color = app_bg_secondary_dark, titleColor = ListenBrainzTheme.colorScheme.followerChipSelected, subtitleColor = ListenBrainzTheme.colorScheme.listenText.copy(alpha = 0.7f)) { + topAlbums.mapIndexed { + index, topAlbum -> + ListenCardSmall( + trackName = topAlbum.releaseName ?: "", + artistName = topAlbum.artistName ?: "", + coverArtUrl = getCoverArtUrl(topAlbum.caaReleaseMbid, topAlbum.caaId), + modifier = Modifier.padding(top = 10.dp, bottom = 10.dp, end = 10.dp), + color = app_bg_secondary_dark, + titleColor = ListenBrainzTheme.colorScheme.followerChipSelected, + subtitleColor = ListenBrainzTheme.colorScheme.listenText.copy(alpha = 0.7f), + enableTrailingContent = true, + listenCount = topAlbum.listenCount, + enableDropdownIcon = true + ) + { } } @@ -419,10 +470,73 @@ fun StatsScreen( } else{ Column (horizontalAlignment = Alignment.CenterHorizontally) { - topSongs.map { - topSong -> - ListenCardSmall(trackName = topSong.trackName ?: "", artistName = topSong.artistName ?: "", coverArtUrl = getCoverArtUrl(topSong.caaReleaseMbid, topSong.caaId), modifier = Modifier.padding(top = 10.dp, bottom = 10.dp, end = 10.dp), color = app_bg_secondary_dark, titleColor = ListenBrainzTheme.colorScheme.followerChipSelected, subtitleColor = ListenBrainzTheme.colorScheme.listenText.copy(alpha = 0.7f),) { - + topSongs.mapIndexed { + index, topSong -> + val metadata = Metadata(trackMetadata = TrackMetadata( + artistName = topSong.artistName ?: "", + releaseName = topSong.releaseName, + trackName = topSong.trackName ?: "", + mbidMapping = MbidMapping( + artistMbids = topSong.artistMbids ?: listOf(), + recordingName = topSong.releaseName ?: "", + caaId = topSong.caaId, + caaReleaseMbid = topSong.caaReleaseMbid, + recordingMbid = topSong.recordingMbid + ), + additionalInfo = AdditionalInfo() + )) + ListenCardSmall( + trackName = topSong.trackName ?: "", + artistName = topSong.artistName ?: "", + coverArtUrl = getCoverArtUrl(topSong.caaReleaseMbid, topSong.caaId), + modifier = Modifier.padding(top = 10.dp, bottom = 10.dp, end = 10.dp), + color = app_bg_secondary_dark, + titleColor = ListenBrainzTheme.colorScheme.followerChipSelected, + subtitleColor = ListenBrainzTheme.colorScheme.listenText.copy(alpha = 0.7f), + enableDropdownIcon = true, + onDropdownIconClick = { + dropdownItemIndex.value = index + }, + dropDown = { + SocialDropdown( + isExpanded = dropdownItemIndex.value == index, + onDismiss = { + dropdownItemIndex.value = null + }, + metadata = metadata, + onRecommend = { onRecommend(metadata) }, + onPersonallyRecommend = { + dialogsState.activateDialog(Dialog.PERSONAL_RECOMMENDATION , ListenDialogBundleKeys.listenDialogBundle(0, index)) + dropdownItemIndex.value = null + }, + onReview = { + dialogsState.activateDialog(Dialog.REVIEW , ListenDialogBundleKeys.listenDialogBundle(0, index)) + dropdownItemIndex.value = null + }, + onPin = { + dialogsState.activateDialog(Dialog.PIN , ListenDialogBundleKeys.listenDialogBundle(0, index)) + dropdownItemIndex.value = null + }, + onOpenInMusicBrainz = { + try { + uriHandler.openUri("https://musicbrainz.org/recording/${metadata.trackMetadata?.mbidMapping?.recordingMbid}") + } + catch(e : Error) { + scope.launch { + snackbarState.showSnackbar(context.getString(R.string.err_generic_toast)) + } + } + dropdownItemIndex.value = null + } + ) + }, + enableTrailingContent = true, + listenCount = topSong.listenCount + ) { + val trackMetadata = metadata.trackMetadata + if(trackMetadata != null){ + playListen(trackMetadata) + } } } Spacer(modifier = Modifier.height(10.dp)) @@ -438,6 +552,25 @@ fun StatsScreen( } } } + + ErrorBar(error = socialUiState.error, onErrorShown = onErrorShown ) + SuccessBar(resId = socialUiState.successMsgId, onMessageShown = onMessageShown, snackbarState = snackbarState) + + Dialogs( + deactivateDialog = { + dialogsState.deactivateDialog() + }, + currentDialog = dialogsState.currentDialog, + currentIndex = dialogsState.metadata?.getInt(ListenDialogBundleKeys.EVENT_INDEX.name), + listens = uiState.listensTabUiState.recentListens ?: listOf(), + onPin = {metadata, blurbContent -> onPin(metadata, blurbContent)}, + searchUsers = { query -> searchUsers(query) }, + feedUiState = feedUiState, + isCritiqueBrainzLinked = isCritiqueBrainzLinked, + onReview = {type, blurbContent, rating, locale, metadata -> onReview(type, blurbContent, rating, locale, metadata) }, + onPersonallyRecommend = {metadata, users, blurbContent -> onPersonallyRecommend(metadata, users, blurbContent)}, + snackbarState = snackbarState, + socialUiState = socialUiState) } @Composable From 0bd74ba90a31149c6874a444da7fe07f3d1df746 Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Mon, 12 Aug 2024 08:05:52 +0530 Subject: [PATCH 02/10] Added mock data for User Repository --- .../android/model/PinnedRecording.kt | 4 + .../android/repository/user/UserRepository.kt | 3 +- .../repository/user/UserRepositoryImpl.kt | 3 +- .../android/service/UserService.kt | 4 +- .../android/viewmodel/ProfileViewModel.kt | 2 +- .../sharedtest/mocks/MockUserRepository.kt | 80 +++++++++++++++++++ .../testdata/UserRepositoryTestData.kt | 64 +++++++++++++++ .../sharedtest/utils/ResourceString.kt | 32 ++++++++ .../src/main/resources/current_pins.json | 1 + .../resources/global_listening_activity.json | 1 + .../main/resources/listening_activity.json | 1 + .../src/main/resources/loved_hated_songs.json | 1 + sharedTest/src/main/resources/pins.json | 1 + sharedTest/src/main/resources/top_albums.json | 1 + .../src/main/resources/top_artists.json | 1 + sharedTest/src/main/resources/top_songs.json | 1 + 16 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockUserRepository.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt create mode 100644 sharedTest/src/main/resources/current_pins.json create mode 100644 sharedTest/src/main/resources/global_listening_activity.json create mode 100644 sharedTest/src/main/resources/listening_activity.json create mode 100644 sharedTest/src/main/resources/loved_hated_songs.json create mode 100644 sharedTest/src/main/resources/pins.json create mode 100644 sharedTest/src/main/resources/top_albums.json create mode 100644 sharedTest/src/main/resources/top_artists.json create mode 100644 sharedTest/src/main/resources/top_songs.json diff --git a/app/src/main/java/org/listenbrainz/android/model/PinnedRecording.kt b/app/src/main/java/org/listenbrainz/android/model/PinnedRecording.kt index 2aa06bf5..2b596fe2 100644 --- a/app/src/main/java/org/listenbrainz/android/model/PinnedRecording.kt +++ b/app/src/main/java/org/listenbrainz/android/model/PinnedRecording.kt @@ -2,6 +2,10 @@ package org.listenbrainz.android.model import com.google.gson.annotations.SerializedName +data class CurrentPins( + @SerializedName("pinned_recording") val pinnedRecording: PinnedRecording? = null +) + data class PinnedRecording( @SerializedName("created" ) val created: Float? = null, @SerializedName("row_id" ) val rowId: Int? = null, diff --git a/app/src/main/java/org/listenbrainz/android/repository/user/UserRepository.kt b/app/src/main/java/org/listenbrainz/android/repository/user/UserRepository.kt index 3d625c65..571486df 100644 --- a/app/src/main/java/org/listenbrainz/android/repository/user/UserRepository.kt +++ b/app/src/main/java/org/listenbrainz/android/repository/user/UserRepository.kt @@ -1,5 +1,6 @@ package org.listenbrainz.android.repository.user +import org.listenbrainz.android.model.CurrentPins import org.listenbrainz.android.model.Listens import org.listenbrainz.android.model.PinnedRecording import org.listenbrainz.android.model.user.AllPinnedRecordings @@ -14,7 +15,7 @@ import org.listenbrainz.android.util.Resource interface UserRepository { suspend fun fetchUserListenCount (username: String?) : Resource suspend fun fetchUserSimilarity(username: String? , otherUserName: String?) : Resource - suspend fun fetchUserCurrentPins(username: String?) : Resource + suspend fun fetchUserCurrentPins(username: String?) : Resource suspend fun fetchUserPins(username: String?) : Resource //TODO: Move to artists VM once implemented suspend fun getTopArtists(username: String?, rangeString: String = "all_time", count: Int = 25): Resource diff --git a/app/src/main/java/org/listenbrainz/android/repository/user/UserRepositoryImpl.kt b/app/src/main/java/org/listenbrainz/android/repository/user/UserRepositoryImpl.kt index 45b67023..1b96747f 100644 --- a/app/src/main/java/org/listenbrainz/android/repository/user/UserRepositoryImpl.kt +++ b/app/src/main/java/org/listenbrainz/android/repository/user/UserRepositoryImpl.kt @@ -1,5 +1,6 @@ package org.listenbrainz.android.repository.user +import org.listenbrainz.android.model.CurrentPins import org.listenbrainz.android.model.Listens import org.listenbrainz.android.model.PinnedRecording import org.listenbrainz.android.model.ResponseError @@ -29,7 +30,7 @@ class UserRepositoryImpl @Inject constructor( service.getUserSimilarity(username,otherUserName) } - override suspend fun fetchUserCurrentPins(username: String?): Resource = parseResponse { + override suspend fun fetchUserCurrentPins(username: String?): Resource = parseResponse { if(username.isNullOrEmpty()) return ResponseError.BAD_REQUEST.asResource() service.getUserCurrentPins(username) } diff --git a/app/src/main/java/org/listenbrainz/android/service/UserService.kt b/app/src/main/java/org/listenbrainz/android/service/UserService.kt index 82f01a2d..641932a7 100644 --- a/app/src/main/java/org/listenbrainz/android/service/UserService.kt +++ b/app/src/main/java/org/listenbrainz/android/service/UserService.kt @@ -1,7 +1,7 @@ package org.listenbrainz.android.service +import org.listenbrainz.android.model.CurrentPins import org.listenbrainz.android.model.Listens -import org.listenbrainz.android.model.PinnedRecording import org.listenbrainz.android.model.user.AllPinnedRecordings import org.listenbrainz.android.model.user.TopAlbums import org.listenbrainz.android.model.user.TopArtists @@ -22,7 +22,7 @@ interface UserService { suspend fun getUserSimilarity(@Path("user_name") username: String? , @Path("other_user_name") otherUserName: String?) : Response @GET("{user_name}/pins/current") - suspend fun getUserCurrentPins(@Path("user_name") username: String?) : Response + suspend fun getUserCurrentPins(@Path("user_name") username: String?) : Response @GET("{user_name}/pins") suspend fun getUserPins(@Path("user_name") username: String?) : Response diff --git a/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt b/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt index 8b09f7bd..f7509344 100644 --- a/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt +++ b/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt @@ -126,7 +126,7 @@ class ProfileViewModel @Inject constructor( } val followingCount = following?.size val similarUsers = socialRepository.getSimilarUsers(username).data?.payload - val currentPins = userRepository.fetchUserCurrentPins(username).data + val currentPins = userRepository.fetchUserCurrentPins(username).data?.pinnedRecording val compatibility = if (username != appPreferences.username.get()) userRepository.fetchUserSimilarity( appPreferences.username.get(), diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockUserRepository.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockUserRepository.kt new file mode 100644 index 00000000..3e01e1b2 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockUserRepository.kt @@ -0,0 +1,80 @@ +package org.listenbrainz.sharedtest.mocks + +import org.listenbrainz.android.model.CurrentPins +import org.listenbrainz.android.model.Listens +import org.listenbrainz.android.model.user.AllPinnedRecordings +import org.listenbrainz.android.model.user.TopAlbums +import org.listenbrainz.android.model.user.TopArtists +import org.listenbrainz.android.model.user.TopSongs +import org.listenbrainz.android.model.user.UserFeedback +import org.listenbrainz.android.model.user.UserListeningActivity +import org.listenbrainz.android.model.user.UserSimilarityPayload +import org.listenbrainz.android.repository.user.UserRepository +import org.listenbrainz.android.util.Resource +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.allPinsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.currentPinsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.globalListeningActivityTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.listenCountTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.listeningActivityTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.lovedHatedSongsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.topAlbumsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.topArtistsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.topSongsTestData +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.userSimilarityTestData + +class MockUserRepository : UserRepository { + override suspend fun fetchUserListenCount(username: String?): Resource { + return Resource(Resource.Status.SUCCESS, listenCountTestData) + } + + override suspend fun fetchUserSimilarity( + username: String?, + otherUserName: String? + ): Resource { + return Resource(Resource.Status.SUCCESS, userSimilarityTestData) + } + + override suspend fun fetchUserCurrentPins(username: String?): Resource { + return Resource(Resource.Status.SUCCESS, currentPinsTestData) + } + + override suspend fun fetchUserPins(username: String?): Resource { + return Resource(Resource.Status.SUCCESS, allPinsTestData) + } + + override suspend fun getTopArtists( + username: String?, + rangeString: String, + count: Int + ): Resource { + return Resource(Resource.Status.SUCCESS, topArtistsTestData) + } + + override suspend fun getUserFeedback(username: String?, score: Int?): Resource { + return Resource(Resource.Status.SUCCESS, lovedHatedSongsTestData) + } + + override suspend fun getUserListeningActivity( + username: String?, + rangeString: String + ): Resource { + return Resource(Resource.Status.SUCCESS, listeningActivityTestData) + } + + override suspend fun getGlobalListeningActivity(rangeString: String): Resource { + return Resource(Resource.Status.SUCCESS, globalListeningActivityTestData) + } + + override suspend fun getTopAlbums( + username: String?, + rangeString: String, + count: Int + ): Resource { + return Resource(Resource.Status.SUCCESS, topAlbumsTestData) + } + + override suspend fun getTopSongs(username: String?, rangeString: String): Resource { + return Resource(Resource.Status.SUCCESS, topSongsTestData) + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt new file mode 100644 index 00000000..20a68c33 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt @@ -0,0 +1,64 @@ +package org.listenbrainz.sharedtest.testdata + +import com.google.gson.Gson +import org.listenbrainz.android.model.CurrentPins +import org.listenbrainz.android.model.Listens +import org.listenbrainz.android.model.Payload +import org.listenbrainz.android.model.user.AllPinnedRecordings +import org.listenbrainz.android.model.user.TopAlbums +import org.listenbrainz.android.model.user.TopArtists +import org.listenbrainz.android.model.user.TopSongs +import org.listenbrainz.android.model.user.UserFeedback +import org.listenbrainz.android.model.user.UserListeningActivity +import org.listenbrainz.android.model.user.UserSimilarity +import org.listenbrainz.android.model.user.UserSimilarityPayload +import org.listenbrainz.sharedtest.utils.ResourceString.all_pins +import org.listenbrainz.sharedtest.utils.ResourceString.current_pins +import org.listenbrainz.sharedtest.utils.ResourceString.globalListeningActivity +import org.listenbrainz.sharedtest.utils.ResourceString.loved_hated_songs +import org.listenbrainz.sharedtest.utils.ResourceString.topAlbums +import org.listenbrainz.sharedtest.utils.ResourceString.topSongs +import org.listenbrainz.sharedtest.utils.ResourceString.top_artists +import org.listenbrainz.sharedtest.utils.ResourceString.userListeningActivity + +object UserRepositoryTestData { + val listenCountTestData: Listens = Listens( + payload = Payload( + count = 34946, + latest_listen_ts = 0, + listens = listOf(), + user_id = "akshaaatt" + ) + ) + + val userSimilarityTestData: UserSimilarityPayload = UserSimilarityPayload( + userSimilarity = UserSimilarity( + similarity = 0.2580655f, + username = "Shubhi" + ) + ) + + val currentPinsTestData: CurrentPins? + get() = Gson().fromJson(current_pins, CurrentPins::class.java) + + val allPinsTestData: AllPinnedRecordings? + get() = Gson().fromJson(all_pins, AllPinnedRecordings::class.java) + + val topArtistsTestData: TopArtists? + get() = Gson().fromJson(top_artists, TopArtists::class.java) + + val lovedHatedSongsTestData: UserFeedback? + get() = Gson().fromJson(loved_hated_songs, UserFeedback::class.java) + + val listeningActivityTestData: UserListeningActivity? + get() = Gson().fromJson(userListeningActivity, UserListeningActivity::class.java) + + val globalListeningActivityTestData: UserListeningActivity? + get() = Gson().fromJson(globalListeningActivity, UserListeningActivity::class.java) + + val topAlbumsTestData: TopAlbums? + get() = Gson().fromJson(topAlbums, TopAlbums::class.java) + + val topSongsTestData: TopSongs? + get() = Gson().fromJson(topSongs, TopSongs::class.java) +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt index b261f2b4..1a237663 100644 --- a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt @@ -76,6 +76,38 @@ object ResourceString { val yim_data by lazy { EntityTestUtils.loadResourceAsString("yim_data.json") } + + val current_pins by lazy { + EntityTestUtils.loadResourceAsString("current_pins.json") + } + + val all_pins by lazy { + EntityTestUtils.loadResourceAsString("pins.json") + } + + val top_artists by lazy { + EntityTestUtils.loadResourceAsString("top_artists.json") + } + + val loved_hated_songs by lazy { + EntityTestUtils.loadResourceAsString("loved_hated_songs.json") + } + + val userListeningActivity by lazy { + EntityTestUtils.loadResourceAsString("listening_activity.json") + } + + val globalListeningActivity by lazy { + EntityTestUtils.loadResourceAsString("global_listening_activity.json") + } + + val topAlbums by lazy { + EntityTestUtils.loadResourceAsString("top_albums.json") + } + + val topSongs by lazy { + EntityTestUtils.loadResourceAsString("top_songs.json") + } fun String.toClass(): T { return Gson().fromJson(this, object: TypeToken() {}.type) diff --git a/sharedTest/src/main/resources/current_pins.json b/sharedTest/src/main/resources/current_pins.json new file mode 100644 index 00000000..f809c450 --- /dev/null +++ b/sharedTest/src/main/resources/current_pins.json @@ -0,0 +1 @@ +{"pinned_recording":{"blurb_content":"Noice","created":1723356490,"pinned_until":1723961286,"recording_mbid":null,"recording_msid":"cbf5a3fb-6823-4a94-a211-cb811d99e59d","row_id":2270,"track_metadata":{"additional_info":{"recording_msid":"cbf5a3fb-6823-4a94-a211-cb811d99e59d"},"artist_name":"*NSYNC","release_name":"No Strings Attached","track_name":"Bye Bye Bye - From Deadpool and Wolverine Soundtrack"}},"user_name":"pranavkonidena"} diff --git a/sharedTest/src/main/resources/global_listening_activity.json b/sharedTest/src/main/resources/global_listening_activity.json new file mode 100644 index 00000000..b300b5f6 --- /dev/null +++ b/sharedTest/src/main/resources/global_listening_activity.json @@ -0,0 +1 @@ +{"payload":{"from_ts":1640995200,"last_updated":1723265196,"listening_activity":[{"from_ts":1640995200,"listen_count":6691289,"time_range":"January 2022","to_ts":1643673599},{"from_ts":1643673600,"listen_count":6134594,"time_range":"February 2022","to_ts":1646092799},{"from_ts":1646092800,"listen_count":6324802,"time_range":"March 2022","to_ts":1648771199},{"from_ts":1648771200,"listen_count":6565411,"time_range":"April 2022","to_ts":1651363199},{"from_ts":1651363200,"listen_count":6940411,"time_range":"May 2022","to_ts":1654041599},{"from_ts":1654041600,"listen_count":6554844,"time_range":"June 2022","to_ts":1656633599},{"from_ts":1656633600,"listen_count":6664966,"time_range":"July 2022","to_ts":1659311999},{"from_ts":1659312000,"listen_count":6607955,"time_range":"August 2022","to_ts":1661990399},{"from_ts":1661990400,"listen_count":6429763,"time_range":"September 2022","to_ts":1664582399},{"from_ts":1664582400,"listen_count":6852810,"time_range":"October 2022","to_ts":1667260799},{"from_ts":1667260800,"listen_count":6724437,"time_range":"November 2022","to_ts":1669852799},{"from_ts":1669852800,"listen_count":7021955,"time_range":"December 2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":7013311,"time_range":"January 2023","to_ts":1675209599},{"from_ts":1675209600,"listen_count":6435625,"time_range":"February 2023","to_ts":1677628799},{"from_ts":1677628800,"listen_count":7010537,"time_range":"March 2023","to_ts":1680307199},{"from_ts":1680307200,"listen_count":6569518,"time_range":"April 2023","to_ts":1682899199},{"from_ts":1682899200,"listen_count":6734487,"time_range":"May 2023","to_ts":1685577599},{"from_ts":1685577600,"listen_count":6369453,"time_range":"June 2023","to_ts":1688169599},{"from_ts":1688169600,"listen_count":6442968,"time_range":"July 2023","to_ts":1690847999},{"from_ts":1690848000,"listen_count":6400835,"time_range":"August 2023","to_ts":1693526399},{"from_ts":1693526400,"listen_count":6330734,"time_range":"September 2023","to_ts":1696118399},{"from_ts":1696118400,"listen_count":6711283,"time_range":"October 2023","to_ts":1698796799},{"from_ts":1698796800,"listen_count":6367547,"time_range":"November 2023","to_ts":1701388799},{"from_ts":1701388800,"listen_count":6567587,"time_range":"December 2023","to_ts":1704067199}],"range":"year","to_ts":1704067200}} diff --git a/sharedTest/src/main/resources/listening_activity.json b/sharedTest/src/main/resources/listening_activity.json new file mode 100644 index 00000000..13c5acd3 --- /dev/null +++ b/sharedTest/src/main/resources/listening_activity.json @@ -0,0 +1 @@ +{"payload":{"from_ts":1640995200,"last_updated":1723265175,"listening_activity":[{"from_ts":1640995200,"listen_count":1148,"time_range":"January 2022","to_ts":1643673599},{"from_ts":1643673600,"listen_count":1177,"time_range":"February 2022","to_ts":1646092799},{"from_ts":1646092800,"listen_count":894,"time_range":"March 2022","to_ts":1648771199},{"from_ts":1648771200,"listen_count":948,"time_range":"April 2022","to_ts":1651363199},{"from_ts":1651363200,"listen_count":1154,"time_range":"May 2022","to_ts":1654041599},{"from_ts":1654041600,"listen_count":1234,"time_range":"June 2022","to_ts":1656633599},{"from_ts":1656633600,"listen_count":1066,"time_range":"July 2022","to_ts":1659311999},{"from_ts":1659312000,"listen_count":1164,"time_range":"August 2022","to_ts":1661990399},{"from_ts":1661990400,"listen_count":884,"time_range":"September 2022","to_ts":1664582399},{"from_ts":1664582400,"listen_count":536,"time_range":"October 2022","to_ts":1667260799},{"from_ts":1667260800,"listen_count":789,"time_range":"November 2022","to_ts":1669852799},{"from_ts":1669852800,"listen_count":714,"time_range":"December 2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":841,"time_range":"January 2023","to_ts":1675209599},{"from_ts":1675209600,"listen_count":718,"time_range":"February 2023","to_ts":1677628799},{"from_ts":1677628800,"listen_count":878,"time_range":"March 2023","to_ts":1680307199},{"from_ts":1680307200,"listen_count":848,"time_range":"April 2023","to_ts":1682899199},{"from_ts":1682899200,"listen_count":752,"time_range":"May 2023","to_ts":1685577599},{"from_ts":1685577600,"listen_count":654,"time_range":"June 2023","to_ts":1688169599},{"from_ts":1688169600,"listen_count":491,"time_range":"July 2023","to_ts":1690847999},{"from_ts":1690848000,"listen_count":744,"time_range":"August 2023","to_ts":1693526399},{"from_ts":1693526400,"listen_count":867,"time_range":"September 2023","to_ts":1696118399},{"from_ts":1696118400,"listen_count":873,"time_range":"October 2023","to_ts":1698796799},{"from_ts":1698796800,"listen_count":827,"time_range":"November 2023","to_ts":1701388799},{"from_ts":1701388800,"listen_count":696,"time_range":"December 2023","to_ts":1704067199}],"range":"year","to_ts":1704067200,"user_id":"akshaaatt"}} diff --git a/sharedTest/src/main/resources/loved_hated_songs.json b/sharedTest/src/main/resources/loved_hated_songs.json new file mode 100644 index 00000000..4600acdb --- /dev/null +++ b/sharedTest/src/main/resources/loved_hated_songs.json @@ -0,0 +1 @@ +{"count":25,"feedback":[{"created":1707077704,"recording_mbid":"c46464b2-ee6e-448c-8d22-871b139a0e38","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"c46464b2-ee6e-448c-8d22-871b139a0e38","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Breaking the Habit"},"user_id":"akshaaatt"},{"created":1707077703,"recording_mbid":"54a3c21c-5395-44a2-b90b-b7fab8095c20","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"54a3c21c-5395-44a2-b90b-b7fab8095c20","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Faint"},"user_id":"akshaaatt"},{"created":1707077702,"recording_mbid":"50347f42-2a40-4df6-b358-07f994af7a3f","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":21070222550,"caa_release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","recording_mbid":"50347f42-2a40-4df6-b358-07f994af7a3f","release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b"},"release_name":"Minutes to Midnight","track_name":"What I\u2019ve Done"},"user_id":"akshaaatt"},{"created":1707077701,"recording_mbid":"352dd518-23cd-4c5a-9551-ba02097b177b","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"352dd518-23cd-4c5a-9551-ba02097b177b","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Numb"},"user_id":"akshaaatt"},{"created":1707077701,"recording_mbid":"9d70086c-5d7a-4e7f-b1ed-c53c4b11310f","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17352139218,"caa_release_mbid":"69b7b91a-43fc-483f-b8cf-22cdc8f69079","recording_mbid":"9d70086c-5d7a-4e7f-b1ed-c53c4b11310f","release_mbid":"a92e8636-a48c-4ad1-8a5f-4f8a968a50ac"},"release_name":"Hybrid Theory","track_name":"In the End"},"user_id":"akshaaatt"},{"created":1698546115,"recording_mbid":"234c556a-215b-4bb4-a0fa-2398cf331085","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Babbulicious","mbid_mapping":{"artist_mbids":["db442dbd-1579-4ff3-8472-bc4fc72c7522"],"artists":[{"artist_credit_name":"Babbulicious","artist_mbid":"db442dbd-1579-4ff3-8472-bc4fc72c7522","join_phrase":""}],"caa_id":35336159608,"caa_release_mbid":"43e2cac8-ac33-428e-9ad9-79827d4a8b34","recording_mbid":"234c556a-215b-4bb4-a0fa-2398cf331085","release_mbid":"43e2cac8-ac33-428e-9ad9-79827d4a8b34"},"release_name":"Gucci Chick","track_name":"Gucci Chick"},"user_id":"akshaaatt"},{"created":1692097010,"recording_mbid":"ea2a183f-5515-4a85-8228-72cf7e1ee90a","recording_msid":"d0f953f3-fdd4-4a7e-8004-fd000e0f804c","score":1,"track_metadata":{"additional_info":{"recording_msid":"d0f953f3-fdd4-4a7e-8004-fd000e0f804c"},"artist_name":"Billie Eilish","mbid_mapping":{"artist_mbids":["f4abc0b5-3f7a-4eff-8f78-ac078dbce533"],"artists":[{"artist_credit_name":"Billie Eilish","artist_mbid":"f4abc0b5-3f7a-4eff-8f78-ac078dbce533","join_phrase":""}],"caa_id":36301165720,"caa_release_mbid":"93ad159c-c69b-4cc5-ae5d-1136580fe04d","recording_mbid":"ea2a183f-5515-4a85-8228-72cf7e1ee90a","release_mbid":"93ad159c-c69b-4cc5-ae5d-1136580fe04d"},"release_name":"Live from the Barbie Dream House","track_name":"What Was I Made For?"},"user_id":"akshaaatt"},{"created":1685816977,"recording_mbid":"f3c609f4-be7f-42aa-9688-9f2aa38a5cb7","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"f3c609f4-be7f-42aa-9688-9f2aa38a5cb7","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Nobody Can Save Me"},"user_id":"akshaaatt"},{"created":1676722350,"recording_mbid":"9c49c2e3-dbe5-471c-8efa-d20d4341f635","recording_msid":"0b98fbc7-4792-4060-8b4c-969abab8c027","score":1,"track_metadata":{"additional_info":{"recording_msid":"0b98fbc7-4792-4060-8b4c-969abab8c027"},"artist_name":"Monali Thakur","mbid_mapping":{"artist_mbids":["adb5aa54-32b9-4587-83df-156d2c9bef1c"],"artists":[{"artist_credit_name":"Monali Thakur","artist_mbid":"adb5aa54-32b9-4587-83df-156d2c9bef1c","join_phrase":""}],"caa_id":38683132632,"caa_release_mbid":"865e074d-3209-4cdd-8589-480bb8cc1027","recording_mbid":"9c49c2e3-dbe5-471c-8efa-d20d4341f635","release_mbid":"865e074d-3209-4cdd-8589-480bb8cc1027"},"release_name":"Lootera","track_name":"Sawaar Loon"},"user_id":"akshaaatt"},{"created":1649338426,"recording_mbid":"c9319bbc-8dec-4c7c-8934-ee234345f705","recording_msid":"d07b81ac-0209-44ed-a38e-4ebcde6eddef","score":1,"track_metadata":{"additional_info":{"recording_msid":"d07b81ac-0209-44ed-a38e-4ebcde6eddef"},"artist_name":"Lauv","mbid_mapping":{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":20512551101,"caa_release_mbid":"47383b9f-d6ea-457c-9c95-6f9b6dd6fa36","recording_mbid":"c9319bbc-8dec-4c7c-8934-ee234345f705","release_mbid":"47383b9f-d6ea-457c-9c95-6f9b6dd6fa36"},"release_name":"I Like Me Better","track_name":"I Like Me Better"},"user_id":"akshaaatt"},{"created":1647712667,"recording_mbid":null,"recording_msid":"20492313-3623-491f-96aa-83aa5afa47a0","score":1,"track_metadata":{"additional_info":{"recording_msid":"20492313-3623-491f-96aa-83aa5afa47a0"},"artist_name":"Sasha Alex Sloan","release_name":"Older","track_name":"Older"},"user_id":"akshaaatt"},{"created":1647509892,"recording_mbid":"bfd84871-2523-40e5-a70f-04c9b0e28acf","recording_msid":"589e83ac-ac08-4fa1-b14e-767371f8f1b5","score":1,"track_metadata":{"additional_info":{"recording_msid":"589e83ac-ac08-4fa1-b14e-767371f8f1b5"},"artist_name":"Machine Gun Kelly feat. Bring Me the Horizon","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","074e3847-f67f-49f9-81f1-8c8cea147e8e"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"Bring Me the Horizon","artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","join_phrase":""}],"caa_id":32122624894,"caa_release_mbid":"a88712e3-1327-4472-af90-5e1af734c16a","recording_mbid":"bfd84871-2523-40e5-a70f-04c9b0e28acf","release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2"},"release_name":"MAINSTREAM SELLOUT","track_name":"maybe"},"user_id":"akshaaatt"},{"created":1647509700,"recording_mbid":"24d50452-6d0a-46f2-8ba1-9ff61dd8f3d2","recording_msid":"904b3f5e-64d0-4104-8e2b-cf87237872c5","score":1,"track_metadata":{"additional_info":{"recording_msid":"904b3f5e-64d0-4104-8e2b-cf87237872c5"},"artist_name":"Linkin Park feat. Kiiara","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419","dbc26631-5e61-4ba2-84ff-e1423a1c288a"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":" feat. "},{"artist_credit_name":"Kiiara","artist_mbid":"dbc26631-5e61-4ba2-84ff-e1423a1c288a","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"24d50452-6d0a-46f2-8ba1-9ff61dd8f3d2","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Heavy"},"user_id":"akshaaatt"},{"created":1647369312,"recording_mbid":"f9845fce-5ab7-456f-8579-6a1fcfa8cf25","recording_msid":"641886e4-5a74-49f4-990d-ed9ba82c2330","score":1,"track_metadata":{"additional_info":{"recording_msid":"641886e4-5a74-49f4-990d-ed9ba82c2330"},"artist_name":"Rihanna","mbid_mapping":{"artist_mbids":["73e5e69d-3554-40d8-8516-00cb38737a1c"],"artists":[{"artist_credit_name":"Rihanna","artist_mbid":"73e5e69d-3554-40d8-8516-00cb38737a1c","join_phrase":""}],"caa_id":14539517129,"caa_release_mbid":"3a7adfe2-6965-4b09-adb5-1b200346433d","recording_mbid":"f9845fce-5ab7-456f-8579-6a1fcfa8cf25","release_mbid":"ce71001c-f8c5-44b2-9c25-589693b64a22"},"release_name":"Music of the Sun","track_name":"Pon de Replay"},"user_id":"akshaaatt"},{"created":1646132106,"recording_mbid":"a89fa4c9-5e9f-4ed3-9478-1585783a5d5d","recording_msid":"7836aa1a-2c41-4279-a9b6-2263097b38c4","score":1,"track_metadata":{"additional_info":{"recording_msid":"7836aa1a-2c41-4279-a9b6-2263097b38c4"},"artist_name":"Carpathian Forest","mbid_mapping":{"artist_mbids":["69fa5c49-12ec-4c86-a238-4e07cc6d1a7d"],"artists":[{"artist_credit_name":"Carpathian Forest","artist_mbid":"69fa5c49-12ec-4c86-a238-4e07cc6d1a7d","join_phrase":""}],"caa_id":1033890833,"caa_release_mbid":"3f2e996b-e231-4165-bba0-64ee3b67cf60","recording_mbid":"a89fa4c9-5e9f-4ed3-9478-1585783a5d5d","release_mbid":"3f2e996b-e231-4165-bba0-64ee3b67cf60"},"release_name":"Black Shining Leather","track_name":"A Forest"},"user_id":"akshaaatt"},{"created":1646131911,"recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77","score":1,"track_metadata":{"additional_info":{"recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"title track"},"user_id":"akshaaatt"},{"created":1645670072,"recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","recording_msid":"cf41b59d-9c9d-4042-81c8-09b92797d46d","score":1,"track_metadata":{"additional_info":{"recording_msid":"cf41b59d-9c9d-4042-81c8-09b92797d46d"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366800098,"caa_release_mbid":"5d987f56-4c51-4c1b-9e67-b6f6e0fc46fd","recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"bloody valentine"},"user_id":"akshaaatt"},{"created":1645178278,"recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46","score":1,"track_metadata":{"additional_info":{"recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":37184507977,"caa_release_mbid":"64ae938c-6af1-4919-8341-458eb1866474","recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","release_mbid":"ccfe374a-ccfa-4cbc-a37c-1cd40b914b75"},"release_name":"=","track_name":"Bad Habits"},"user_id":"akshaaatt"},{"created":1636226683,"recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5","score":1,"track_metadata":{"additional_info":{"recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5"},"artist_name":"Alex Gibson","mbid_mapping":{"artist_mbids":["aab3f709-be9e-48b9-9b9d-281fff5284f9"],"artists":[{"artist_credit_name":"Alex Gibson","artist_mbid":"aab3f709-be9e-48b9-9b9d-281fff5284f9","join_phrase":""}],"caa_id":15835295366,"caa_release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c","recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c"},"release_name":"Rockabye Baby! Lullaby Renditions of AC/DC","track_name":"Dirty Deeds Done Dirt Cheap"},"user_id":"akshaaatt"},{"created":1635871036,"recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e","score":1,"track_metadata":{"additional_info":{"recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e"},"artist_name":"Shelly Manne & His Friends","mbid_mapping":{"artist_mbids":["7c0c1773-513e-4c47-88de-310550319921"],"artists":[{"artist_credit_name":"Shelly Manne & His Friends","artist_mbid":"7c0c1773-513e-4c47-88de-310550319921","join_phrase":""}],"caa_id":26689007265,"caa_release_mbid":"928c6630-795e-4f6b-9b25-c36b8f4212d7","recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","release_mbid":"233bbe84-df40-4755-84e3-9c5937e91f8e"},"release_name":"Shelly Manne & His Friends Play Modern Jazz Performances of Songs from My Fair Lady","track_name":"Get Me to the Church on Time"},"user_id":"akshaaatt"},{"created":1632294500,"recording_mbid":"015021a9-2621-4593-b82d-f1f28bdf440a","recording_msid":"920f49da-1de3-4902-873f-8c5d2815884b","score":1,"track_metadata":{"additional_info":{"recording_msid":"920f49da-1de3-4902-873f-8c5d2815884b"},"artist_name":"Zedd & Alessia Cara","mbid_mapping":{"artist_mbids":["56c4b861-0922-4c3a-a9b9-3bfcb00f8274","97e69730-3791-423b-9770-287261588854"],"artists":[{"artist_credit_name":"Zedd","artist_mbid":"56c4b861-0922-4c3a-a9b9-3bfcb00f8274","join_phrase":" & "},{"artist_credit_name":"Alessia Cara","artist_mbid":"97e69730-3791-423b-9770-287261588854","join_phrase":""}],"caa_id":17157288690,"caa_release_mbid":"fe1176c5-aa68-4518-8548-0eb23ef8cd92","recording_mbid":"015021a9-2621-4593-b82d-f1f28bdf440a","release_mbid":"92541a9e-3507-484e-aecc-23577b8c3547"},"release_name":"Get Low","track_name":"Stay"},"user_id":"akshaaatt"},{"created":1632238295,"recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","recording_msid":"1312abf2-b12f-483f-935b-c7a283700481","score":1,"track_metadata":{"additional_info":{"recording_msid":"1312abf2-b12f-483f-935b-c7a283700481"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":31935928002,"caa_release_mbid":"14c13329-88f5-426f-90d7-0170b4017e15","recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","release_mbid":"769e64d7-b7a8-4ad1-84d8-0e0063d8fe64"},"release_name":"\u00f7","track_name":"Castle on the Hill"},"user_id":"akshaaatt"},{"created":1632224517,"recording_mbid":"07adabdd-1195-4ac5-9c75-8e2e11daa604","recording_msid":"aca55f75-a7e0-4989-8c57-88cb431bb219","score":1,"track_metadata":{"additional_info":{"recording_msid":"aca55f75-a7e0-4989-8c57-88cb431bb219"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"07adabdd-1195-4ac5-9c75-8e2e11daa604","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Battle Symphony"},"user_id":"akshaaatt"},{"created":1631784052,"recording_mbid":"1205dbc4-5fa4-4c19-b04b-50fdbf15ddf2","recording_msid":"eeba4144-9a77-4386-a932-d947a64c18ae","score":1,"track_metadata":{"additional_info":{"recording_msid":"eeba4144-9a77-4386-a932-d947a64c18ae"},"artist_name":"Mike Shinoda","mbid_mapping":{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":22130935658,"caa_release_mbid":"df9c66e7-07eb-4a9a-b9c6-4f41ae676a15","recording_mbid":"1205dbc4-5fa4-4c19-b04b-50fdbf15ddf2","release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9"},"release_name":"Post Traumatic","track_name":"Watching as I Fall"},"user_id":"akshaaatt"},{"created":1631784039,"recording_mbid":"8102a8b9-0b58-49aa-8f04-e6a49528bb46","recording_msid":"b3155220-34c3-4e29-bd9f-25bcf4109aa7","score":1,"track_metadata":{"additional_info":{"recording_msid":"b3155220-34c3-4e29-bd9f-25bcf4109aa7"},"artist_name":"Mike Shinoda","mbid_mapping":{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":22130935658,"caa_release_mbid":"df9c66e7-07eb-4a9a-b9c6-4f41ae676a15","recording_mbid":"8102a8b9-0b58-49aa-8f04-e6a49528bb46","release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9"},"release_name":"Post Traumatic","track_name":"Hold It Together"},"user_id":"akshaaatt"}],"offset":0,"total_count":31} diff --git a/sharedTest/src/main/resources/pins.json b/sharedTest/src/main/resources/pins.json new file mode 100644 index 00000000..9b690172 --- /dev/null +++ b/sharedTest/src/main/resources/pins.json @@ -0,0 +1 @@ +{"count":14,"offset":0,"pinned_recordings":[{"blurb_content":null,"created":1696606811,"pinned_until":1697211611,"recording_mbid":"9aa621e1-46f2-4c91-8111-741583985612","recording_msid":"2da9e60f-6b36-4ce1-a5fe-d84877a49006","row_id":1176,"track_metadata":{"additional_info":{"recording_msid":"2da9e60f-6b36-4ce1-a5fe-d84877a49006"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17352139218,"caa_release_mbid":"69b7b91a-43fc-483f-b8cf-22cdc8f69079","recording_mbid":"9aa621e1-46f2-4c91-8111-741583985612","release_mbid":"a92e8636-a48c-4ad1-8a5f-4f8a968a50ac"},"release_name":"Hybrid Theory","track_name":"Papercut"}},{"blurb_content":"Amazing song, worth listening!","created":1648492830,"pinned_until":1649097630,"recording_mbid":"5e54d4be-a83b-41d1-9372-06fa58b4c36d","recording_msid":"8ca79982-c17d-47f2-b8f4-8ab333b7acfb","row_id":308,"track_metadata":{"additional_info":{"recording_msid":"8ca79982-c17d-47f2-b8f4-8ab333b7acfb"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17454038939,"caa_release_mbid":"6c48c82c-b7df-4b0b-987d-666ec8271afb","recording_mbid":"5e54d4be-a83b-41d1-9372-06fa58b4c36d","release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310"},"release_name":"Living Things","track_name":"Burn It Down"}},{"blurb_content":"WONDERFUL SONG!","created":1646132933,"pinned_until":1646737733,"recording_mbid":"2397ee94-274f-451e-a330-2499a93fa9fb","recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77","row_id":227,"track_metadata":{"additional_info":{"recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77"},"artist_name":"Machine Gun Kelly","release_name":"Tickets To My Downfall (SOLD OUT Deluxe)","track_name":"title track"}},{"blurb_content":"Amazing","created":1645177870,"pinned_until":1645782670,"recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46","row_id":219,"track_metadata":{"additional_info":{"recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":37184507977,"caa_release_mbid":"64ae938c-6af1-4919-8341-458eb1866474","recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","release_mbid":"ccfe374a-ccfa-4cbc-a37c-1cd40b914b75"},"release_name":"=","track_name":"Bad Habits"}},{"blurb_content":null,"created":1645128476,"pinned_until":1645128664,"recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","recording_msid":"1312abf2-b12f-483f-935b-c7a283700481","row_id":217,"track_metadata":{"additional_info":{"recording_msid":"1312abf2-b12f-483f-935b-c7a283700481"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":31935928002,"caa_release_mbid":"14c13329-88f5-426f-90d7-0170b4017e15","recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","release_mbid":"769e64d7-b7a8-4ad1-84d8-0e0063d8fe64"},"release_name":"\u00f7","track_name":"Castle on the Hill"}},{"blurb_content":"Wonderful song!","created":1642502920,"pinned_until":1642530147,"recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","recording_msid":"2e647303-cd88-4d1c-ba87-6ddda72b5edc","row_id":192,"track_metadata":{"additional_info":{"recording_msid":"2e647303-cd88-4d1c-ba87-6ddda72b5edc"},"artist_name":"Lauv","mbid_mapping":{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85"},"release_name":"~how i\u2019m feeling~","track_name":"Feelings"}},{"blurb_content":"Amazing song!","created":1642333322,"pinned_until":1642502920,"recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","recording_msid":"b9d97e22-09c8-425a-a21d-946f631b62a9","row_id":190,"track_metadata":{"additional_info":{"recording_msid":"b9d97e22-09c8-425a-a21d-946f631b62a9"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8"},"release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"split a pill"}},{"blurb_content":"Amazing song!","created":1638638664,"pinned_until":1639075612,"recording_mbid":"1291edb5-97d4-4893-8baa-da7c4c542377","recording_msid":"2f3f2e96-4544-4bab-b948-281fe7592b77","row_id":157,"track_metadata":{"additional_info":{"recording_msid":"2f3f2e96-4544-4bab-b948-281fe7592b77"},"artist_name":"Calum Scott","mbid_mapping":{"artist_mbids":["68fdc9cc-1094-48bb-942f-66492343e41c"],"artists":[{"artist_credit_name":"Calum Scott","artist_mbid":"68fdc9cc-1094-48bb-942f-66492343e41c","join_phrase":""}],"caa_id":18877218596,"caa_release_mbid":"86ae5c62-7989-4993-bbdb-969d77f7872a","recording_mbid":"1291edb5-97d4-4893-8baa-da7c4c542377","release_mbid":"c34d0c8b-330f-4a16-84a7-41d87a931cf1"},"release_name":"Only Human","track_name":"Dancing on My Own"}},{"blurb_content":null,"created":1637923045,"pinned_until":1638245181,"recording_mbid":"e185bbc4-7d97-44d8-93b0-b47a32fec8cd","recording_msid":"1c3a7bed-1f96-4458-b876-73191ea3f397","row_id":151,"track_metadata":{"additional_info":{"recording_msid":"1c3a7bed-1f96-4458-b876-73191ea3f397"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":7389110443,"caa_release_mbid":"29424f55-f1b2-43f6-822d-700aa1f8595c","recording_mbid":"e185bbc4-7d97-44d8-93b0-b47a32fec8cd","release_mbid":"5f5aaf10-36a4-3dfc-a7c1-c2d5c2286647"},"release_name":"A Thousand Suns","track_name":"Iridescent"}},{"blurb_content":null,"created":1636381481,"pinned_until":1636986281,"recording_mbid":"a24974c0-9da0-4f02-b59b-b209e81e2ede","recording_msid":"dbc56879-a052-49eb-b949-ea4d624159ff","row_id":116,"track_metadata":{"additional_info":{"recording_msid":"dbc56879-a052-49eb-b949-ea4d624159ff"},"artist_name":"Maroon 5","mbid_mapping":{"artist_mbids":["0ab49580-c84f-44d4-875f-d83760ea2cfe"],"artists":[{"artist_credit_name":"Maroon 5","artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","join_phrase":""}],"caa_id":33632889799,"caa_release_mbid":"e8fe33d4-31a6-4394-941c-45fac8834322","recording_mbid":"a24974c0-9da0-4f02-b59b-b209e81e2ede","release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34"},"release_name":"V","track_name":"Maps"}},{"blurb_content":"Interesting song!","created":1636226679,"pinned_until":1636381455,"recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5","row_id":113,"track_metadata":{"additional_info":{"recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5"},"artist_name":"Alex Gibson","mbid_mapping":{"artist_mbids":["aab3f709-be9e-48b9-9b9d-281fff5284f9"],"artists":[{"artist_credit_name":"Alex Gibson","artist_mbid":"aab3f709-be9e-48b9-9b9d-281fff5284f9","join_phrase":""}],"caa_id":15835295366,"caa_release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c","recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c"},"release_name":"Rockabye Baby! Lullaby Renditions of AC/DC","track_name":"Dirty Deeds Done Dirt Cheap"}},{"blurb_content":null,"created":1635870142,"pinned_until":1636226679,"recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e","row_id":109,"track_metadata":{"additional_info":{"recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e"},"artist_name":"Shelly Manne & His Friends","mbid_mapping":{"artist_mbids":["7c0c1773-513e-4c47-88de-310550319921"],"artists":[{"artist_credit_name":"Shelly Manne & His Friends","artist_mbid":"7c0c1773-513e-4c47-88de-310550319921","join_phrase":""}],"caa_id":26689007265,"caa_release_mbid":"928c6630-795e-4f6b-9b25-c36b8f4212d7","recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","release_mbid":"233bbe84-df40-4755-84e3-9c5937e91f8e"},"release_name":"Shelly Manne & His Friends Play Modern Jazz Performances of Songs from My Fair Lady","track_name":"Get Me to the Church on Time"}},{"blurb_content":"Great song!","created":1630035558,"pinned_until":1630640358,"recording_mbid":"92972c5e-867b-4fa2-98c5-7bd57a4e440e","recording_msid":"0df8fc8a-49b3-4854-a371-0bd19d4668c8","row_id":19,"track_metadata":{"additional_info":{"recording_msid":"0df8fc8a-49b3-4854-a371-0bd19d4668c8"},"artist_name":"Fort Minor","mbid_mapping":{"artist_mbids":["e1564e98-978b-4947-8698-f6fd6f8b0181"],"artists":[{"artist_credit_name":"Fort Minor","artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","join_phrase":""}],"caa_id":28875936991,"caa_release_mbid":"2260aedd-155d-33b0-a4bb-6db7ce3f6598","recording_mbid":"92972c5e-867b-4fa2-98c5-7bd57a4e440e","release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e"},"release_name":"The Rising Tied","track_name":"Petrified"}},{"blurb_content":null,"created":1630035458,"pinned_until":1630035558,"recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","recording_msid":"566c2f69-5db0-4f2c-a504-a27836238fed","row_id":18,"track_metadata":{"additional_info":{"recording_msid":"566c2f69-5db0-4f2c-a504-a27836238fed"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"concert for aliens"}}],"total_count":14,"user_name":"akshaaatt"} diff --git a/sharedTest/src/main/resources/top_albums.json b/sharedTest/src/main/resources/top_albums.json new file mode 100644 index 00000000..8bb1b7e2 --- /dev/null +++ b/sharedTest/src/main/resources/top_albums.json @@ -0,0 +1 @@ +{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723268591,"offset":0,"range":"all_time","releases":[{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":2463,"release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16767050943,"caa_release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b","listen_count":1115,"release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b","release_name":"One More Light"},{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artist_name":"Lauv","artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","listen_count":1023,"release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","release_name":"~how i\u2019m feeling~"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":11788642695,"caa_release_mbid":"e7d13ff4-ec74-4eff-b0d3-bdc00b720944","listen_count":927,"release_mbid":"b6d0161d-1073-48e2-8503-4bd3261899ee","release_name":"Blue Neighbourhood"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":731,"release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)"},{"artist_mbids":["1a425bbd-cca4-4b2c-aeb7-71cb176c828a"],"artist_name":"One Direction","artists":[{"artist_credit_name":"One Direction","artist_mbid":"1a425bbd-cca4-4b2c-aeb7-71cb176c828a","join_phrase":""}],"caa_id":34762378442,"caa_release_mbid":"a31c02ee-5f62-4b9d-b576-2b02c5e4d750","listen_count":561,"release_mbid":"a31c02ee-5f62-4b9d-b576-2b02c5e4d750","release_name":"Four: The Ultimate Edition"},{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artist_name":"Mike Shinoda","artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":19495585058,"caa_release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9","listen_count":542,"release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9","release_name":"Post Traumatic"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":20981274842,"caa_release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","listen_count":518,"release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","release_name":"Bloom"},{"artist_mbids":["074e3847-f67f-49f9-81f1-8c8cea147e8e"],"artist_name":"Bring Me the Horizon","artists":[{"artist_credit_name":"Bring Me the Horizon","artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","join_phrase":""}],"caa_id":16426388091,"caa_release_mbid":"a78e93a9-6073-4d80-a69b-d008936257f3","listen_count":513,"release_mbid":"a78e93a9-6073-4d80-a69b-d008936257f3","release_name":"That\u2019s the Spirit"},{"artist_mbids":["21a14ee3-cede-420a-9d6d-a33517d2f952"],"artist_name":"Alec Benjamin","artists":[{"artist_credit_name":"Alec Benjamin","artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","join_phrase":""}],"caa_id":31885394071,"caa_release_mbid":"946b0030-b999-4f21-b9d1-9e82f02e6d96","listen_count":496,"release_mbid":"eeb50973-2e71-4d04-939e-298ba8bc0af8","release_name":"(Un)Commentary"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":21070222550,"caa_release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","listen_count":495,"release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","release_name":"Minutes to Midnight"},{"artist_mbids":[],"artist_name":"Sanam Malik, ANA","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":419,"release_mbid":null,"release_name":"Jaane Kaise"},{"artist_mbids":["0ab49580-c84f-44d4-875f-d83760ea2cfe"],"artist_name":"Maroon 5","artists":[{"artist_credit_name":"Maroon 5","artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","join_phrase":""}],"caa_id":22165193878,"caa_release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34","listen_count":384,"release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34","release_name":"V"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":32210635464,"caa_release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2","listen_count":374,"release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2","release_name":"MAINSTREAM SELLOUT"},{"artist_mbids":["e1564e98-978b-4947-8698-f6fd6f8b0181"],"artist_name":"Fort Minor","artists":[{"artist_credit_name":"Fort Minor","artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","join_phrase":""}],"caa_id":5891285623,"caa_release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e","listen_count":371,"release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e","release_name":"The Rising Tied"},{"artist_mbids":["89ad4ac3-39f7-470e-963a-56509c546377"],"artist_name":"\u30f4\u30a1\u30ea\u30a2\u30b9\u30fb\u30a2\u30fc\u30c6\u30a3\u30b9\u30c8","artists":[{"artist_credit_name":"\u30f4\u30a1\u30ea\u30a2\u30b9\u30fb\u30a2\u30fc\u30c6\u30a3\u30b9\u30c8","artist_mbid":"89ad4ac3-39f7-470e-963a-56509c546377","join_phrase":""}],"caa_id":38587113752,"caa_release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","listen_count":351,"release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","release_name":"\u604b\u3057\u305f\u304f\u306a\u308b\u30e9\u30d6\u30bd\u30f3\u30b0"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17668660885,"caa_release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310","listen_count":343,"release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310","release_name":"Living Things"},{"artist_mbids":["b1e26560-60e5-4236-bbdb-9aa5a8d5ee19"],"artist_name":"Post Malone","artists":[{"artist_credit_name":"Post Malone","artist_mbid":"b1e26560-60e5-4236-bbdb-9aa5a8d5ee19","join_phrase":""}],"caa_id":24123818307,"caa_release_mbid":"fe2c8953-e3d5-40fe-a855-cdb5eb8357a0","listen_count":342,"release_mbid":"fe2c8953-e3d5-40fe-a855-cdb5eb8357a0","release_name":"Hollywood\u2019s Bleeding"},{"artist_mbids":["ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"],"artist_name":"Arctic Monkeys","artists":[{"artist_credit_name":"Arctic Monkeys","artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","join_phrase":""}],"caa_id":32131848311,"caa_release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","listen_count":339,"release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","release_name":"AM"},{"artist_mbids":["985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7"],"artist_name":"ZAYN","artists":[{"artist_credit_name":"ZAYN","artist_mbid":"985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7","join_phrase":""}],"caa_id":22079449622,"caa_release_mbid":"871f8a05-6620-41dc-a569-624122029ce7","listen_count":321,"release_mbid":"6d4045e6-432d-4302-af8e-923e581ad6c7","release_name":"Icarus Falls"},{"artist_mbids":[],"artist_name":"TakaseToya, emi noda","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":319,"release_mbid":null,"release_name":"The 2nd of Undecimber"},{"artist_mbids":["6f500293-7396-4903-b4fd-118127d06f9e","ddd49f88-6367-4f58-9dd9-a767e976b0b7"],"artist_name":"RADWIMPS feat. \u5341\u660e","artists":[{"artist_credit_name":"RADWIMPS","artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","join_phrase":" feat. "},{"artist_credit_name":"\u5341\u660e","artist_mbid":"ddd49f88-6367-4f58-9dd9-a767e976b0b7","join_phrase":""}],"caa_id":33711108184,"caa_release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","listen_count":317,"release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","release_name":"\u3059\u305a\u3081"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9"],"artist_name":"The Weeknd","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":""}],"caa_id":16759920843,"caa_release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","listen_count":307,"release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","release_name":"Starboy"},{"artist_mbids":["f931c961-b647-4861-be8c-f47d84a4de51"],"artist_name":"Diljit Dosanjh","artists":[{"artist_credit_name":"Diljit Dosanjh","artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","join_phrase":""}],"caa_id":31442218448,"caa_release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","listen_count":306,"release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","release_name":"MoonChild Era"},{"artist_mbids":["98c09f94-10b5-426c-b27a-44345bb54528"],"artist_name":"Sasha Sloan","artists":[{"artist_credit_name":"Sasha Sloan","artist_mbid":"98c09f94-10b5-426c-b27a-44345bb54528","join_phrase":""}],"caa_id":32812417399,"caa_release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","listen_count":285,"release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","release_name":"Self Portrait"}],"to_ts":1723248018,"total_release_count":1360,"user_id":"akshaaatt"}} diff --git a/sharedTest/src/main/resources/top_artists.json b/sharedTest/src/main/resources/top_artists.json new file mode 100644 index 00000000..7c93c076 --- /dev/null +++ b/sharedTest/src/main/resources/top_artists.json @@ -0,0 +1 @@ +{"payload":{"artists":[{"artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","artist_name":"mgk","listen_count":3762},{"artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","artist_name":"Linkin Park","listen_count":3000},{"artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","artist_name":"Troye Sivan","listen_count":2515},{"artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","artist_name":"Lauv","listen_count":1730},{"artist_mbid":"20244d07-534f-4eff-b4d4-930878889970","artist_name":"Taylor Swift","listen_count":1038},{"artist_mbid":"3377f3bb-60fc-4403-aea9-7e800612e060","artist_name":"Halsey","listen_count":1014},{"artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","artist_name":"Mike Shinoda","listen_count":1003},{"artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","artist_name":"Bring Me the Horizon","listen_count":983},{"artist_mbid":"f4fdbb4c-e4b7-47a0-b83b-d91bbfcfa387","artist_name":"Ariana Grande","listen_count":747},{"artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","artist_name":"Alec Benjamin","listen_count":728},{"artist_mbid":"1a425bbd-cca4-4b2c-aeb7-71cb176c828a","artist_name":"One Direction","listen_count":696},{"artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","artist_name":"Arctic Monkeys","listen_count":687},{"artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","artist_name":"Maroon 5","listen_count":631},{"artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","artist_name":"The Weeknd","listen_count":588},{"artist_mbid":"e07d9474-00ea-4460-ac27-88b46b3d976e","artist_name":"blackbear","listen_count":522},{"artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","artist_name":"RADWIMPS","listen_count":448},{"artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","artist_name":"Fort Minor","listen_count":431},{"artist_mbid":"985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7","artist_name":"ZAYN","listen_count":421},{"artist_mbid":null,"artist_name":"Sanam Malik, ANA","listen_count":419},{"artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","artist_name":"Diljit Dosanjh","listen_count":419},{"artist_mbid":"c984f772-a70d-44b6-ad12-47ec8d3fdd35","artist_name":"Aditya A","listen_count":419},{"artist_mbid":"b1e26560-60e5-4236-bbdb-9aa5a8d5ee19","artist_name":"Post Malone","listen_count":364},{"artist_mbid":"4757df70-6c3e-46b8-99c0-a68644595c9a","artist_name":"Julia Michaels","listen_count":361},{"artist_mbid":"68fdc9cc-1094-48bb-942f-66492343e41c","artist_name":"Calum Scott","listen_count":361},{"artist_mbid":"525f1f1c-03f0-4bc8-8dfd-e7521f87631b","artist_name":"Charlie Puth","listen_count":335}],"count":25,"from_ts":1009843200,"last_updated":1723268040,"offset":0,"range":"all_time","to_ts":1723248018,"total_artist_count":1093,"user_id":"akshaaatt"}} diff --git a/sharedTest/src/main/resources/top_songs.json b/sharedTest/src/main/resources/top_songs.json new file mode 100644 index 00000000..6adb7ea1 --- /dev/null +++ b/sharedTest/src/main/resources/top_songs.json @@ -0,0 +1 @@ +{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723270823,"offset":0,"range":"all_time","recordings":[{"artist_mbids":["21a14ee3-cede-420a-9d6d-a33517d2f952"],"artist_name":"Alec Benjamin","artists":[{"artist_credit_name":"Alec Benjamin","artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","join_phrase":""}],"caa_id":31885394071,"caa_release_mbid":"946b0030-b999-4f21-b9d1-9e82f02e6d96","listen_count":431,"recording_mbid":"e2ef1fc7-88c5-44c0-abde-7144f55d15bd","release_mbid":"eeb50973-2e71-4d04-939e-298ba8bc0af8","release_name":"(Un)Commentary","track_name":"Older"},{"artist_mbids":[],"artist_name":"Sanam Malik, ANA","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":419,"recording_mbid":null,"release_mbid":null,"release_name":"Jaane Kaise","track_name":"Jaane Kaise"},{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artist_name":"Lauv","artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","listen_count":411,"recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","release_name":"~how i\u2019m feeling~","track_name":"Feelings"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","e07d9474-00ea-4460-ac27-88b46b3d976e"],"artist_name":"Machine Gun Kelly feat. blackbear","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"blackbear","artist_mbid":"e07d9474-00ea-4460-ac27-88b46b3d976e","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":399,"recording_mbid":"6cd38dad-148f-4381-9cf4-b75f496238c6","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"my ex\u2019s best friend"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":11788642695,"caa_release_mbid":"e7d13ff4-ec74-4eff-b0d3-bdc00b720944","listen_count":390,"recording_mbid":"15e7a501-4f35-4977-8956-0e0c8b644af6","release_mbid":"b6d0161d-1073-48e2-8503-4bd3261899ee","release_name":"Blue Neighbourhood","track_name":"LOST BOY"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":38587113752,"caa_release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","listen_count":351,"recording_mbid":"0f8d5cc0-7e6e-486e-9544-eca4736cd8b7","release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","release_name":"\u604b\u3057\u305f\u304f\u306a\u308b\u30e9\u30d6\u30bd\u30f3\u30b0","track_name":"Strawberries & Cigarettes"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":20981274842,"caa_release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","listen_count":319,"recording_mbid":"f75b6b94-46b3-4c0a-af56-05b4dfbee957","release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","release_name":"Bloom","track_name":"Lucky Strike"},{"artist_mbids":[],"artist_name":"TakaseToya, emi noda","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":319,"recording_mbid":null,"release_mbid":null,"release_name":"The 2nd of Undecimber","track_name":"Doushite"},{"artist_mbids":["6f500293-7396-4903-b4fd-118127d06f9e","ddd49f88-6367-4f58-9dd9-a767e976b0b7"],"artist_name":"RADWIMPS feat. \u5341\u660e","artists":[{"artist_credit_name":"RADWIMPS","artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","join_phrase":" feat. "},{"artist_credit_name":"\u5341\u660e","artist_mbid":"ddd49f88-6367-4f58-9dd9-a767e976b0b7","join_phrase":""}],"caa_id":33711108184,"caa_release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","listen_count":317,"recording_mbid":"4da804f6-98dc-456b-8fb3-5ffd971b18ec","release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","release_name":"\u3059\u305a\u3081","track_name":"\u3059\u305a\u3081"},{"artist_mbids":["f931c961-b647-4861-be8c-f47d84a4de51"],"artist_name":"Diljit Dosanjh","artists":[{"artist_credit_name":"Diljit Dosanjh","artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","join_phrase":""}],"caa_id":31442218448,"caa_release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","listen_count":296,"recording_mbid":"170dc09e-2d38-407f-aa3f-4807e7d1f3d2","release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","release_name":"MoonChild Era","track_name":"Lover"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9","056e4f3e-d505-4dad-8ec1-d04f521cbb56"],"artist_name":"The Weeknd featuring Daft Punk","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":" featuring "},{"artist_credit_name":"Daft Punk","artist_mbid":"056e4f3e-d505-4dad-8ec1-d04f521cbb56","join_phrase":""}],"caa_id":16759920843,"caa_release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","listen_count":289,"recording_mbid":"3da01a8e-3c71-408f-a9c7-0c4d10ad4e7d","release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","release_name":"Starboy","track_name":"Starboy"},{"artist_mbids":["98c09f94-10b5-426c-b27a-44345bb54528"],"artist_name":"Sasha Sloan","artists":[{"artist_credit_name":"Sasha Sloan","artist_mbid":"98c09f94-10b5-426c-b27a-44345bb54528","join_phrase":""}],"caa_id":32812417399,"caa_release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","listen_count":284,"recording_mbid":"9ae71082-ac47-4b9c-a12b-a67fff75784a","release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","release_name":"Self Portrait","track_name":"Dancing With Your Ghost"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":277,"recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"concert for aliens"},{"artist_mbids":[],"artist_name":"ZAYN","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":264,"recording_mbid":null,"release_mbid":null,"release_name":"Icarus Falls","track_name":"There You Are"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":263,"recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"title track"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":252,"recording_mbid":"b6e4f4ea-b20c-4489-b0e6-c09f40b0ef18","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"jawbreaker"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":237,"recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"bloody valentine"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":236,"recording_mbid":"5ca5de59-bdd5-41fb-beae-2b343ee6f90d","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"hangover cure"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":26731335835,"caa_release_mbid":"0ab6cf1d-48a5-4227-a0f4-70bc47a39b58","listen_count":230,"recording_mbid":"f87aa613-a335-44a8-a702-7b15840dc74b","release_mbid":"0ab6cf1d-48a5-4227-a0f4-70bc47a39b58","release_name":"Easy","track_name":"Easy"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9"],"artist_name":"The Weeknd","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":""}],"caa_id":25807105705,"caa_release_mbid":"fd7ebee8-8c64-4127-a9be-8e31ed6364e3","listen_count":221,"recording_mbid":"1a67e215-a19e-40c9-9b12-732de134bf5f","release_mbid":"fd7ebee8-8c64-4127-a9be-8e31ed6364e3","release_name":"After Hours","track_name":"Blinding Lights"},{"artist_mbids":[],"artist_name":"Sasha Alex Sloan","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":212,"recording_mbid":null,"release_mbid":null,"release_name":"Older","track_name":"Older"},{"artist_mbids":["aa5891dd-9306-48e5-a1ee-77d2519abb61"],"artist_name":"Dikshant","artists":[{"artist_credit_name":"Dikshant","artist_mbid":"aa5891dd-9306-48e5-a1ee-77d2519abb61","join_phrase":""}],"caa_id":32335009413,"caa_release_mbid":"3626f26a-cda7-4413-9718-7dc61c8bde7c","listen_count":206,"recording_mbid":"8491bdca-0345-4c8a-9421-b53bbffdc168","release_mbid":"3626f26a-cda7-4413-9718-7dc61c8bde7c","release_name":"Aankhon Se Batana","track_name":"Aankhon Se Batana"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":203,"recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"split a pill"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","97529a9e-4b5a-4a9c-9c08-c42401d1c268","10a048d2-9afd-42d9-912e-0eb36c724f70"],"artist_name":"Machine Gun Kelly feat. YUNGBLUD & Bert McCracken","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"YUNGBLUD","artist_mbid":"97529a9e-4b5a-4a9c-9c08-c42401d1c268","join_phrase":" & "},{"artist_credit_name":"Bert McCracken","artist_mbid":"10a048d2-9afd-42d9-912e-0eb36c724f70","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":202,"recording_mbid":"25dfdccf-5092-4805-af42-f20146c8d18f","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"body bag"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":196,"recording_mbid":"ddabeccd-b0e5-406e-aa1a-d4fdfa29f99e","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"kiss kiss"}],"to_ts":1723248018,"total_recording_count":2243,"user_id":"akshaaatt"}} From 93f880671fe1a5d35eaa87d670b951bf62824d2b Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Mon, 12 Aug 2024 19:47:21 +0530 Subject: [PATCH 03/10] Added 100% Coverage Unit tests for repository --- .../android/user/UserRepositoryTest.kt | 342 ++++++++++++++++++ .../testdata/UserRepositoryTestData.kt | 4 +- .../sharedtest/utils/ResourceString.kt | 10 + .../resources/global_listening_activity.json | 2 +- .../src/main/resources/listen_count.json | 1 + .../main/resources/listening_activity.json | 2 +- .../src/main/resources/loved_hated_songs.json | 2 +- sharedTest/src/main/resources/pins.json | 2 +- .../main/resources/similar_user_error.json | 1 + .../resources/similar_users_response.json | 2 +- sharedTest/src/main/resources/top_albums.json | 2 +- .../src/main/resources/top_artists.json | 2 +- sharedTest/src/main/resources/top_songs.json | 2 +- 13 files changed, 364 insertions(+), 10 deletions(-) create mode 100644 app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt create mode 100644 sharedTest/src/main/resources/listen_count.json create mode 100644 sharedTest/src/main/resources/similar_user_error.json diff --git a/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt new file mode 100644 index 00000000..f3ca96cd --- /dev/null +++ b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt @@ -0,0 +1,342 @@ +package org.listenbrainz.android.user + +import kotlinx.coroutines.test.runTest +import okhttp3.mockwebserver.Dispatcher +import okhttp3.mockwebserver.MockResponse +import okhttp3.mockwebserver.MockWebServer +import okhttp3.mockwebserver.RecordedRequest +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertNull +import org.junit.Before +import org.junit.Test +import org.listenbrainz.android.model.ResponseError +import org.listenbrainz.android.repository.user.UserRepository +import org.listenbrainz.android.repository.user.UserRepositoryImpl +import org.listenbrainz.android.service.UserService +import org.listenbrainz.android.util.Resource +import org.listenbrainz.sharedtest.testdata.UserRepositoryTestData.listenCountTestData +import org.listenbrainz.sharedtest.utils.EntityTestUtils.testSomeOtherUser +import org.listenbrainz.sharedtest.utils.EntityTestUtils.testUserDNE +import org.listenbrainz.sharedtest.utils.EntityTestUtils.testUsername +import org.listenbrainz.sharedtest.utils.ResourceString.all_pins +import org.listenbrainz.sharedtest.utils.ResourceString.current_pins +import org.listenbrainz.sharedtest.utils.ResourceString.globalListeningActivity +import org.listenbrainz.sharedtest.utils.ResourceString.listenCount +import org.listenbrainz.sharedtest.utils.ResourceString.loved_hated_songs +import org.listenbrainz.sharedtest.utils.ResourceString.similarUserError +import org.listenbrainz.sharedtest.utils.ResourceString.similarUserErrorString +import org.listenbrainz.sharedtest.utils.ResourceString.similar_users_response +import org.listenbrainz.sharedtest.utils.ResourceString.topAlbums +import org.listenbrainz.sharedtest.utils.ResourceString.topSongs +import org.listenbrainz.sharedtest.utils.ResourceString.top_artists +import org.listenbrainz.sharedtest.utils.ResourceString.userListeningActivity +import org.listenbrainz.sharedtest.utils.ResourceString.user_does_not_exist_error +import org.listenbrainz.sharedtest.utils.RetrofitUtils + +class UserRepositoryTest { + + private lateinit var webServer: MockWebServer + private lateinit var repository: UserRepository + + @Before + fun setUp() { + webServer = MockWebServer() + webServer.dispatcher = object: Dispatcher() { + override fun dispatch(request: RecordedRequest): MockResponse { + return when(request.path){ + // Listen Count + "/user/$testUsername/listen-count" -> { + MockResponse().setResponseCode(200).setBody( + listenCount + ) + } + + "/user/$testUserDNE/listen-count" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Similar Users + "/user/$testUsername/similar-to/$testSomeOtherUser" -> { + MockResponse().setResponseCode(200).setBody( + similar_users_response + ) + } + + "/user/$testUsername/similar-to/$testUsername" -> { + MockResponse().setResponseCode(404).setBody( + similarUserError + ) + } + + // Current pins + "/$testUsername/pins/current" -> { + MockResponse().setResponseCode(200).setBody( + current_pins + ) + } + + "/$testUserDNE/pins/current" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // All Pins + "/$testUsername/pins" -> { + MockResponse().setResponseCode(200).setBody( + all_pins + ) + } + + "/$testUserDNE/pins" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Artists + "/stats/user/$testUsername/artists?range=all_time&count=25" -> { + MockResponse().setResponseCode(200).setBody( + top_artists + ) + } + + "/stats/user/$testUserDNE/artists?range=all_time&count=25" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Loved Hated Songs + "/feedback/user/$testUsername/get-feedback?metadata=true" -> { + MockResponse().setResponseCode(200).setBody( + loved_hated_songs + ) + } + + "/feedback/user/$testUserDNE/get-feedback?metadata=true" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Listening Activity + "/stats/user/$testUsername/listening-activity?range=all_time" -> { + MockResponse().setResponseCode(200).setBody( + userListeningActivity + ) + } + + "/stats/user/$testUserDNE/listening-activity?range=all_time" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Global Listening Activity + "/stats/sitewide/listening-activity?range=all_time" -> { + MockResponse().setResponseCode(200).setBody( + globalListeningActivity + ) + } + + // Top Albums + "/stats/user/$testUsername/releases?range=all_time" -> { + MockResponse().setResponseCode(200).setBody( + topAlbums + ) + } + + "/stats/user/$testUserDNE/releases?range=all_time" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + // Top Songs + "/stats/user/$testUsername/recordings?range=all_time" -> { + MockResponse().setResponseCode(200).setBody( + topSongs + ) + } + + "/stats/user/$testUserDNE/recordings?range=all_time" -> { + MockResponse().setResponseCode(404).setBody( + user_does_not_exist_error + ) + } + + else -> { + MockResponse().setResponseCode(404) + } + } + } + + } + webServer.start() + val service = RetrofitUtils.createTestService(UserService::class.java, webServer.url("/")) + repository = UserRepositoryImpl(service) + } + + @After + fun teardown() { + webServer.close() + } + + @Test + fun `fetch listen count for existing user`() = runTest { + val result = repository.fetchUserListenCount(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertEquals(listenCountTestData.payload.count, result.data?.payload?.count) + } + + @Test + fun `fetch listen count for non-existing user`() = runTest { + val result = repository.fetchUserListenCount(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch similar users for valid comparison`() = runTest { + val result = repository.fetchUserSimilarity(testUsername, testSomeOtherUser) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals("jivteshs20", result.data?.userSimilarity?.username) + } + + @Test + fun `fetch similar users for invalid comparison`() = runTest { + val result = repository.fetchUserSimilarity(testUsername, testUsername) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(similarUserErrorString, result.error?.actualResponse) + } + + @Test + fun `fetch current pins for existing user`() = runTest { + val result = repository.fetchUserCurrentPins(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(1.72335654E9f, result.data?.pinnedRecording?.created) + assertEquals("Noice", result.data?.pinnedRecording?.blurbContent) + } + + @Test + fun `fetch current pins for non-existing user`() = runTest { + val result = repository.fetchUserCurrentPins(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch all pins for existing user`() = runTest { + val result = repository.fetchUserPins(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(12, result.data?.count) + assertEquals("6f4a50ca-b636-4c0b-a6a0-5b84451ab014", result.data?.pinnedRecordings?.get(0)?.recordingMsid) + assertEquals(testUsername, result.data?.userName) + } + + @Test + fun `fetch all pins for non-existing user`() = runTest { + val result = repository.fetchUserPins(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch top artists for existing user`() = runTest { + val result = repository.getTopArtists(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals("Karan Aujla", result.data?.payload?.artists?.get(0)?.artistName) + assertEquals(25, result.data?.payload?.count) + } + + @Test + fun `fetch top artists for non-existing user`() = runTest { + val result = repository.getTopArtists(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch loved and hated songs for existing user`() = runTest { + val result = repository.getUserFeedback(testUsername, null) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(25, result.data?.count) + assertEquals("Calling", result.data?.feedback?.get(0)?.trackMetadata?.trackName) + assertEquals(testUsername, result?.data?.feedback?.get(2)?.userId) + } + + @Test + fun `fetch loved and hated songs for non-existing user`() = runTest { + val result = repository.getUserFeedback(testUserDNE, null) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch user listening activity for existing user`() = runTest { + val result = repository.getUserListeningActivity(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(testUsername, result.data?.payload?.userId) + assertEquals(2826, result.data?.payload?.listeningActivity?.get(21)?.listenCount) + } + + @Test + fun `fetch user listening activity for non-existing user`() = runTest { + val result = repository.getUserListeningActivity(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch global listening activity`() = runTest { + val result = repository.getGlobalListeningActivity() + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(4499100, result.data?.payload?.listeningActivity?.get(3)?.listenCount) + assertNull(result.data?.payload?.userId) + } + + @Test + fun `fetch top albums for existing user`() = runTest { + val result = repository.getTopAlbums(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals("Small Circle", result.data?.payload?.releases?.get(2)?.releaseName) + assertEquals(testUsername, result.data?.payload?.userId) + } + + @Test + fun `fetch top albums for non-existing user`() = runTest { + val result = repository.getTopAlbums(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + + @Test + fun `fetch top songs for existing user`() = runTest { + val result = repository.getTopSongs(testUsername) + assertEquals(Resource.Status.SUCCESS, result.status) + assertNotNull(result.data) + assertEquals(testUsername, result.data?.payload?.userId) + assertEquals("Small Circle", result.data?.payload?.recordings?.get(0)?.releaseName) + } + + @Test + fun `fetch top songs for non-existing user`() = runTest { + val result = repository.getTopSongs(testUserDNE) + assertEquals(Resource.Status.FAILED, result.status) + assertEquals(ResponseError.DOES_NOT_EXIST, result.error) + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt index 20a68c33..ce7f4d1c 100644 --- a/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/UserRepositoryTestData.kt @@ -24,10 +24,10 @@ import org.listenbrainz.sharedtest.utils.ResourceString.userListeningActivity object UserRepositoryTestData { val listenCountTestData: Listens = Listens( payload = Payload( - count = 34946, + count = 3252, latest_listen_ts = 0, listens = listOf(), - user_id = "akshaaatt" + user_id = "Jasjeet" ) ) diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt index 1a237663..f089956a 100644 --- a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt @@ -108,6 +108,16 @@ object ResourceString { val topSongs by lazy { EntityTestUtils.loadResourceAsString("top_songs.json") } + + const val similarUserErrorString = "Similar-to user not found" + + val similarUserError by lazy { + EntityTestUtils.loadResourceAsString("similar_user_error.json") + } + + val listenCount by lazy { + EntityTestUtils.loadResourceAsString("listen_count.json") + } fun String.toClass(): T { return Gson().fromJson(this, object: TypeToken() {}.type) diff --git a/sharedTest/src/main/resources/global_listening_activity.json b/sharedTest/src/main/resources/global_listening_activity.json index b300b5f6..1e4e4a71 100644 --- a/sharedTest/src/main/resources/global_listening_activity.json +++ b/sharedTest/src/main/resources/global_listening_activity.json @@ -1 +1 @@ -{"payload":{"from_ts":1640995200,"last_updated":1723265196,"listening_activity":[{"from_ts":1640995200,"listen_count":6691289,"time_range":"January 2022","to_ts":1643673599},{"from_ts":1643673600,"listen_count":6134594,"time_range":"February 2022","to_ts":1646092799},{"from_ts":1646092800,"listen_count":6324802,"time_range":"March 2022","to_ts":1648771199},{"from_ts":1648771200,"listen_count":6565411,"time_range":"April 2022","to_ts":1651363199},{"from_ts":1651363200,"listen_count":6940411,"time_range":"May 2022","to_ts":1654041599},{"from_ts":1654041600,"listen_count":6554844,"time_range":"June 2022","to_ts":1656633599},{"from_ts":1656633600,"listen_count":6664966,"time_range":"July 2022","to_ts":1659311999},{"from_ts":1659312000,"listen_count":6607955,"time_range":"August 2022","to_ts":1661990399},{"from_ts":1661990400,"listen_count":6429763,"time_range":"September 2022","to_ts":1664582399},{"from_ts":1664582400,"listen_count":6852810,"time_range":"October 2022","to_ts":1667260799},{"from_ts":1667260800,"listen_count":6724437,"time_range":"November 2022","to_ts":1669852799},{"from_ts":1669852800,"listen_count":7021955,"time_range":"December 2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":7013311,"time_range":"January 2023","to_ts":1675209599},{"from_ts":1675209600,"listen_count":6435625,"time_range":"February 2023","to_ts":1677628799},{"from_ts":1677628800,"listen_count":7010537,"time_range":"March 2023","to_ts":1680307199},{"from_ts":1680307200,"listen_count":6569518,"time_range":"April 2023","to_ts":1682899199},{"from_ts":1682899200,"listen_count":6734487,"time_range":"May 2023","to_ts":1685577599},{"from_ts":1685577600,"listen_count":6369453,"time_range":"June 2023","to_ts":1688169599},{"from_ts":1688169600,"listen_count":6442968,"time_range":"July 2023","to_ts":1690847999},{"from_ts":1690848000,"listen_count":6400835,"time_range":"August 2023","to_ts":1693526399},{"from_ts":1693526400,"listen_count":6330734,"time_range":"September 2023","to_ts":1696118399},{"from_ts":1696118400,"listen_count":6711283,"time_range":"October 2023","to_ts":1698796799},{"from_ts":1698796800,"listen_count":6367547,"time_range":"November 2023","to_ts":1701388799},{"from_ts":1701388800,"listen_count":6567587,"time_range":"December 2023","to_ts":1704067199}],"range":"year","to_ts":1704067200}} +{"payload":{"from_ts":1009843200,"last_updated":1723276132,"listening_activity":[{"from_ts":1009843200,"listen_count":0,"time_range":"2002","to_ts":1041379199},{"from_ts":1041379200,"listen_count":0,"time_range":"2003","to_ts":1072915199},{"from_ts":1072915200,"listen_count":0,"time_range":"2004","to_ts":1104537599},{"from_ts":1104537600,"listen_count":4499100,"time_range":"2005","to_ts":1136073599},{"from_ts":1136073600,"listen_count":14968386,"time_range":"2006","to_ts":1167609599},{"from_ts":1167609600,"listen_count":23196904,"time_range":"2007","to_ts":1199145599},{"from_ts":1199145600,"listen_count":29162509,"time_range":"2008","to_ts":1230767999},{"from_ts":1230768000,"listen_count":35131923,"time_range":"2009","to_ts":1262303999},{"from_ts":1262304000,"listen_count":38607004,"time_range":"2010","to_ts":1293839999},{"from_ts":1293840000,"listen_count":40623372,"time_range":"2011","to_ts":1325375999},{"from_ts":1325376000,"listen_count":42543270,"time_range":"2012","to_ts":1356998399},{"from_ts":1356998400,"listen_count":44428432,"time_range":"2013","to_ts":1388534399},{"from_ts":1388534400,"listen_count":46991101,"time_range":"2014","to_ts":1420070399},{"from_ts":1420070400,"listen_count":47381647,"time_range":"2015","to_ts":1451606399},{"from_ts":1451606400,"listen_count":48389126,"time_range":"2016","to_ts":1483228799},{"from_ts":1483228800,"listen_count":55776319,"time_range":"2017","to_ts":1514764799},{"from_ts":1514764800,"listen_count":60656566,"time_range":"2018","to_ts":1546300799},{"from_ts":1546300800,"listen_count":61831361,"time_range":"2019","to_ts":1577836799},{"from_ts":1577836800,"listen_count":68597734,"time_range":"2020","to_ts":1609459199},{"from_ts":1609459200,"listen_count":74473231,"time_range":"2021","to_ts":1640995199},{"from_ts":1640995200,"listen_count":79513237,"time_range":"2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":78953885,"time_range":"2023","to_ts":1704067199},{"from_ts":1704067200,"listen_count":43640832,"time_range":"2024","to_ts":1735689599}],"range":"all_time","to_ts":1723248018}} diff --git a/sharedTest/src/main/resources/listen_count.json b/sharedTest/src/main/resources/listen_count.json new file mode 100644 index 00000000..786573da --- /dev/null +++ b/sharedTest/src/main/resources/listen_count.json @@ -0,0 +1 @@ +{"payload":{"count":3252}} \ No newline at end of file diff --git a/sharedTest/src/main/resources/listening_activity.json b/sharedTest/src/main/resources/listening_activity.json index 13c5acd3..15691c62 100644 --- a/sharedTest/src/main/resources/listening_activity.json +++ b/sharedTest/src/main/resources/listening_activity.json @@ -1 +1 @@ -{"payload":{"from_ts":1640995200,"last_updated":1723265175,"listening_activity":[{"from_ts":1640995200,"listen_count":1148,"time_range":"January 2022","to_ts":1643673599},{"from_ts":1643673600,"listen_count":1177,"time_range":"February 2022","to_ts":1646092799},{"from_ts":1646092800,"listen_count":894,"time_range":"March 2022","to_ts":1648771199},{"from_ts":1648771200,"listen_count":948,"time_range":"April 2022","to_ts":1651363199},{"from_ts":1651363200,"listen_count":1154,"time_range":"May 2022","to_ts":1654041599},{"from_ts":1654041600,"listen_count":1234,"time_range":"June 2022","to_ts":1656633599},{"from_ts":1656633600,"listen_count":1066,"time_range":"July 2022","to_ts":1659311999},{"from_ts":1659312000,"listen_count":1164,"time_range":"August 2022","to_ts":1661990399},{"from_ts":1661990400,"listen_count":884,"time_range":"September 2022","to_ts":1664582399},{"from_ts":1664582400,"listen_count":536,"time_range":"October 2022","to_ts":1667260799},{"from_ts":1667260800,"listen_count":789,"time_range":"November 2022","to_ts":1669852799},{"from_ts":1669852800,"listen_count":714,"time_range":"December 2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":841,"time_range":"January 2023","to_ts":1675209599},{"from_ts":1675209600,"listen_count":718,"time_range":"February 2023","to_ts":1677628799},{"from_ts":1677628800,"listen_count":878,"time_range":"March 2023","to_ts":1680307199},{"from_ts":1680307200,"listen_count":848,"time_range":"April 2023","to_ts":1682899199},{"from_ts":1682899200,"listen_count":752,"time_range":"May 2023","to_ts":1685577599},{"from_ts":1685577600,"listen_count":654,"time_range":"June 2023","to_ts":1688169599},{"from_ts":1688169600,"listen_count":491,"time_range":"July 2023","to_ts":1690847999},{"from_ts":1690848000,"listen_count":744,"time_range":"August 2023","to_ts":1693526399},{"from_ts":1693526400,"listen_count":867,"time_range":"September 2023","to_ts":1696118399},{"from_ts":1696118400,"listen_count":873,"time_range":"October 2023","to_ts":1698796799},{"from_ts":1698796800,"listen_count":827,"time_range":"November 2023","to_ts":1701388799},{"from_ts":1701388800,"listen_count":696,"time_range":"December 2023","to_ts":1704067199}],"range":"year","to_ts":1704067200,"user_id":"akshaaatt"}} +{"payload":{"from_ts":1009843200,"last_updated":1723274592,"listening_activity":[{"from_ts":1009843200,"listen_count":0,"time_range":"2002","to_ts":1041379199},{"from_ts":1041379200,"listen_count":0,"time_range":"2003","to_ts":1072915199},{"from_ts":1072915200,"listen_count":0,"time_range":"2004","to_ts":1104537599},{"from_ts":1104537600,"listen_count":0,"time_range":"2005","to_ts":1136073599},{"from_ts":1136073600,"listen_count":0,"time_range":"2006","to_ts":1167609599},{"from_ts":1167609600,"listen_count":0,"time_range":"2007","to_ts":1199145599},{"from_ts":1199145600,"listen_count":0,"time_range":"2008","to_ts":1230767999},{"from_ts":1230768000,"listen_count":0,"time_range":"2009","to_ts":1262303999},{"from_ts":1262304000,"listen_count":0,"time_range":"2010","to_ts":1293839999},{"from_ts":1293840000,"listen_count":0,"time_range":"2011","to_ts":1325375999},{"from_ts":1325376000,"listen_count":0,"time_range":"2012","to_ts":1356998399},{"from_ts":1356998400,"listen_count":0,"time_range":"2013","to_ts":1388534399},{"from_ts":1388534400,"listen_count":0,"time_range":"2014","to_ts":1420070399},{"from_ts":1420070400,"listen_count":0,"time_range":"2015","to_ts":1451606399},{"from_ts":1451606400,"listen_count":0,"time_range":"2016","to_ts":1483228799},{"from_ts":1483228800,"listen_count":0,"time_range":"2017","to_ts":1514764799},{"from_ts":1514764800,"listen_count":0,"time_range":"2018","to_ts":1546300799},{"from_ts":1546300800,"listen_count":0,"time_range":"2019","to_ts":1577836799},{"from_ts":1577836800,"listen_count":0,"time_range":"2020","to_ts":1609459199},{"from_ts":1609459200,"listen_count":0,"time_range":"2021","to_ts":1640995199},{"from_ts":1640995200,"listen_count":6,"time_range":"2022","to_ts":1672531199},{"from_ts":1672531200,"listen_count":2826,"time_range":"2023","to_ts":1704067199},{"from_ts":1704067200,"listen_count":418,"time_range":"2024","to_ts":1735689599}],"range":"all_time","to_ts":1723248018,"user_id":"Jasjeet"}} diff --git a/sharedTest/src/main/resources/loved_hated_songs.json b/sharedTest/src/main/resources/loved_hated_songs.json index 4600acdb..b7a5b23b 100644 --- a/sharedTest/src/main/resources/loved_hated_songs.json +++ b/sharedTest/src/main/resources/loved_hated_songs.json @@ -1 +1 @@ -{"count":25,"feedback":[{"created":1707077704,"recording_mbid":"c46464b2-ee6e-448c-8d22-871b139a0e38","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"c46464b2-ee6e-448c-8d22-871b139a0e38","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Breaking the Habit"},"user_id":"akshaaatt"},{"created":1707077703,"recording_mbid":"54a3c21c-5395-44a2-b90b-b7fab8095c20","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"54a3c21c-5395-44a2-b90b-b7fab8095c20","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Faint"},"user_id":"akshaaatt"},{"created":1707077702,"recording_mbid":"50347f42-2a40-4df6-b358-07f994af7a3f","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":21070222550,"caa_release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","recording_mbid":"50347f42-2a40-4df6-b358-07f994af7a3f","release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b"},"release_name":"Minutes to Midnight","track_name":"What I\u2019ve Done"},"user_id":"akshaaatt"},{"created":1707077701,"recording_mbid":"352dd518-23cd-4c5a-9551-ba02097b177b","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17357251129,"caa_release_mbid":"e1656e7e-c23f-48e4-894e-fe1e0d5e6707","recording_mbid":"352dd518-23cd-4c5a-9551-ba02097b177b","release_mbid":"e9b5c5ad-d91e-39d0-89fc-b8ac312bcc55"},"release_name":"Meteora","track_name":"Numb"},"user_id":"akshaaatt"},{"created":1707077701,"recording_mbid":"9d70086c-5d7a-4e7f-b1ed-c53c4b11310f","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17352139218,"caa_release_mbid":"69b7b91a-43fc-483f-b8cf-22cdc8f69079","recording_mbid":"9d70086c-5d7a-4e7f-b1ed-c53c4b11310f","release_mbid":"a92e8636-a48c-4ad1-8a5f-4f8a968a50ac"},"release_name":"Hybrid Theory","track_name":"In the End"},"user_id":"akshaaatt"},{"created":1698546115,"recording_mbid":"234c556a-215b-4bb4-a0fa-2398cf331085","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Babbulicious","mbid_mapping":{"artist_mbids":["db442dbd-1579-4ff3-8472-bc4fc72c7522"],"artists":[{"artist_credit_name":"Babbulicious","artist_mbid":"db442dbd-1579-4ff3-8472-bc4fc72c7522","join_phrase":""}],"caa_id":35336159608,"caa_release_mbid":"43e2cac8-ac33-428e-9ad9-79827d4a8b34","recording_mbid":"234c556a-215b-4bb4-a0fa-2398cf331085","release_mbid":"43e2cac8-ac33-428e-9ad9-79827d4a8b34"},"release_name":"Gucci Chick","track_name":"Gucci Chick"},"user_id":"akshaaatt"},{"created":1692097010,"recording_mbid":"ea2a183f-5515-4a85-8228-72cf7e1ee90a","recording_msid":"d0f953f3-fdd4-4a7e-8004-fd000e0f804c","score":1,"track_metadata":{"additional_info":{"recording_msid":"d0f953f3-fdd4-4a7e-8004-fd000e0f804c"},"artist_name":"Billie Eilish","mbid_mapping":{"artist_mbids":["f4abc0b5-3f7a-4eff-8f78-ac078dbce533"],"artists":[{"artist_credit_name":"Billie Eilish","artist_mbid":"f4abc0b5-3f7a-4eff-8f78-ac078dbce533","join_phrase":""}],"caa_id":36301165720,"caa_release_mbid":"93ad159c-c69b-4cc5-ae5d-1136580fe04d","recording_mbid":"ea2a183f-5515-4a85-8228-72cf7e1ee90a","release_mbid":"93ad159c-c69b-4cc5-ae5d-1136580fe04d"},"release_name":"Live from the Barbie Dream House","track_name":"What Was I Made For?"},"user_id":"akshaaatt"},{"created":1685816977,"recording_mbid":"f3c609f4-be7f-42aa-9688-9f2aa38a5cb7","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"f3c609f4-be7f-42aa-9688-9f2aa38a5cb7","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Nobody Can Save Me"},"user_id":"akshaaatt"},{"created":1676722350,"recording_mbid":"9c49c2e3-dbe5-471c-8efa-d20d4341f635","recording_msid":"0b98fbc7-4792-4060-8b4c-969abab8c027","score":1,"track_metadata":{"additional_info":{"recording_msid":"0b98fbc7-4792-4060-8b4c-969abab8c027"},"artist_name":"Monali Thakur","mbid_mapping":{"artist_mbids":["adb5aa54-32b9-4587-83df-156d2c9bef1c"],"artists":[{"artist_credit_name":"Monali Thakur","artist_mbid":"adb5aa54-32b9-4587-83df-156d2c9bef1c","join_phrase":""}],"caa_id":38683132632,"caa_release_mbid":"865e074d-3209-4cdd-8589-480bb8cc1027","recording_mbid":"9c49c2e3-dbe5-471c-8efa-d20d4341f635","release_mbid":"865e074d-3209-4cdd-8589-480bb8cc1027"},"release_name":"Lootera","track_name":"Sawaar Loon"},"user_id":"akshaaatt"},{"created":1649338426,"recording_mbid":"c9319bbc-8dec-4c7c-8934-ee234345f705","recording_msid":"d07b81ac-0209-44ed-a38e-4ebcde6eddef","score":1,"track_metadata":{"additional_info":{"recording_msid":"d07b81ac-0209-44ed-a38e-4ebcde6eddef"},"artist_name":"Lauv","mbid_mapping":{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":20512551101,"caa_release_mbid":"47383b9f-d6ea-457c-9c95-6f9b6dd6fa36","recording_mbid":"c9319bbc-8dec-4c7c-8934-ee234345f705","release_mbid":"47383b9f-d6ea-457c-9c95-6f9b6dd6fa36"},"release_name":"I Like Me Better","track_name":"I Like Me Better"},"user_id":"akshaaatt"},{"created":1647712667,"recording_mbid":null,"recording_msid":"20492313-3623-491f-96aa-83aa5afa47a0","score":1,"track_metadata":{"additional_info":{"recording_msid":"20492313-3623-491f-96aa-83aa5afa47a0"},"artist_name":"Sasha Alex Sloan","release_name":"Older","track_name":"Older"},"user_id":"akshaaatt"},{"created":1647509892,"recording_mbid":"bfd84871-2523-40e5-a70f-04c9b0e28acf","recording_msid":"589e83ac-ac08-4fa1-b14e-767371f8f1b5","score":1,"track_metadata":{"additional_info":{"recording_msid":"589e83ac-ac08-4fa1-b14e-767371f8f1b5"},"artist_name":"Machine Gun Kelly feat. Bring Me the Horizon","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","074e3847-f67f-49f9-81f1-8c8cea147e8e"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"Bring Me the Horizon","artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","join_phrase":""}],"caa_id":32122624894,"caa_release_mbid":"a88712e3-1327-4472-af90-5e1af734c16a","recording_mbid":"bfd84871-2523-40e5-a70f-04c9b0e28acf","release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2"},"release_name":"MAINSTREAM SELLOUT","track_name":"maybe"},"user_id":"akshaaatt"},{"created":1647509700,"recording_mbid":"24d50452-6d0a-46f2-8ba1-9ff61dd8f3d2","recording_msid":"904b3f5e-64d0-4104-8e2b-cf87237872c5","score":1,"track_metadata":{"additional_info":{"recording_msid":"904b3f5e-64d0-4104-8e2b-cf87237872c5"},"artist_name":"Linkin Park feat. Kiiara","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419","dbc26631-5e61-4ba2-84ff-e1423a1c288a"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":" feat. "},{"artist_credit_name":"Kiiara","artist_mbid":"dbc26631-5e61-4ba2-84ff-e1423a1c288a","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"24d50452-6d0a-46f2-8ba1-9ff61dd8f3d2","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Heavy"},"user_id":"akshaaatt"},{"created":1647369312,"recording_mbid":"f9845fce-5ab7-456f-8579-6a1fcfa8cf25","recording_msid":"641886e4-5a74-49f4-990d-ed9ba82c2330","score":1,"track_metadata":{"additional_info":{"recording_msid":"641886e4-5a74-49f4-990d-ed9ba82c2330"},"artist_name":"Rihanna","mbid_mapping":{"artist_mbids":["73e5e69d-3554-40d8-8516-00cb38737a1c"],"artists":[{"artist_credit_name":"Rihanna","artist_mbid":"73e5e69d-3554-40d8-8516-00cb38737a1c","join_phrase":""}],"caa_id":14539517129,"caa_release_mbid":"3a7adfe2-6965-4b09-adb5-1b200346433d","recording_mbid":"f9845fce-5ab7-456f-8579-6a1fcfa8cf25","release_mbid":"ce71001c-f8c5-44b2-9c25-589693b64a22"},"release_name":"Music of the Sun","track_name":"Pon de Replay"},"user_id":"akshaaatt"},{"created":1646132106,"recording_mbid":"a89fa4c9-5e9f-4ed3-9478-1585783a5d5d","recording_msid":"7836aa1a-2c41-4279-a9b6-2263097b38c4","score":1,"track_metadata":{"additional_info":{"recording_msid":"7836aa1a-2c41-4279-a9b6-2263097b38c4"},"artist_name":"Carpathian Forest","mbid_mapping":{"artist_mbids":["69fa5c49-12ec-4c86-a238-4e07cc6d1a7d"],"artists":[{"artist_credit_name":"Carpathian Forest","artist_mbid":"69fa5c49-12ec-4c86-a238-4e07cc6d1a7d","join_phrase":""}],"caa_id":1033890833,"caa_release_mbid":"3f2e996b-e231-4165-bba0-64ee3b67cf60","recording_mbid":"a89fa4c9-5e9f-4ed3-9478-1585783a5d5d","release_mbid":"3f2e996b-e231-4165-bba0-64ee3b67cf60"},"release_name":"Black Shining Leather","track_name":"A Forest"},"user_id":"akshaaatt"},{"created":1646131911,"recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77","score":1,"track_metadata":{"additional_info":{"recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"title track"},"user_id":"akshaaatt"},{"created":1645670072,"recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","recording_msid":"cf41b59d-9c9d-4042-81c8-09b92797d46d","score":1,"track_metadata":{"additional_info":{"recording_msid":"cf41b59d-9c9d-4042-81c8-09b92797d46d"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366800098,"caa_release_mbid":"5d987f56-4c51-4c1b-9e67-b6f6e0fc46fd","recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"bloody valentine"},"user_id":"akshaaatt"},{"created":1645178278,"recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46","score":1,"track_metadata":{"additional_info":{"recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":37184507977,"caa_release_mbid":"64ae938c-6af1-4919-8341-458eb1866474","recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","release_mbid":"ccfe374a-ccfa-4cbc-a37c-1cd40b914b75"},"release_name":"=","track_name":"Bad Habits"},"user_id":"akshaaatt"},{"created":1636226683,"recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5","score":1,"track_metadata":{"additional_info":{"recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5"},"artist_name":"Alex Gibson","mbid_mapping":{"artist_mbids":["aab3f709-be9e-48b9-9b9d-281fff5284f9"],"artists":[{"artist_credit_name":"Alex Gibson","artist_mbid":"aab3f709-be9e-48b9-9b9d-281fff5284f9","join_phrase":""}],"caa_id":15835295366,"caa_release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c","recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c"},"release_name":"Rockabye Baby! Lullaby Renditions of AC/DC","track_name":"Dirty Deeds Done Dirt Cheap"},"user_id":"akshaaatt"},{"created":1635871036,"recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e","score":1,"track_metadata":{"additional_info":{"recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e"},"artist_name":"Shelly Manne & His Friends","mbid_mapping":{"artist_mbids":["7c0c1773-513e-4c47-88de-310550319921"],"artists":[{"artist_credit_name":"Shelly Manne & His Friends","artist_mbid":"7c0c1773-513e-4c47-88de-310550319921","join_phrase":""}],"caa_id":26689007265,"caa_release_mbid":"928c6630-795e-4f6b-9b25-c36b8f4212d7","recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","release_mbid":"233bbe84-df40-4755-84e3-9c5937e91f8e"},"release_name":"Shelly Manne & His Friends Play Modern Jazz Performances of Songs from My Fair Lady","track_name":"Get Me to the Church on Time"},"user_id":"akshaaatt"},{"created":1632294500,"recording_mbid":"015021a9-2621-4593-b82d-f1f28bdf440a","recording_msid":"920f49da-1de3-4902-873f-8c5d2815884b","score":1,"track_metadata":{"additional_info":{"recording_msid":"920f49da-1de3-4902-873f-8c5d2815884b"},"artist_name":"Zedd & Alessia Cara","mbid_mapping":{"artist_mbids":["56c4b861-0922-4c3a-a9b9-3bfcb00f8274","97e69730-3791-423b-9770-287261588854"],"artists":[{"artist_credit_name":"Zedd","artist_mbid":"56c4b861-0922-4c3a-a9b9-3bfcb00f8274","join_phrase":" & "},{"artist_credit_name":"Alessia Cara","artist_mbid":"97e69730-3791-423b-9770-287261588854","join_phrase":""}],"caa_id":17157288690,"caa_release_mbid":"fe1176c5-aa68-4518-8548-0eb23ef8cd92","recording_mbid":"015021a9-2621-4593-b82d-f1f28bdf440a","release_mbid":"92541a9e-3507-484e-aecc-23577b8c3547"},"release_name":"Get Low","track_name":"Stay"},"user_id":"akshaaatt"},{"created":1632238295,"recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","recording_msid":"1312abf2-b12f-483f-935b-c7a283700481","score":1,"track_metadata":{"additional_info":{"recording_msid":"1312abf2-b12f-483f-935b-c7a283700481"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":31935928002,"caa_release_mbid":"14c13329-88f5-426f-90d7-0170b4017e15","recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","release_mbid":"769e64d7-b7a8-4ad1-84d8-0e0063d8fe64"},"release_name":"\u00f7","track_name":"Castle on the Hill"},"user_id":"akshaaatt"},{"created":1632224517,"recording_mbid":"07adabdd-1195-4ac5-9c75-8e2e11daa604","recording_msid":"aca55f75-a7e0-4989-8c57-88cb431bb219","score":1,"track_metadata":{"additional_info":{"recording_msid":"aca55f75-a7e0-4989-8c57-88cb431bb219"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16782501966,"caa_release_mbid":"1f5f9437-fe10-448e-acf2-09a03cd81a7d","recording_mbid":"07adabdd-1195-4ac5-9c75-8e2e11daa604","release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b"},"release_name":"One More Light","track_name":"Battle Symphony"},"user_id":"akshaaatt"},{"created":1631784052,"recording_mbid":"1205dbc4-5fa4-4c19-b04b-50fdbf15ddf2","recording_msid":"eeba4144-9a77-4386-a932-d947a64c18ae","score":1,"track_metadata":{"additional_info":{"recording_msid":"eeba4144-9a77-4386-a932-d947a64c18ae"},"artist_name":"Mike Shinoda","mbid_mapping":{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":22130935658,"caa_release_mbid":"df9c66e7-07eb-4a9a-b9c6-4f41ae676a15","recording_mbid":"1205dbc4-5fa4-4c19-b04b-50fdbf15ddf2","release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9"},"release_name":"Post Traumatic","track_name":"Watching as I Fall"},"user_id":"akshaaatt"},{"created":1631784039,"recording_mbid":"8102a8b9-0b58-49aa-8f04-e6a49528bb46","recording_msid":"b3155220-34c3-4e29-bd9f-25bcf4109aa7","score":1,"track_metadata":{"additional_info":{"recording_msid":"b3155220-34c3-4e29-bd9f-25bcf4109aa7"},"artist_name":"Mike Shinoda","mbid_mapping":{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":22130935658,"caa_release_mbid":"df9c66e7-07eb-4a9a-b9c6-4f41ae676a15","recording_mbid":"8102a8b9-0b58-49aa-8f04-e6a49528bb46","release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9"},"release_name":"Post Traumatic","track_name":"Hold It Together"},"user_id":"akshaaatt"}],"offset":0,"total_count":31} +{"count":25,"feedback":[{"created":1709235151,"recording_mbid":"6b08f3d4-0d56-406c-b628-d0afe2ad5d44","recording_msid":"d7d1de71-f60c-4fed-8028-7efa1f4aa52e","score":1,"track_metadata":{"additional_info":{"recording_msid":"d7d1de71-f60c-4fed-8028-7efa1f4aa52e"},"artist_name":"Metro Boomin, Swae Lee & NAV feat. A Boogie Wit da Hoodie","mbid_mapping":{"artist_mbids":["59db3d82-86ea-451f-881f-dffc8ec387c9","a17ce9c3-8f6f-4dcc-a1b7-2a04ab9e31f0","418fe547-4bec-48fe-8df0-ed25e27f4570","c1708d03-8a66-46eb-848e-fe0d233ffb39"],"artists":[{"artist_credit_name":"Metro Boomin","artist_mbid":"59db3d82-86ea-451f-881f-dffc8ec387c9","join_phrase":", "},{"artist_credit_name":"Swae Lee","artist_mbid":"a17ce9c3-8f6f-4dcc-a1b7-2a04ab9e31f0","join_phrase":" & "},{"artist_credit_name":"NAV","artist_mbid":"418fe547-4bec-48fe-8df0-ed25e27f4570","join_phrase":" feat. "},{"artist_credit_name":"A Boogie Wit da Hoodie","artist_mbid":"c1708d03-8a66-46eb-848e-fe0d233ffb39","join_phrase":""}],"caa_id":35816827255,"caa_release_mbid":"72a73259-c593-4503-a889-9bf1b5e10874","recording_mbid":"6b08f3d4-0d56-406c-b628-d0afe2ad5d44","release_mbid":"5e38a701-16fa-4c2e-b43a-cf59cee97157"},"release_name":"METRO BOOMIN PRESENTS SPIDER\u2010MAN: ACROSS THE SPIDER\u2010VERSE: SOUNDTRACK FROM AND INSPIRED BY THE MOTION PICTURE","track_name":"Calling"},"user_id":"Jasjeet"},{"created":1709235045,"recording_mbid":"a24f67ff-a81e-4a95-817d-c0b4e5af3e6b","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Kanye West feat. Pusha T","mbid_mapping":{"artist_mbids":["164f0d73-1234-4e2c-8743-d77bf2191051","14ecd19f-7121-4192-8549-e5056241a42f"],"artists":[{"artist_credit_name":"Kanye West","artist_mbid":"164f0d73-1234-4e2c-8743-d77bf2191051","join_phrase":" feat. "},{"artist_credit_name":"Pusha T","artist_mbid":"14ecd19f-7121-4192-8549-e5056241a42f","join_phrase":""}],"caa_id":38000784873,"caa_release_mbid":"ef748325-cb18-46c6-b0fd-7276bd6f4337","recording_mbid":"a24f67ff-a81e-4a95-817d-c0b4e5af3e6b","release_mbid":"cd474271-bd7a-4d53-ba9e-e9d5bd7958cb"},"release_name":"My Beautiful Dark Twisted Fantasy","track_name":"Runaway"},"user_id":"Jasjeet"},{"created":1705662797,"recording_mbid":"03c4adcf-2f31-42d7-bcd5-056d68066f90","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Mac Miller","mbid_mapping":{"artist_mbids":["a0e8a1b1-5f8f-475a-a253-17415c17d0ff"],"artists":[{"artist_credit_name":"Mac Miller","artist_mbid":"a0e8a1b1-5f8f-475a-a253-17415c17d0ff","join_phrase":""}],"caa_id":20706929859,"caa_release_mbid":"6db76635-a3cd-4933-85e9-e29cbbc38c1c","recording_mbid":"03c4adcf-2f31-42d7-bcd5-056d68066f90","release_mbid":"62bd84b5-1c38-4d27-9176-ea0716d51064"},"release_name":"Swimming","track_name":"Self Care"},"user_id":"Jasjeet"},{"created":1705659281,"recording_mbid":null,"recording_msid":"c49769d0-6e7f-4603-84e0-ff8ba9debdd0","score":1,"track_metadata":{"additional_info":{"recording_msid":"c49769d0-6e7f-4603-84e0-ff8ba9debdd0"},"artist_name":"Seren","track_name":"Travis Scott - My Eyes (Best Part Extended)"},"user_id":"Jasjeet"},{"created":1704548910,"recording_mbid":"9fb62336-68b7-43fa-a220-e7f3637c7cc5","recording_msid":"27bdfc3c-f0ff-4f81-995b-280a1514be16","score":1,"track_metadata":{"additional_info":{"recording_msid":"27bdfc3c-f0ff-4f81-995b-280a1514be16"},"artist_name":"Liana Flores","mbid_mapping":{"artist_mbids":["9f93c34a-2dc2-400e-ada5-937c3efc3437"],"artists":[{"artist_credit_name":"Liana Flores","artist_mbid":"9f93c34a-2dc2-400e-ada5-937c3efc3437","join_phrase":""}],"caa_id":30013330623,"caa_release_mbid":"7afdc460-27eb-444e-bffd-6977f6335597","recording_mbid":"9fb62336-68b7-43fa-a220-e7f3637c7cc5","release_mbid":"7afdc460-27eb-444e-bffd-6977f6335597"},"release_name":"recently","track_name":"rises the moon"},"user_id":"Jasjeet"},{"created":1704547584,"recording_mbid":"a4fc3d78-6520-4663-82bd-10393bb0af2b","recording_msid":null,"score":1,"track_metadata":{"artist_name":"The Drums","mbid_mapping":{"artist_mbids":["c3ecef5d-84f3-4942-8c24-0a626343c3f4"],"artists":[{"artist_credit_name":"The Drums","artist_mbid":"c3ecef5d-84f3-4942-8c24-0a626343c3f4","join_phrase":""}],"caa_id":4031185360,"caa_release_mbid":"dfffc568-7e2c-44e8-80e6-458f2d9aa319","recording_mbid":"a4fc3d78-6520-4663-82bd-10393bb0af2b","release_mbid":"b6b21d16-021f-48fe-a575-c46320cf3107"},"release_name":"Portamento","track_name":"Money"},"user_id":"Jasjeet"},{"created":1704402369,"recording_mbid":"2f14ac58-d62d-4e45-a5e1-6504d1366831","recording_msid":"3ed4f41f-07ba-4cc5-ae95-b95409e028d8","score":1,"track_metadata":{"additional_info":{"recording_msid":"3ed4f41f-07ba-4cc5-ae95-b95409e028d8"},"artist_name":"Aaron May","mbid_mapping":{"artist_mbids":["9f3225ad-e686-4538-8cbe-99406c4a4caa"],"artists":[{"artist_credit_name":"Aaron May","artist_mbid":"9f3225ad-e686-4538-8cbe-99406c4a4caa","join_phrase":""}],"caa_id":22549299616,"caa_release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","recording_mbid":"2f14ac58-d62d-4e45-a5e1-6504d1366831","release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4"},"release_name":"Chase","track_name":"I'm Good Luv, Enjoy."},"user_id":"Jasjeet"},{"created":1702622193,"recording_mbid":"c703515e-92ba-4d8f-8b8e-8fa85a480038","recording_msid":"9d3390f4-9f21-4be5-8c08-cae287e4c189","score":1,"track_metadata":{"additional_info":{"recording_msid":"9d3390f4-9f21-4be5-8c08-cae287e4c189"},"artist_name":"Rosa Walton as Hallie Coggins","mbid_mapping":{"artist_mbids":["9a6273b2-72fa-47a4-a48b-073d6cbe037d","0ebdc5f5-0a11-415a-b6f3-efe0d36c6e9d"],"artists":[{"artist_credit_name":"Rosa Walton","artist_mbid":"9a6273b2-72fa-47a4-a48b-073d6cbe037d","join_phrase":" as "},{"artist_credit_name":"Hallie Coggins","artist_mbid":"0ebdc5f5-0a11-415a-b6f3-efe0d36c6e9d","join_phrase":""}],"caa_id":28105410573,"caa_release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4","recording_mbid":"c703515e-92ba-4d8f-8b8e-8fa85a480038","release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4"},"release_name":"Cyberpunk 2077: Radio, Vol. 2 (Original Soundtrack)","track_name":"I Really Want to Stay at Your House"},"user_id":"Jasjeet"},{"created":1702565277,"recording_mbid":"ab100b50-31eb-4a71-98d8-52a5e4e1304e","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Dawid Podsiad\u0142o","mbid_mapping":{"artist_mbids":["68ffdf6b-001c-41ed-aa3a-20ec0128f627"],"artists":[{"artist_credit_name":"Dawid Podsiad\u0142o","artist_mbid":"68ffdf6b-001c-41ed-aa3a-20ec0128f627","join_phrase":""}],"caa_id":35924146102,"caa_release_mbid":"50274be9-730c-4642-8ede-25442d58867c","recording_mbid":"ab100b50-31eb-4a71-98d8-52a5e4e1304e","release_mbid":"cb64ddc6-dc64-4f31-b503-f977077c57d3"},"release_name":"Lata Dwudzieste z kawa\u0142kiem","track_name":"Let You Down"},"user_id":"Jasjeet"},{"created":1702402222,"recording_mbid":null,"recording_msid":"9c844e8e-b085-4954-bc0b-7651b1939e79","score":1,"track_metadata":{"additional_info":{"recording_msid":"9c844e8e-b085-4954-bc0b-7651b1939e79"},"artist_name":"Ammy Virk, Jaymeet and Rony Ajnali","release_name":"Late Checkout","track_name":"Memories - Ammy Virk (Official Song) Layers"},"user_id":"Jasjeet"},{"created":1702402221,"recording_mbid":null,"recording_msid":"17c684ff-6812-43f0-b53c-be23cf59fce1","score":1,"track_metadata":{"additional_info":{"recording_msid":"17c684ff-6812-43f0-b53c-be23cf59fce1"},"artist_name":"Mickey Singh and Jay Skilly","release_name":"The Phantom Files (From Cyberpunk 2077)","track_name":"Cruise Control"},"user_id":"Jasjeet"},{"created":1702402120,"recording_mbid":"dbad831a-7a9d-416e-9ef0-11e740fef6a0","recording_msid":null,"score":1,"track_metadata":{"artist_name":"Men I Trust","mbid_mapping":{"artist_mbids":["25ab7547-a4d2-480b-b028-c7f3497bc858"],"artists":[{"artist_credit_name":"Men I Trust","artist_mbid":"25ab7547-a4d2-480b-b028-c7f3497bc858","join_phrase":""}],"caa_id":26978507653,"caa_release_mbid":"0633a08c-660e-4992-ba7b-a62bcf82f43b","recording_mbid":"dbad831a-7a9d-416e-9ef0-11e740fef6a0","release_mbid":"c1bc7be3-7eab-4055-a260-d809487a6eb8"},"release_name":"Oncle Jazz","track_name":"Show Me How"},"user_id":"Jasjeet"},{"created":1702396242,"recording_mbid":"15c5d5a6-9ae9-4727-a413-d48c57e867d9","recording_msid":"ac081ab5-5702-4eb1-bd4d-cdc0504703c7","score":1,"track_metadata":{"additional_info":{"recording_msid":"ac081ab5-5702-4eb1-bd4d-cdc0504703c7"},"artist_name":"Namakopuri as Us Cracks","mbid_mapping":{"artist_mbids":["1b7d53f5-1746-420b-b23d-e6b7c41a0b37","07ee1730-aee1-4c90-a225-be7b3edc94be"],"artists":[{"artist_credit_name":"Namakopuri","artist_mbid":"1b7d53f5-1746-420b-b23d-e6b7c41a0b37","join_phrase":" as "},{"artist_credit_name":"Us Cracks","artist_mbid":"07ee1730-aee1-4c90-a225-be7b3edc94be","join_phrase":""}],"caa_id":28105410573,"caa_release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4","recording_mbid":"15c5d5a6-9ae9-4727-a413-d48c57e867d9","release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4"},"release_name":"Cyberpunk 2077: Radio, Vol. 2 (Original Soundtrack)","track_name":"PonPon Shit"},"user_id":"Jasjeet"},{"created":1702387013,"recording_mbid":null,"recording_msid":"0e10f95e-dc5a-42ea-a70d-5a274f8683ff","score":1,"track_metadata":{"additional_info":{"recording_msid":"0e10f95e-dc5a-42ea-a70d-5a274f8683ff"},"artist_name":"Semwal and Agaazz","release_name":"Hass Hass","track_name":"Dil Da Pecha"},"user_id":"Jasjeet"},{"created":1702369018,"recording_mbid":null,"recording_msid":"62b5f8da-45df-4cbf-87db-a9a7bfc7d906","score":1,"track_metadata":{"additional_info":{"recording_msid":"62b5f8da-45df-4cbf-87db-a9a7bfc7d906"},"artist_name":"Mickey Singh and Jay Skilly","release_name":"Infinity","track_name":"Cruise Control"},"user_id":"Jasjeet"},{"created":1701932614,"recording_mbid":"13c81871-58de-4c1c-bb43-f83e7b6032a7","recording_msid":"0f2644de-9cd7-4811-b638-770aeb516a89","score":1,"track_metadata":{"additional_info":{"recording_msid":"0f2644de-9cd7-4811-b638-770aeb516a89"},"artist_name":"Dawid Podsiad\u0142o & P.T. Adamczyk","mbid_mapping":{"artist_mbids":["68ffdf6b-001c-41ed-aa3a-20ec0128f627","bc1285ea-31c8-4f50-847e-b66244a142b3"],"artists":[{"artist_credit_name":"Dawid Podsiad\u0142o","artist_mbid":"68ffdf6b-001c-41ed-aa3a-20ec0128f627","join_phrase":" & "},{"artist_credit_name":"P.T. Adamczyk","artist_mbid":"bc1285ea-31c8-4f50-847e-b66244a142b3","join_phrase":""}],"caa_id":35924146102,"caa_release_mbid":"50274be9-730c-4642-8ede-25442d58867c","recording_mbid":"13c81871-58de-4c1c-bb43-f83e7b6032a7","release_mbid":"cb64ddc6-dc64-4f31-b503-f977077c57d3"},"release_name":"Lata Dwudzieste z kawa\u0142kiem","track_name":"Phantom Liberty"},"user_id":"Jasjeet"},{"created":1701932501,"recording_mbid":"7a8949b0-3abf-4f0d-b14c-dd7d4f635966","recording_msid":"f984f2d0-cfc6-4205-9838-891f4bfbff3a","score":1,"track_metadata":{"additional_info":{"recording_msid":"f984f2d0-cfc6-4205-9838-891f4bfbff3a"},"artist_name":"Idris Elba","mbid_mapping":{"artist_mbids":["b3c7c6d6-5907-45a8-b589-1ec2572be4fd"],"artists":[{"artist_credit_name":"Idris Elba","artist_mbid":"b3c7c6d6-5907-45a8-b589-1ec2572be4fd","join_phrase":""}],"caa_id":36853564662,"caa_release_mbid":"77ef1c1d-e3fe-4f54-ba43-4cdc1243ea6c","recording_mbid":"7a8949b0-3abf-4f0d-b14c-dd7d4f635966","release_mbid":"77ef1c1d-e3fe-4f54-ba43-4cdc1243ea6c"},"release_name":"The Phantom Files (From Cyberpunk 2077)","track_name":"Choke Hold"},"user_id":"Jasjeet"},{"created":1700751665,"recording_mbid":"d2ed35bd-9771-496f-9c48-ba9e7c462da2","recording_msid":"3cedd757-0142-4708-852d-cf6e2bd35750","score":1,"track_metadata":{"additional_info":{"recording_msid":"3cedd757-0142-4708-852d-cf6e2bd35750"},"artist_name":"Neeraj Shridhar, Raman Mahadevan, Pervez Quadir & Loy Mendonsa","mbid_mapping":{"artist_mbids":["db7fb490-d527-447f-9d40-ed91c479d5ee","b63974b0-43ef-4b72-b4be-7b7eb96025bf","c967a8f1-2852-4416-bf46-9e041b6594ea","5fa5c9fc-9d9c-4c0f-ad27-10333051084e"],"artists":[{"artist_credit_name":"Neeraj Shridhar","artist_mbid":"db7fb490-d527-447f-9d40-ed91c479d5ee","join_phrase":", "},{"artist_credit_name":"Raman Mahadevan","artist_mbid":"b63974b0-43ef-4b72-b4be-7b7eb96025bf","join_phrase":", "},{"artist_credit_name":"Pervez Quadir","artist_mbid":"c967a8f1-2852-4416-bf46-9e041b6594ea","join_phrase":" & "},{"artist_credit_name":"Loy Mendonsa","artist_mbid":"5fa5c9fc-9d9c-4c0f-ad27-10333051084e","join_phrase":""}],"recording_mbid":"d2ed35bd-9771-496f-9c48-ba9e7c462da2","release_mbid":"69587b26-f597-48e5-844c-3823d3ff8f26"},"release_name":"2007 It's Rocking","track_name":"Heyy Babyy (Heyy Babyy)"},"user_id":"Jasjeet"},{"created":1700588943,"recording_mbid":"da07eaed-4eda-44bc-8eea-4713e832aa2e","recording_msid":"891ed674-1c1f-4c3a-919d-1af3438fbd5a","score":1,"track_metadata":{"additional_info":{"recording_msid":"891ed674-1c1f-4c3a-919d-1af3438fbd5a"},"artist_name":"Diljit Dosanjh & Sia","mbid_mapping":{"artist_mbids":["f931c961-b647-4861-be8c-f47d84a4de51","2f548675-008d-4332-876c-108b0c7ab9c5"],"artists":[{"artist_credit_name":"Diljit Dosanjh","artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","join_phrase":" & "},{"artist_credit_name":"Sia","artist_mbid":"2f548675-008d-4332-876c-108b0c7ab9c5","join_phrase":""}],"caa_id":37082867811,"caa_release_mbid":"308fbfe2-6327-439e-b209-f3b021e8795c","recording_mbid":"da07eaed-4eda-44bc-8eea-4713e832aa2e","release_mbid":"308fbfe2-6327-439e-b209-f3b021e8795c"},"release_name":"Hass Hass","track_name":"Hass Hass"},"user_id":"Jasjeet"},{"created":1689852464,"recording_mbid":"eb8d7744-a329-4740-94b9-ac575e979d5c","recording_msid":"2059fd62-165e-4f52-a041-125e6090785e","score":1,"track_metadata":{"additional_info":{"recording_msid":"2059fd62-165e-4f52-a041-125e6090785e"},"artist_name":"Metro Boomin & Future feat. Don Toliver","mbid_mapping":{"artist_mbids":["59db3d82-86ea-451f-881f-dffc8ec387c9","48262e82-db9f-4a92-b650-dfef979b73ec","a0723a3c-4135-438e-85c5-012712144ede"],"artists":[{"artist_credit_name":"Metro Boomin","artist_mbid":"59db3d82-86ea-451f-881f-dffc8ec387c9","join_phrase":" & "},{"artist_credit_name":"Future","artist_mbid":"48262e82-db9f-4a92-b650-dfef979b73ec","join_phrase":" feat. "},{"artist_credit_name":"Don Toliver","artist_mbid":"a0723a3c-4135-438e-85c5-012712144ede","join_phrase":""}],"caa_id":34245737801,"caa_release_mbid":"2f58792e-a91a-4038-8828-c70e072492fd","recording_mbid":"eb8d7744-a329-4740-94b9-ac575e979d5c","release_mbid":"067d55ab-5eb1-4a1b-96ae-8c67f1f50441"},"release_name":"HEROES & VILLAINS","track_name":"Too Many Nights"},"user_id":"Jasjeet"},{"created":1689852459,"recording_mbid":null,"recording_msid":"4d60c545-b353-4b63-9c91-d98bd781ddcf","score":1,"track_metadata":null,"user_id":"Jasjeet"},{"created":1685986475,"recording_mbid":null,"recording_msid":"9656809d-b8b9-4e4c-93eb-c9965fb53f20","score":1,"track_metadata":null,"user_id":"Jasjeet"},{"created":1685912721,"recording_mbid":"01552e9a-11b0-4b5d-bcd5-cd15850ebd29","recording_msid":"34e3e63b-9e4b-460a-b2c6-9628bf96273c","score":1,"track_metadata":{"additional_info":{"recording_msid":"34e3e63b-9e4b-460a-b2c6-9628bf96273c"},"artist_name":"Halsey","mbid_mapping":{"artist_mbids":["3377f3bb-60fc-4403-aea9-7e800612e060"],"artists":[{"artist_credit_name":"Halsey","artist_mbid":"3377f3bb-60fc-4403-aea9-7e800612e060","join_phrase":""}],"caa_id":33498041604,"caa_release_mbid":"2ec31e00-de8e-4181-8d6d-4ff6d8cb3a19","recording_mbid":"01552e9a-11b0-4b5d-bcd5-cd15850ebd29","release_mbid":"911dfcb8-90b8-41fe-a8b5-d1b4dfdba503"},"release_name":"\u30de\u30cb\u30c3\u30af","track_name":"Without Me"},"user_id":"Jasjeet"},{"created":1683483053,"recording_mbid":"75cd34ef-70fd-46b4-a1a6-1d3db062b363","recording_msid":"8dfdf578-35c2-436c-8f47-081cac3028f0","score":1,"track_metadata":{"additional_info":{"recording_msid":"8dfdf578-35c2-436c-8f47-081cac3028f0"},"artist_name":"Yo Yo Honey Singh","mbid_mapping":{"artist_mbids":["0dc9c4bc-8bcc-42f1-9033-bec41160377f"],"artists":[{"artist_credit_name":"Yo Yo Honey Singh","artist_mbid":"0dc9c4bc-8bcc-42f1-9033-bec41160377f","join_phrase":""}],"caa_id":13965559599,"caa_release_mbid":"c30eb11a-9c23-4983-9e8f-3bff16b239a9","recording_mbid":"75cd34ef-70fd-46b4-a1a6-1d3db062b363","release_mbid":"c30eb11a-9c23-4983-9e8f-3bff16b239a9"},"release_name":"Zorawar","track_name":"Call Aundi"},"user_id":"Jasjeet"},{"created":1683366612,"recording_mbid":"75a38235-5db3-4545-bd4c-e4de9baee068","recording_msid":"0a95a65b-94a5-4f6a-a7ef-51d0455e4ad4","score":1,"track_metadata":{"additional_info":{"recording_msid":"0a95a65b-94a5-4f6a-a7ef-51d0455e4ad4"},"artist_name":"Playboi Carti","mbid_mapping":{"artist_mbids":["2baf3276-ed6a-4349-8d2e-f4601e7b2167"],"artists":[{"artist_credit_name":"Playboi Carti","artist_mbid":"2baf3276-ed6a-4349-8d2e-f4601e7b2167","join_phrase":""}],"recording_mbid":"75a38235-5db3-4545-bd4c-e4de9baee068","release_mbid":"b2d63750-05c8-4fa0-be7c-f7c3a4737a4a"},"release_name":"Magnolia","track_name":"Magnolia"},"user_id":"Jasjeet"}],"offset":0,"total_count":36} diff --git a/sharedTest/src/main/resources/pins.json b/sharedTest/src/main/resources/pins.json index 9b690172..c74b2082 100644 --- a/sharedTest/src/main/resources/pins.json +++ b/sharedTest/src/main/resources/pins.json @@ -1 +1 @@ -{"count":14,"offset":0,"pinned_recordings":[{"blurb_content":null,"created":1696606811,"pinned_until":1697211611,"recording_mbid":"9aa621e1-46f2-4c91-8111-741583985612","recording_msid":"2da9e60f-6b36-4ce1-a5fe-d84877a49006","row_id":1176,"track_metadata":{"additional_info":{"recording_msid":"2da9e60f-6b36-4ce1-a5fe-d84877a49006"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17352139218,"caa_release_mbid":"69b7b91a-43fc-483f-b8cf-22cdc8f69079","recording_mbid":"9aa621e1-46f2-4c91-8111-741583985612","release_mbid":"a92e8636-a48c-4ad1-8a5f-4f8a968a50ac"},"release_name":"Hybrid Theory","track_name":"Papercut"}},{"blurb_content":"Amazing song, worth listening!","created":1648492830,"pinned_until":1649097630,"recording_mbid":"5e54d4be-a83b-41d1-9372-06fa58b4c36d","recording_msid":"8ca79982-c17d-47f2-b8f4-8ab333b7acfb","row_id":308,"track_metadata":{"additional_info":{"recording_msid":"8ca79982-c17d-47f2-b8f4-8ab333b7acfb"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17454038939,"caa_release_mbid":"6c48c82c-b7df-4b0b-987d-666ec8271afb","recording_mbid":"5e54d4be-a83b-41d1-9372-06fa58b4c36d","release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310"},"release_name":"Living Things","track_name":"Burn It Down"}},{"blurb_content":"WONDERFUL SONG!","created":1646132933,"pinned_until":1646737733,"recording_mbid":"2397ee94-274f-451e-a330-2499a93fa9fb","recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77","row_id":227,"track_metadata":{"additional_info":{"recording_msid":"112597b6-ec52-49cf-9916-41c3aa060a77"},"artist_name":"Machine Gun Kelly","release_name":"Tickets To My Downfall (SOLD OUT Deluxe)","track_name":"title track"}},{"blurb_content":"Amazing","created":1645177870,"pinned_until":1645782670,"recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46","row_id":219,"track_metadata":{"additional_info":{"recording_msid":"ba6a24ac-ef0c-44d6-b233-d0bebd925c46"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":37184507977,"caa_release_mbid":"64ae938c-6af1-4919-8341-458eb1866474","recording_mbid":"2d24a8d7-66ad-40b2-8ae7-5f6fc9981646","release_mbid":"ccfe374a-ccfa-4cbc-a37c-1cd40b914b75"},"release_name":"=","track_name":"Bad Habits"}},{"blurb_content":null,"created":1645128476,"pinned_until":1645128664,"recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","recording_msid":"1312abf2-b12f-483f-935b-c7a283700481","row_id":217,"track_metadata":{"additional_info":{"recording_msid":"1312abf2-b12f-483f-935b-c7a283700481"},"artist_name":"Ed Sheeran","mbid_mapping":{"artist_mbids":["b8a7c51f-362c-4dcb-a259-bc6e0095f0a6"],"artists":[{"artist_credit_name":"Ed Sheeran","artist_mbid":"b8a7c51f-362c-4dcb-a259-bc6e0095f0a6","join_phrase":""}],"caa_id":31935928002,"caa_release_mbid":"14c13329-88f5-426f-90d7-0170b4017e15","recording_mbid":"5780b6fb-066f-4147-ac0e-0d8c8e812e02","release_mbid":"769e64d7-b7a8-4ad1-84d8-0e0063d8fe64"},"release_name":"\u00f7","track_name":"Castle on the Hill"}},{"blurb_content":"Wonderful song!","created":1642502920,"pinned_until":1642530147,"recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","recording_msid":"2e647303-cd88-4d1c-ba87-6ddda72b5edc","row_id":192,"track_metadata":{"additional_info":{"recording_msid":"2e647303-cd88-4d1c-ba87-6ddda72b5edc"},"artist_name":"Lauv","mbid_mapping":{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85"},"release_name":"~how i\u2019m feeling~","track_name":"Feelings"}},{"blurb_content":"Amazing song!","created":1642333322,"pinned_until":1642502920,"recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","recording_msid":"b9d97e22-09c8-425a-a21d-946f631b62a9","row_id":190,"track_metadata":{"additional_info":{"recording_msid":"b9d97e22-09c8-425a-a21d-946f631b62a9"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8"},"release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"split a pill"}},{"blurb_content":"Amazing song!","created":1638638664,"pinned_until":1639075612,"recording_mbid":"1291edb5-97d4-4893-8baa-da7c4c542377","recording_msid":"2f3f2e96-4544-4bab-b948-281fe7592b77","row_id":157,"track_metadata":{"additional_info":{"recording_msid":"2f3f2e96-4544-4bab-b948-281fe7592b77"},"artist_name":"Calum Scott","mbid_mapping":{"artist_mbids":["68fdc9cc-1094-48bb-942f-66492343e41c"],"artists":[{"artist_credit_name":"Calum Scott","artist_mbid":"68fdc9cc-1094-48bb-942f-66492343e41c","join_phrase":""}],"caa_id":18877218596,"caa_release_mbid":"86ae5c62-7989-4993-bbdb-969d77f7872a","recording_mbid":"1291edb5-97d4-4893-8baa-da7c4c542377","release_mbid":"c34d0c8b-330f-4a16-84a7-41d87a931cf1"},"release_name":"Only Human","track_name":"Dancing on My Own"}},{"blurb_content":null,"created":1637923045,"pinned_until":1638245181,"recording_mbid":"e185bbc4-7d97-44d8-93b0-b47a32fec8cd","recording_msid":"1c3a7bed-1f96-4458-b876-73191ea3f397","row_id":151,"track_metadata":{"additional_info":{"recording_msid":"1c3a7bed-1f96-4458-b876-73191ea3f397"},"artist_name":"Linkin Park","mbid_mapping":{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":7389110443,"caa_release_mbid":"29424f55-f1b2-43f6-822d-700aa1f8595c","recording_mbid":"e185bbc4-7d97-44d8-93b0-b47a32fec8cd","release_mbid":"5f5aaf10-36a4-3dfc-a7c1-c2d5c2286647"},"release_name":"A Thousand Suns","track_name":"Iridescent"}},{"blurb_content":null,"created":1636381481,"pinned_until":1636986281,"recording_mbid":"a24974c0-9da0-4f02-b59b-b209e81e2ede","recording_msid":"dbc56879-a052-49eb-b949-ea4d624159ff","row_id":116,"track_metadata":{"additional_info":{"recording_msid":"dbc56879-a052-49eb-b949-ea4d624159ff"},"artist_name":"Maroon 5","mbid_mapping":{"artist_mbids":["0ab49580-c84f-44d4-875f-d83760ea2cfe"],"artists":[{"artist_credit_name":"Maroon 5","artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","join_phrase":""}],"caa_id":33632889799,"caa_release_mbid":"e8fe33d4-31a6-4394-941c-45fac8834322","recording_mbid":"a24974c0-9da0-4f02-b59b-b209e81e2ede","release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34"},"release_name":"V","track_name":"Maps"}},{"blurb_content":"Interesting song!","created":1636226679,"pinned_until":1636381455,"recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5","row_id":113,"track_metadata":{"additional_info":{"recording_msid":"669fafd9-044b-4dc0-93af-be17ba06c4f5"},"artist_name":"Alex Gibson","mbid_mapping":{"artist_mbids":["aab3f709-be9e-48b9-9b9d-281fff5284f9"],"artists":[{"artist_credit_name":"Alex Gibson","artist_mbid":"aab3f709-be9e-48b9-9b9d-281fff5284f9","join_phrase":""}],"caa_id":15835295366,"caa_release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c","recording_mbid":"7ec115f0-2da7-4ddf-a183-6f4f8e10cc0e","release_mbid":"5a097177-c962-4c56-9a9f-46e9f6868c9c"},"release_name":"Rockabye Baby! Lullaby Renditions of AC/DC","track_name":"Dirty Deeds Done Dirt Cheap"}},{"blurb_content":null,"created":1635870142,"pinned_until":1636226679,"recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e","row_id":109,"track_metadata":{"additional_info":{"recording_msid":"defe1f54-97de-4a3f-a0df-7e1bdc9b3a8e"},"artist_name":"Shelly Manne & His Friends","mbid_mapping":{"artist_mbids":["7c0c1773-513e-4c47-88de-310550319921"],"artists":[{"artist_credit_name":"Shelly Manne & His Friends","artist_mbid":"7c0c1773-513e-4c47-88de-310550319921","join_phrase":""}],"caa_id":26689007265,"caa_release_mbid":"928c6630-795e-4f6b-9b25-c36b8f4212d7","recording_mbid":"c0ecfe09-7521-42b2-9f99-366b854f280f","release_mbid":"233bbe84-df40-4755-84e3-9c5937e91f8e"},"release_name":"Shelly Manne & His Friends Play Modern Jazz Performances of Songs from My Fair Lady","track_name":"Get Me to the Church on Time"}},{"blurb_content":"Great song!","created":1630035558,"pinned_until":1630640358,"recording_mbid":"92972c5e-867b-4fa2-98c5-7bd57a4e440e","recording_msid":"0df8fc8a-49b3-4854-a371-0bd19d4668c8","row_id":19,"track_metadata":{"additional_info":{"recording_msid":"0df8fc8a-49b3-4854-a371-0bd19d4668c8"},"artist_name":"Fort Minor","mbid_mapping":{"artist_mbids":["e1564e98-978b-4947-8698-f6fd6f8b0181"],"artists":[{"artist_credit_name":"Fort Minor","artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","join_phrase":""}],"caa_id":28875936991,"caa_release_mbid":"2260aedd-155d-33b0-a4bb-6db7ce3f6598","recording_mbid":"92972c5e-867b-4fa2-98c5-7bd57a4e440e","release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e"},"release_name":"The Rising Tied","track_name":"Petrified"}},{"blurb_content":null,"created":1630035458,"pinned_until":1630035558,"recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","recording_msid":"566c2f69-5db0-4f2c-a504-a27836238fed","row_id":18,"track_metadata":{"additional_info":{"recording_msid":"566c2f69-5db0-4f2c-a504-a27836238fed"},"artist_name":"Machine Gun Kelly","mbid_mapping":{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27366822877,"caa_release_mbid":"ca1cafc2-3daf-4ca5-b1af-8466f7836e60","recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa"},"release_name":"Tickets to My Downfall","track_name":"concert for aliens"}}],"total_count":14,"user_name":"akshaaatt"} +{"count":12,"offset":0,"pinned_recordings":[{"blurb_content":"","created":1720693976,"pinned_until":1721298776,"recording_mbid":null,"recording_msid":"6f4a50ca-b636-4c0b-a6a0-5b84451ab014","row_id":2136,"track_metadata":{"additional_info":{"recording_msid":"6f4a50ca-b636-4c0b-a6a0-5b84451ab014"},"artist_name":"WEEDIAN","release_name":"Trip to California (Stoner Edition)","track_name":"Mesmer - Wings of Evil"}},{"blurb_content":"","created":1720593845,"pinned_until":1720693976,"recording_mbid":"9a67108f-ded9-4653-a51a-43ccb873d32c","recording_msid":"33b761de-ad44-4ee7-ab20-b28118ed9f67","row_id":2116,"track_metadata":{"additional_info":{"recording_msid":"33b761de-ad44-4ee7-ab20-b28118ed9f67"},"artist_name":"Karkara","mbid_mapping":{"artist_mbids":["1bdc2715-507c-41cb-9e06-021a8ecd6c8e"],"artists":[{"artist_credit_name":"Karkara","artist_mbid":"1bdc2715-507c-41cb-9e06-021a8ecd6c8e","join_phrase":""}],"caa_id":38158274590,"caa_release_mbid":"d5406f53-0b82-45cb-8a78-468fc343748f","recording_mbid":"9a67108f-ded9-4653-a51a-43ccb873d32c","release_mbid":"d5406f53-0b82-45cb-8a78-468fc343748f"},"release_name":"All Is Dust","track_name":"On Edge"}},{"blurb_content":"","created":1710955582,"pinned_until":1711560384,"recording_mbid":"8fe7ac15-a253-4f29-9e81-2363200af18d","recording_msid":"c361edf3-1c86-48b9-aab2-755c4fb8dce8","row_id":1698,"track_metadata":{"additional_info":{"recording_msid":"c361edf3-1c86-48b9-aab2-755c4fb8dce8"},"artist_name":"Arjan Dhillon","mbid_mapping":{"artist_mbids":["9b34cd6a-b874-4e75-bec8-1c174fe295d0"],"artists":[{"artist_credit_name":"Arjan Dhillon","artist_mbid":"9b34cd6a-b874-4e75-bec8-1c174fe295d0","join_phrase":""}],"caa_id":37928515775,"caa_release_mbid":"d360fa73-e2be-4cd8-82d2-73eb61cadd51","recording_mbid":"8fe7ac15-a253-4f29-9e81-2363200af18d","release_mbid":"d360fa73-e2be-4cd8-82d2-73eb61cadd51"},"release_name":"Chobar","track_name":"Woah"}},{"blurb_content":null,"created":1704539945,"pinned_until":1705144745,"recording_mbid":"2f14ac58-d62d-4e45-a5e1-6504d1366831","recording_msid":"65971184-31f4-4ca3-924b-29e8ae072bc5","row_id":1438,"track_metadata":{"additional_info":{"recording_msid":"65971184-31f4-4ca3-924b-29e8ae072bc5"},"artist_name":"Aaron May","mbid_mapping":{"artist_mbids":["9f3225ad-e686-4538-8cbe-99406c4a4caa"],"artists":[{"artist_credit_name":"Aaron May","artist_mbid":"9f3225ad-e686-4538-8cbe-99406c4a4caa","join_phrase":""}],"caa_id":22549299616,"caa_release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","recording_mbid":"2f14ac58-d62d-4e45-a5e1-6504d1366831","release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4"},"release_name":"Chase","track_name":"I'm Good Luv, Enjoy."}},{"blurb_content":"Good anime good outro good game","created":1702565315,"pinned_until":1703170115,"recording_mbid":"ab100b50-31eb-4a71-98d8-52a5e4e1304e","recording_msid":"726eab7a-5a51-4d7d-aa5e-ca5e33ced3a1","row_id":1370,"track_metadata":{"additional_info":{"recording_msid":"726eab7a-5a51-4d7d-aa5e-ca5e33ced3a1"},"artist_name":"Dawid Podsiad\u0142o","mbid_mapping":{"artist_mbids":["68ffdf6b-001c-41ed-aa3a-20ec0128f627"],"artists":[{"artist_credit_name":"Dawid Podsiad\u0142o","artist_mbid":"68ffdf6b-001c-41ed-aa3a-20ec0128f627","join_phrase":""}],"caa_id":35924146102,"caa_release_mbid":"50274be9-730c-4642-8ede-25442d58867c","recording_mbid":"ab100b50-31eb-4a71-98d8-52a5e4e1304e","release_mbid":"cb64ddc6-dc64-4f31-b503-f977077c57d3"},"release_name":"Lata Dwudzieste z kawa\u0142kiem","track_name":"Let You Down"}},{"blurb_content":"Vibe","created":1702397156,"pinned_until":1702565315,"recording_mbid":"15c5d5a6-9ae9-4727-a413-d48c57e867d9","recording_msid":"ac081ab5-5702-4eb1-bd4d-cdc0504703c7","row_id":1363,"track_metadata":{"additional_info":{"recording_msid":"ac081ab5-5702-4eb1-bd4d-cdc0504703c7"},"artist_name":"Namakopuri as Us Cracks","mbid_mapping":{"artist_mbids":["1b7d53f5-1746-420b-b23d-e6b7c41a0b37","07ee1730-aee1-4c90-a225-be7b3edc94be"],"artists":[{"artist_credit_name":"Namakopuri","artist_mbid":"1b7d53f5-1746-420b-b23d-e6b7c41a0b37","join_phrase":" as "},{"artist_credit_name":"Us Cracks","artist_mbid":"07ee1730-aee1-4c90-a225-be7b3edc94be","join_phrase":""}],"caa_id":28105410573,"caa_release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4","recording_mbid":"15c5d5a6-9ae9-4727-a413-d48c57e867d9","release_mbid":"53002383-0ea4-44a4-97e1-b5d7d25e91a4"},"release_name":"Cyberpunk 2077: Radio, Vol. 2 (Original Soundtrack)","track_name":"PonPon Shit"}},{"blurb_content":"new pin","created":1692526823,"pinned_until":1692910066,"recording_mbid":"b990f72b-ec15-4c6f-801c-b990f2d711e7","recording_msid":null,"row_id":1089,"track_metadata":{"artist_name":"BigXthaPlug","mbid_mapping":{"artist_mbids":["d25f6294-686a-4569-b1b9-fe64bfef2519"],"artists":[{"artist_credit_name":"BigXthaPlug","artist_mbid":"d25f6294-686a-4569-b1b9-fe64bfef2519","join_phrase":""}],"caa_id":34865132955,"caa_release_mbid":"829adf9e-773a-4026-b674-fffa1fd141bb","recording_mbid":"b990f72b-ec15-4c6f-801c-b990f2d711e7","release_mbid":"829adf9e-773a-4026-b674-fffa1fd141bb"},"release_name":"AMAR","track_name":"Levels"}},{"blurb_content":"Wow..","created":1692526658,"pinned_until":1692526823,"recording_mbid":"43e2cac8-ac33-428e-9ad9-79827d4a8b34","recording_msid":null,"row_id":1088,"track_metadata":null},{"blurb_content":"Wow..","created":1692526234,"pinned_until":1692526658,"recording_mbid":null,"recording_msid":"40ef0ae1-5626-43eb-838f-1b34187519bf","row_id":1087,"track_metadata":null},{"blurb_content":null,"created":1683483528,"pinned_until":1684088328,"recording_mbid":"75cd34ef-70fd-46b4-a1a6-1d3db062b363","recording_msid":"8dfdf578-35c2-436c-8f47-081cac3028f0","row_id":856,"track_metadata":{"additional_info":{"recording_msid":"8dfdf578-35c2-436c-8f47-081cac3028f0"},"artist_name":"Yo Yo Honey Singh","mbid_mapping":{"artist_mbids":["0dc9c4bc-8bcc-42f1-9033-bec41160377f"],"artists":[{"artist_credit_name":"Yo Yo Honey Singh","artist_mbid":"0dc9c4bc-8bcc-42f1-9033-bec41160377f","join_phrase":""}],"caa_id":13965559599,"caa_release_mbid":"c30eb11a-9c23-4983-9e8f-3bff16b239a9","recording_mbid":"75cd34ef-70fd-46b4-a1a6-1d3db062b363","release_mbid":"c30eb11a-9c23-4983-9e8f-3bff16b239a9"},"release_name":"Zorawar","track_name":"Call Aundi"}},{"blurb_content":null,"created":1683366660,"pinned_until":1683483528,"recording_mbid":"650aa31f-cf18-4239-ac59-9cb9cca92d4d","recording_msid":"f564e069-46b8-43fc-ba95-d5f615c4a2cd","row_id":855,"track_metadata":{"additional_info":{"recording_msid":"f564e069-46b8-43fc-ba95-d5f615c4a2cd"},"artist_name":"Tegi Pannu & JJ Esko","mbid_mapping":{"artist_mbids":["092552b9-ea6d-4ead-b424-cf8b07da5877","81035abf-09f7-4cbe-a785-4510dbd7970c"],"artists":[{"artist_credit_name":"Tegi Pannu","artist_mbid":"092552b9-ea6d-4ead-b424-cf8b07da5877","join_phrase":" & "},{"artist_credit_name":"JJ Esko","artist_mbid":"81035abf-09f7-4cbe-a785-4510dbd7970c","join_phrase":""}],"caa_id":34147069927,"caa_release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","recording_mbid":"650aa31f-cf18-4239-ac59-9cb9cca92d4d","release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea"},"release_name":"Disturbing The Peace","track_name":"Hold You Down"}},{"blurb_content":null,"created":1683190944,"pinned_until":1683366660,"recording_mbid":"75a38235-5db3-4545-bd4c-e4de9baee068","recording_msid":"0a95a65b-94a5-4f6a-a7ef-51d0455e4ad4","row_id":851,"track_metadata":{"additional_info":{"recording_msid":"0a95a65b-94a5-4f6a-a7ef-51d0455e4ad4"},"artist_name":"Playboi Carti","mbid_mapping":{"artist_mbids":["2baf3276-ed6a-4349-8d2e-f4601e7b2167"],"artists":[{"artist_credit_name":"Playboi Carti","artist_mbid":"2baf3276-ed6a-4349-8d2e-f4601e7b2167","join_phrase":""}],"recording_mbid":"75a38235-5db3-4545-bd4c-e4de9baee068","release_mbid":"b2d63750-05c8-4fa0-be7c-f7c3a4737a4a"},"release_name":"Magnolia","track_name":"Magnolia"}}],"total_count":12,"user_name":"Jasjeet"} diff --git a/sharedTest/src/main/resources/similar_user_error.json b/sharedTest/src/main/resources/similar_user_error.json new file mode 100644 index 00000000..f788e421 --- /dev/null +++ b/sharedTest/src/main/resources/similar_user_error.json @@ -0,0 +1 @@ +{"code":404,"error":"Similar-to user not found"} \ No newline at end of file diff --git a/sharedTest/src/main/resources/similar_users_response.json b/sharedTest/src/main/resources/similar_users_response.json index 9d8b0324..6d50b409 100644 --- a/sharedTest/src/main/resources/similar_users_response.json +++ b/sharedTest/src/main/resources/similar_users_response.json @@ -1 +1 @@ -{"payload":[{"similarity":0.592778543651705,"user_name":"jivteshs20"},{"similarity":0.2367332837331803,"user_name":"akshaaatt"},{"similarity":0.18639954307331036,"user_name":"lucifer"}]} +{"payload":{"similarity":0.592778543651705,"user_name":"jivteshs20"}} diff --git a/sharedTest/src/main/resources/top_albums.json b/sharedTest/src/main/resources/top_albums.json index 8bb1b7e2..b4564d19 100644 --- a/sharedTest/src/main/resources/top_albums.json +++ b/sharedTest/src/main/resources/top_albums.json @@ -1 +1 @@ -{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723268591,"offset":0,"range":"all_time","releases":[{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":2463,"release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":16767050943,"caa_release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b","listen_count":1115,"release_mbid":"44703741-a292-42e2-85d5-117ca1df8d9b","release_name":"One More Light"},{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artist_name":"Lauv","artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","listen_count":1023,"release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","release_name":"~how i\u2019m feeling~"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":11788642695,"caa_release_mbid":"e7d13ff4-ec74-4eff-b0d3-bdc00b720944","listen_count":927,"release_mbid":"b6d0161d-1073-48e2-8503-4bd3261899ee","release_name":"Blue Neighbourhood"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":731,"release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)"},{"artist_mbids":["1a425bbd-cca4-4b2c-aeb7-71cb176c828a"],"artist_name":"One Direction","artists":[{"artist_credit_name":"One Direction","artist_mbid":"1a425bbd-cca4-4b2c-aeb7-71cb176c828a","join_phrase":""}],"caa_id":34762378442,"caa_release_mbid":"a31c02ee-5f62-4b9d-b576-2b02c5e4d750","listen_count":561,"release_mbid":"a31c02ee-5f62-4b9d-b576-2b02c5e4d750","release_name":"Four: The Ultimate Edition"},{"artist_mbids":["c262b6bf-be56-4b26-bceb-42d7a27342f3"],"artist_name":"Mike Shinoda","artists":[{"artist_credit_name":"Mike Shinoda","artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","join_phrase":""}],"caa_id":19495585058,"caa_release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9","listen_count":542,"release_mbid":"639eb4b8-2ea0-4455-a067-f1d9faade1c9","release_name":"Post Traumatic"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":20981274842,"caa_release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","listen_count":518,"release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","release_name":"Bloom"},{"artist_mbids":["074e3847-f67f-49f9-81f1-8c8cea147e8e"],"artist_name":"Bring Me the Horizon","artists":[{"artist_credit_name":"Bring Me the Horizon","artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","join_phrase":""}],"caa_id":16426388091,"caa_release_mbid":"a78e93a9-6073-4d80-a69b-d008936257f3","listen_count":513,"release_mbid":"a78e93a9-6073-4d80-a69b-d008936257f3","release_name":"That\u2019s the Spirit"},{"artist_mbids":["21a14ee3-cede-420a-9d6d-a33517d2f952"],"artist_name":"Alec Benjamin","artists":[{"artist_credit_name":"Alec Benjamin","artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","join_phrase":""}],"caa_id":31885394071,"caa_release_mbid":"946b0030-b999-4f21-b9d1-9e82f02e6d96","listen_count":496,"release_mbid":"eeb50973-2e71-4d04-939e-298ba8bc0af8","release_name":"(Un)Commentary"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":21070222550,"caa_release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","listen_count":495,"release_mbid":"127e18cd-99ad-3193-ad4f-441bee3c6e3b","release_name":"Minutes to Midnight"},{"artist_mbids":[],"artist_name":"Sanam Malik, ANA","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":419,"release_mbid":null,"release_name":"Jaane Kaise"},{"artist_mbids":["0ab49580-c84f-44d4-875f-d83760ea2cfe"],"artist_name":"Maroon 5","artists":[{"artist_credit_name":"Maroon 5","artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","join_phrase":""}],"caa_id":22165193878,"caa_release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34","listen_count":384,"release_mbid":"28832231-f70d-4937-8cbd-d4b679195d34","release_name":"V"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":32210635464,"caa_release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2","listen_count":374,"release_mbid":"b94f45e0-7a1a-4895-a45b-3abd2ec5eda2","release_name":"MAINSTREAM SELLOUT"},{"artist_mbids":["e1564e98-978b-4947-8698-f6fd6f8b0181"],"artist_name":"Fort Minor","artists":[{"artist_credit_name":"Fort Minor","artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","join_phrase":""}],"caa_id":5891285623,"caa_release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e","listen_count":371,"release_mbid":"4b6ca48c-f7db-439d-ba57-6104b5fec61e","release_name":"The Rising Tied"},{"artist_mbids":["89ad4ac3-39f7-470e-963a-56509c546377"],"artist_name":"\u30f4\u30a1\u30ea\u30a2\u30b9\u30fb\u30a2\u30fc\u30c6\u30a3\u30b9\u30c8","artists":[{"artist_credit_name":"\u30f4\u30a1\u30ea\u30a2\u30b9\u30fb\u30a2\u30fc\u30c6\u30a3\u30b9\u30c8","artist_mbid":"89ad4ac3-39f7-470e-963a-56509c546377","join_phrase":""}],"caa_id":38587113752,"caa_release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","listen_count":351,"release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","release_name":"\u604b\u3057\u305f\u304f\u306a\u308b\u30e9\u30d6\u30bd\u30f3\u30b0"},{"artist_mbids":["f59c5520-5f46-4d2c-b2c4-822eabf53419"],"artist_name":"Linkin Park","artists":[{"artist_credit_name":"Linkin Park","artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","join_phrase":""}],"caa_id":17668660885,"caa_release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310","listen_count":343,"release_mbid":"7f1a6e87-9ad2-4629-b9a5-563525607310","release_name":"Living Things"},{"artist_mbids":["b1e26560-60e5-4236-bbdb-9aa5a8d5ee19"],"artist_name":"Post Malone","artists":[{"artist_credit_name":"Post Malone","artist_mbid":"b1e26560-60e5-4236-bbdb-9aa5a8d5ee19","join_phrase":""}],"caa_id":24123818307,"caa_release_mbid":"fe2c8953-e3d5-40fe-a855-cdb5eb8357a0","listen_count":342,"release_mbid":"fe2c8953-e3d5-40fe-a855-cdb5eb8357a0","release_name":"Hollywood\u2019s Bleeding"},{"artist_mbids":["ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"],"artist_name":"Arctic Monkeys","artists":[{"artist_credit_name":"Arctic Monkeys","artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","join_phrase":""}],"caa_id":32131848311,"caa_release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","listen_count":339,"release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","release_name":"AM"},{"artist_mbids":["985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7"],"artist_name":"ZAYN","artists":[{"artist_credit_name":"ZAYN","artist_mbid":"985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7","join_phrase":""}],"caa_id":22079449622,"caa_release_mbid":"871f8a05-6620-41dc-a569-624122029ce7","listen_count":321,"release_mbid":"6d4045e6-432d-4302-af8e-923e581ad6c7","release_name":"Icarus Falls"},{"artist_mbids":[],"artist_name":"TakaseToya, emi noda","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":319,"release_mbid":null,"release_name":"The 2nd of Undecimber"},{"artist_mbids":["6f500293-7396-4903-b4fd-118127d06f9e","ddd49f88-6367-4f58-9dd9-a767e976b0b7"],"artist_name":"RADWIMPS feat. \u5341\u660e","artists":[{"artist_credit_name":"RADWIMPS","artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","join_phrase":" feat. "},{"artist_credit_name":"\u5341\u660e","artist_mbid":"ddd49f88-6367-4f58-9dd9-a767e976b0b7","join_phrase":""}],"caa_id":33711108184,"caa_release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","listen_count":317,"release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","release_name":"\u3059\u305a\u3081"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9"],"artist_name":"The Weeknd","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":""}],"caa_id":16759920843,"caa_release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","listen_count":307,"release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","release_name":"Starboy"},{"artist_mbids":["f931c961-b647-4861-be8c-f47d84a4de51"],"artist_name":"Diljit Dosanjh","artists":[{"artist_credit_name":"Diljit Dosanjh","artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","join_phrase":""}],"caa_id":31442218448,"caa_release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","listen_count":306,"release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","release_name":"MoonChild Era"},{"artist_mbids":["98c09f94-10b5-426c-b27a-44345bb54528"],"artist_name":"Sasha Sloan","artists":[{"artist_credit_name":"Sasha Sloan","artist_mbid":"98c09f94-10b5-426c-b27a-44345bb54528","join_phrase":""}],"caa_id":32812417399,"caa_release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","listen_count":285,"release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","release_name":"Self Portrait"}],"to_ts":1723248018,"total_release_count":1360,"user_id":"akshaaatt"}} +{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723268864,"offset":0,"range":"all_time","releases":[{"artist_mbids":["4a779683-5404-4b90-a0d7-242495158265"],"artist_name":"Karan Aujla","artists":[{"artist_credit_name":"Karan Aujla","artist_mbid":"4a779683-5404-4b90-a0d7-242495158265","join_phrase":""}],"caa_id":32050224646,"caa_release_mbid":"bdd4aa78-9caf-40e4-a698-6639f96571eb","listen_count":156,"release_mbid":"bdd4aa78-9caf-40e4-a698-6639f96571eb","release_name":"B.T.F.U"},{"artist_mbids":["9b34cd6a-b874-4e75-bec8-1c174fe295d0"],"artist_name":"Arjan Dhillon","artists":[{"artist_credit_name":"Arjan Dhillon","artist_mbid":"9b34cd6a-b874-4e75-bec8-1c174fe295d0","join_phrase":""}],"caa_id":31811400978,"caa_release_mbid":"d8c0026f-e10c-494d-b66c-2085062b8c2e","listen_count":150,"release_mbid":"d8c0026f-e10c-494d-b66c-2085062b8c2e","release_name":"Awara"},{"artist_mbids":[],"artist_name":"Ekam Sudhar, Manni Sandhu, Rav Hanjra","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":127,"release_mbid":null,"release_name":"Small Circle"},{"artist_mbids":["d0a37e1c-a9c3-4966-b630-984c33b087df"],"artist_name":"Eifi","artists":[{"artist_credit_name":"Eifi","artist_mbid":"d0a37e1c-a9c3-4966-b630-984c33b087df","join_phrase":""}],"caa_id":35241947664,"caa_release_mbid":"1dd36e0a-16e8-4486-b062-00891253abb0","listen_count":103,"release_mbid":"1dd36e0a-16e8-4486-b062-00891253abb0","release_name":"Old School Vibe"},{"artist_mbids":["8837b875-3689-4646-b3fd-d8b53815c7a8"],"artist_name":"Lil Uzi Vert","artists":[{"artist_credit_name":"Lil Uzi Vert","artist_mbid":"8837b875-3689-4646-b3fd-d8b53815c7a8","join_phrase":""}],"caa_id":35008042732,"caa_release_mbid":"de152c73-f234-4456-a032-cac36b5c006d","listen_count":99,"release_mbid":"de152c73-f234-4456-a032-cac36b5c006d","release_name":"Watch This (ARIZONATEARS pluggnb remix)"},{"artist_mbids":["092552b9-ea6d-4ead-b424-cf8b07da5877"],"artist_name":"Tegi Pannu","artists":[{"artist_credit_name":"Tegi Pannu","artist_mbid":"092552b9-ea6d-4ead-b424-cf8b07da5877","join_phrase":""}],"caa_id":34147069927,"caa_release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","listen_count":77,"release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","release_name":"Disturbing The Peace"},{"artist_mbids":[],"artist_name":"Amantej Hundal","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":74,"release_mbid":null,"release_name":"Underrated"},{"artist_mbids":["63aa26c3-d59b-4da4-84ac-716b54f1ef4d"],"artist_name":"Tame Impala","artists":[{"artist_credit_name":"Tame Impala","artist_mbid":"63aa26c3-d59b-4da4-84ac-716b54f1ef4d","join_phrase":""}],"caa_id":25489083340,"caa_release_mbid":"b9410b9a-cb64-41ac-b863-fa95f8eb51ea","listen_count":64,"release_mbid":"b9410b9a-cb64-41ac-b863-fa95f8eb51ea","release_name":"Currents"},{"artist_mbids":["9537e089-79dd-43d7-9cf3-f6d51f6864fc"],"artist_name":"The Landers","artists":[{"artist_credit_name":"The Landers","artist_mbid":"9537e089-79dd-43d7-9cf3-f6d51f6864fc","join_phrase":""}],"caa_id":32015349705,"caa_release_mbid":"c7f3577a-8e75-4fc7-9498-1010054af117","listen_count":63,"release_mbid":"c7f3577a-8e75-4fc7-9498-1010054af117","release_name":"Gustakhiyan"},{"artist_mbids":["4a779683-5404-4b90-a0d7-242495158265","3ea12c3c-8596-4d70-b327-208b0a459a97"],"artist_name":"Karan Aujla, Ikky","artists":[{"artist_credit_name":"Karan Aujla","artist_mbid":"4a779683-5404-4b90-a0d7-242495158265","join_phrase":", "},{"artist_credit_name":"Ikky","artist_mbid":"3ea12c3c-8596-4d70-b327-208b0a459a97","join_phrase":""}],"caa_id":34792503592,"caa_release_mbid":"1390f1b7-7851-48ae-983d-eb8a48f78048","listen_count":63,"release_mbid":"1390f1b7-7851-48ae-983d-eb8a48f78048","release_name":"Four You"},{"artist_mbids":["381086ea-f511-4aba-bdf9-71c753dc5077"],"artist_name":"Kendrick Lamar","artists":[{"artist_credit_name":"Kendrick Lamar","artist_mbid":"381086ea-f511-4aba-bdf9-71c753dc5077","join_phrase":""}],"caa_id":2361576294,"caa_release_mbid":"e1d99364-1ad9-4f4d-9505-2242eff10a44","listen_count":51,"release_mbid":"e1d99364-1ad9-4f4d-9505-2242eff10a44","release_name":"good kid, m.A.A.d city"},{"artist_mbids":[],"artist_name":"R Nait","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":47,"release_mbid":null,"release_name":"Toy"},{"artist_mbids":[],"artist_name":"Arjan Dhillon","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":45,"release_mbid":null,"release_name":"Night Out"},{"artist_mbids":[],"artist_name":"Arjan Dhillon","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":43,"release_mbid":null,"release_name":"Kise Naal Ni Bolda"},{"artist_mbids":["610d38e7-f5b5-4ec8-b10d-17387ee11bdd","878391e2-c5e7-4b51-bbc1-236326fa810c"],"artist_name":"Amrit Maan & The PropheC","artists":[{"artist_credit_name":"Amrit Maan","artist_mbid":"610d38e7-f5b5-4ec8-b10d-17387ee11bdd","join_phrase":" & "},{"artist_credit_name":"The PropheC","artist_mbid":"878391e2-c5e7-4b51-bbc1-236326fa810c","join_phrase":""}],"caa_id":33469880728,"caa_release_mbid":"eb0701cd-5d83-4c23-ab7c-df4cc9dbb639","listen_count":40,"release_mbid":"eb0701cd-5d83-4c23-ab7c-df4cc9dbb639","release_name":"My Moon"},{"artist_mbids":["7e1cf02b-cf78-4803-b496-930c38649223"],"artist_name":"Jassa Dhillon","artists":[{"artist_credit_name":"Jassa Dhillon","artist_mbid":"7e1cf02b-cf78-4803-b496-930c38649223","join_phrase":""}],"caa_id":31988019523,"caa_release_mbid":"101876a6-8e7d-4512-97d5-a0ff08f22f53","listen_count":40,"release_mbid":"101876a6-8e7d-4512-97d5-a0ff08f22f53","release_name":"Love War"},{"artist_mbids":["9e975e9b-7538-4acd-ba91-8e5fd5df6b6e"],"artist_name":"Kid Bloom","artists":[{"artist_credit_name":"Kid Bloom","artist_mbid":"9e975e9b-7538-4acd-ba91-8e5fd5df6b6e","join_phrase":""}],"caa_id":null,"caa_release_mbid":null,"listen_count":36,"release_mbid":"75169a25-004e-40f5-aaa7-78d2de09eb28","release_name":"Electric U -Single"},{"artist_mbids":["bce6d667-cde8-485e-b078-c0a05adea36d"],"artist_name":"ScHoolboy Q","artists":[{"artist_credit_name":"ScHoolboy Q","artist_mbid":"bce6d667-cde8-485e-b078-c0a05adea36d","join_phrase":""}],"caa_id":32363103828,"caa_release_mbid":"9fc29035-a4c5-4e7c-b984-a52e9aa63ad8","listen_count":36,"release_mbid":"9fc29035-a4c5-4e7c-b984-a52e9aa63ad8","release_name":"CrasH Talk"},{"artist_mbids":[],"artist_name":"NIJJAR","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":34,"release_mbid":null,"release_name":"Chobbar"},{"artist_mbids":["ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"],"artist_name":"Arctic Monkeys","artists":[{"artist_credit_name":"Arctic Monkeys","artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","join_phrase":""}],"caa_id":32131848311,"caa_release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","listen_count":33,"release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","release_name":"AM"},{"artist_mbids":["2338cede-17d7-40ef-9ea1-a16416908eeb"],"artist_name":"Sports","artists":[{"artist_credit_name":"Sports","artist_mbid":"2338cede-17d7-40ef-9ea1-a16416908eeb","join_phrase":""}],"caa_id":16665200572,"caa_release_mbid":"afea971b-c6ed-4ff8-9552-b47b8569c751","listen_count":32,"release_mbid":"afea971b-c6ed-4ff8-9552-b47b8569c751","release_name":"Naked All The Time"},{"artist_mbids":["9f3225ad-e686-4538-8cbe-99406c4a4caa"],"artist_name":"Aaron May","artists":[{"artist_credit_name":"Aaron May","artist_mbid":"9f3225ad-e686-4538-8cbe-99406c4a4caa","join_phrase":""}],"caa_id":22549299616,"caa_release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","listen_count":31,"release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","release_name":"Chase"},{"artist_mbids":["3538581d-2e3f-40ac-98fe-fd434f29d04d"],"artist_name":"Nirvair Pannu","artists":[{"artist_credit_name":"Nirvair Pannu","artist_mbid":"3538581d-2e3f-40ac-98fe-fd434f29d04d","join_phrase":""}],"caa_id":33181866663,"caa_release_mbid":"9a2d9b48-146f-4980-bdc1-891bc0b598b1","listen_count":29,"release_mbid":"9a2d9b48-146f-4980-bdc1-891bc0b598b1","release_name":"Click"},{"artist_mbids":[],"artist_name":"Navaan Sandhu","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":28,"release_mbid":null,"release_name":"Relentless"},{"artist_mbids":["9b34cd6a-b874-4e75-bec8-1c174fe295d0"],"artist_name":"Arjan Dhillon","artists":[{"artist_credit_name":"Arjan Dhillon","artist_mbid":"9b34cd6a-b874-4e75-bec8-1c174fe295d0","join_phrase":""}],"caa_id":33843554085,"caa_release_mbid":"6c7dc4d8-7505-49ef-88d6-86a3b7fbb7eb","listen_count":26,"release_mbid":"6c7dc4d8-7505-49ef-88d6-86a3b7fbb7eb","release_name":"Jalwa"}],"to_ts":1723248018,"total_release_count":638,"user_id":"Jasjeet"}} diff --git a/sharedTest/src/main/resources/top_artists.json b/sharedTest/src/main/resources/top_artists.json index 7c93c076..7d698b1b 100644 --- a/sharedTest/src/main/resources/top_artists.json +++ b/sharedTest/src/main/resources/top_artists.json @@ -1 +1 @@ -{"payload":{"artists":[{"artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","artist_name":"mgk","listen_count":3762},{"artist_mbid":"f59c5520-5f46-4d2c-b2c4-822eabf53419","artist_name":"Linkin Park","listen_count":3000},{"artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","artist_name":"Troye Sivan","listen_count":2515},{"artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","artist_name":"Lauv","listen_count":1730},{"artist_mbid":"20244d07-534f-4eff-b4d4-930878889970","artist_name":"Taylor Swift","listen_count":1038},{"artist_mbid":"3377f3bb-60fc-4403-aea9-7e800612e060","artist_name":"Halsey","listen_count":1014},{"artist_mbid":"c262b6bf-be56-4b26-bceb-42d7a27342f3","artist_name":"Mike Shinoda","listen_count":1003},{"artist_mbid":"074e3847-f67f-49f9-81f1-8c8cea147e8e","artist_name":"Bring Me the Horizon","listen_count":983},{"artist_mbid":"f4fdbb4c-e4b7-47a0-b83b-d91bbfcfa387","artist_name":"Ariana Grande","listen_count":747},{"artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","artist_name":"Alec Benjamin","listen_count":728},{"artist_mbid":"1a425bbd-cca4-4b2c-aeb7-71cb176c828a","artist_name":"One Direction","listen_count":696},{"artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","artist_name":"Arctic Monkeys","listen_count":687},{"artist_mbid":"0ab49580-c84f-44d4-875f-d83760ea2cfe","artist_name":"Maroon 5","listen_count":631},{"artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","artist_name":"The Weeknd","listen_count":588},{"artist_mbid":"e07d9474-00ea-4460-ac27-88b46b3d976e","artist_name":"blackbear","listen_count":522},{"artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","artist_name":"RADWIMPS","listen_count":448},{"artist_mbid":"e1564e98-978b-4947-8698-f6fd6f8b0181","artist_name":"Fort Minor","listen_count":431},{"artist_mbid":"985f7e6f-0a7e-4de7-b9ec-a5dac63cb2f7","artist_name":"ZAYN","listen_count":421},{"artist_mbid":null,"artist_name":"Sanam Malik, ANA","listen_count":419},{"artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","artist_name":"Diljit Dosanjh","listen_count":419},{"artist_mbid":"c984f772-a70d-44b6-ad12-47ec8d3fdd35","artist_name":"Aditya A","listen_count":419},{"artist_mbid":"b1e26560-60e5-4236-bbdb-9aa5a8d5ee19","artist_name":"Post Malone","listen_count":364},{"artist_mbid":"4757df70-6c3e-46b8-99c0-a68644595c9a","artist_name":"Julia Michaels","listen_count":361},{"artist_mbid":"68fdc9cc-1094-48bb-942f-66492343e41c","artist_name":"Calum Scott","listen_count":361},{"artist_mbid":"525f1f1c-03f0-4bc8-8dfd-e7521f87631b","artist_name":"Charlie Puth","listen_count":335}],"count":25,"from_ts":1009843200,"last_updated":1723268040,"offset":0,"range":"all_time","to_ts":1723248018,"total_artist_count":1093,"user_id":"akshaaatt"}} +{"payload":{"artists":[{"artist_mbid":"4a779683-5404-4b90-a0d7-242495158265","artist_name":"Karan Aujla","listen_count":263},{"artist_mbid":"9b34cd6a-b874-4e75-bec8-1c174fe295d0","artist_name":"Arjan Dhillon","listen_count":188},{"artist_mbid":null,"artist_name":"Ekam Sudhar, Manni Sandhu, Rav Hanjra","listen_count":127},{"artist_mbid":null,"artist_name":"Arjan Dhillon","listen_count":127},{"artist_mbid":"092552b9-ea6d-4ead-b424-cf8b07da5877","artist_name":"Tegi Pannu","listen_count":114},{"artist_mbid":"8837b875-3689-4646-b3fd-d8b53815c7a8","artist_name":"Lil Uzi Vert","listen_count":104},{"artist_mbid":"63aa26c3-d59b-4da4-84ac-716b54f1ef4d","artist_name":"Tame Impala","listen_count":103},{"artist_mbid":"d0a37e1c-a9c3-4966-b630-984c33b087df","artist_name":"Eifi","listen_count":103},{"artist_mbid":null,"artist_name":"Amantej Hundal","listen_count":75},{"artist_mbid":"3ea12c3c-8596-4d70-b327-208b0a459a97","artist_name":"Ikky","listen_count":65},{"artist_mbid":"381086ea-f511-4aba-bdf9-71c753dc5077","artist_name":"Kendrick Lamar","listen_count":64},{"artist_mbid":"9537e089-79dd-43d7-9cf3-f6d51f6864fc","artist_name":"The Landers","listen_count":63},{"artist_mbid":"7e1cf02b-cf78-4803-b496-930c38649223","artist_name":"Jassa Dhillon","listen_count":54},{"artist_mbid":"119a6864-622b-4e6c-8aab-a422080530c6","artist_name":"Sidhu Moose Wala","listen_count":53},{"artist_mbid":"9880800a-f6f8-4f8f-a00e-b4b664776c0c","artist_name":"Jay Rock","listen_count":52},{"artist_mbid":"878391e2-c5e7-4b51-bbc1-236326fa810c","artist_name":"The PropheC","listen_count":49},{"artist_mbid":null,"artist_name":"R Nait","listen_count":49},{"artist_mbid":"610d38e7-f5b5-4ec8-b10d-17387ee11bdd","artist_name":"Amrit Maan","listen_count":48},{"artist_mbid":null,"artist_name":"Navaan Sandhu","listen_count":40},{"artist_mbid":"6ae6bde5-3727-4202-9298-e2f3de2235cd","artist_name":"Manni Sandhu","listen_count":38},{"artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","artist_name":"Arctic Monkeys","listen_count":38},{"artist_mbid":"bce6d667-cde8-485e-b078-c0a05adea36d","artist_name":"ScHoolboy Q","listen_count":36},{"artist_mbid":"9e975e9b-7538-4acd-ba91-8e5fd5df6b6e","artist_name":"Kid Bloom","listen_count":36},{"artist_mbid":"83fd7495-a02f-4254-9cfb-6753cb87c73e","artist_name":"Prem Dhillon","listen_count":34},{"artist_mbid":null,"artist_name":"NIJJAR","listen_count":34}],"count":25,"from_ts":1009843200,"last_updated":1723268083,"offset":0,"range":"all_time","to_ts":1723248018,"total_artist_count":617,"user_id":"Jasjeet"}} diff --git a/sharedTest/src/main/resources/top_songs.json b/sharedTest/src/main/resources/top_songs.json index 6adb7ea1..dc1e0bd5 100644 --- a/sharedTest/src/main/resources/top_songs.json +++ b/sharedTest/src/main/resources/top_songs.json @@ -1 +1 @@ -{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723270823,"offset":0,"range":"all_time","recordings":[{"artist_mbids":["21a14ee3-cede-420a-9d6d-a33517d2f952"],"artist_name":"Alec Benjamin","artists":[{"artist_credit_name":"Alec Benjamin","artist_mbid":"21a14ee3-cede-420a-9d6d-a33517d2f952","join_phrase":""}],"caa_id":31885394071,"caa_release_mbid":"946b0030-b999-4f21-b9d1-9e82f02e6d96","listen_count":431,"recording_mbid":"e2ef1fc7-88c5-44c0-abde-7144f55d15bd","release_mbid":"eeb50973-2e71-4d04-939e-298ba8bc0af8","release_name":"(Un)Commentary","track_name":"Older"},{"artist_mbids":[],"artist_name":"Sanam Malik, ANA","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":419,"recording_mbid":null,"release_mbid":null,"release_name":"Jaane Kaise","track_name":"Jaane Kaise"},{"artist_mbids":["c0ef2ba5-a7b7-40ea-bd27-30acccfcac11"],"artist_name":"Lauv","artists":[{"artist_credit_name":"Lauv","artist_mbid":"c0ef2ba5-a7b7-40ea-bd27-30acccfcac11","join_phrase":""}],"caa_id":25651991080,"caa_release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","listen_count":411,"recording_mbid":"4fbb1e4a-c5c7-4694-a971-a3668bcffa17","release_mbid":"63b5d3be-6538-4fc9-ac7d-a42334aebd85","release_name":"~how i\u2019m feeling~","track_name":"Feelings"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","e07d9474-00ea-4460-ac27-88b46b3d976e"],"artist_name":"Machine Gun Kelly feat. blackbear","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"blackbear","artist_mbid":"e07d9474-00ea-4460-ac27-88b46b3d976e","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":399,"recording_mbid":"6cd38dad-148f-4381-9cf4-b75f496238c6","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"my ex\u2019s best friend"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":11788642695,"caa_release_mbid":"e7d13ff4-ec74-4eff-b0d3-bdc00b720944","listen_count":390,"recording_mbid":"15e7a501-4f35-4977-8956-0e0c8b644af6","release_mbid":"b6d0161d-1073-48e2-8503-4bd3261899ee","release_name":"Blue Neighbourhood","track_name":"LOST BOY"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":38587113752,"caa_release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","listen_count":351,"recording_mbid":"0f8d5cc0-7e6e-486e-9544-eca4736cd8b7","release_mbid":"9efe4f5e-3634-4aa9-94c7-43d960955eea","release_name":"\u604b\u3057\u305f\u304f\u306a\u308b\u30e9\u30d6\u30bd\u30f3\u30b0","track_name":"Strawberries & Cigarettes"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":20981274842,"caa_release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","listen_count":319,"recording_mbid":"f75b6b94-46b3-4c0a-af56-05b4dfbee957","release_mbid":"2a7a4450-32da-4e21-9893-9b7282eb9c4a","release_name":"Bloom","track_name":"Lucky Strike"},{"artist_mbids":[],"artist_name":"TakaseToya, emi noda","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":319,"recording_mbid":null,"release_mbid":null,"release_name":"The 2nd of Undecimber","track_name":"Doushite"},{"artist_mbids":["6f500293-7396-4903-b4fd-118127d06f9e","ddd49f88-6367-4f58-9dd9-a767e976b0b7"],"artist_name":"RADWIMPS feat. \u5341\u660e","artists":[{"artist_credit_name":"RADWIMPS","artist_mbid":"6f500293-7396-4903-b4fd-118127d06f9e","join_phrase":" feat. "},{"artist_credit_name":"\u5341\u660e","artist_mbid":"ddd49f88-6367-4f58-9dd9-a767e976b0b7","join_phrase":""}],"caa_id":33711108184,"caa_release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","listen_count":317,"recording_mbid":"4da804f6-98dc-456b-8fb3-5ffd971b18ec","release_mbid":"4fc95fab-017c-4133-affc-7f571bb55fd8","release_name":"\u3059\u305a\u3081","track_name":"\u3059\u305a\u3081"},{"artist_mbids":["f931c961-b647-4861-be8c-f47d84a4de51"],"artist_name":"Diljit Dosanjh","artists":[{"artist_credit_name":"Diljit Dosanjh","artist_mbid":"f931c961-b647-4861-be8c-f47d84a4de51","join_phrase":""}],"caa_id":31442218448,"caa_release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","listen_count":296,"recording_mbid":"170dc09e-2d38-407f-aa3f-4807e7d1f3d2","release_mbid":"70252510-27ce-42f1-953a-f3966a5499a0","release_name":"MoonChild Era","track_name":"Lover"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9","056e4f3e-d505-4dad-8ec1-d04f521cbb56"],"artist_name":"The Weeknd featuring Daft Punk","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":" featuring "},{"artist_credit_name":"Daft Punk","artist_mbid":"056e4f3e-d505-4dad-8ec1-d04f521cbb56","join_phrase":""}],"caa_id":16759920843,"caa_release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","listen_count":289,"recording_mbid":"3da01a8e-3c71-408f-a9c7-0c4d10ad4e7d","release_mbid":"4f61a8bb-aa55-4951-8cfc-0809401db4ca","release_name":"Starboy","track_name":"Starboy"},{"artist_mbids":["98c09f94-10b5-426c-b27a-44345bb54528"],"artist_name":"Sasha Sloan","artists":[{"artist_credit_name":"Sasha Sloan","artist_mbid":"98c09f94-10b5-426c-b27a-44345bb54528","join_phrase":""}],"caa_id":32812417399,"caa_release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","listen_count":284,"recording_mbid":"9ae71082-ac47-4b9c-a12b-a67fff75784a","release_mbid":"87231c00-929a-47e6-a633-f464078eb4dc","release_name":"Self Portrait","track_name":"Dancing With Your Ghost"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":277,"recording_mbid":"4c989c32-51a3-489a-965a-bb334def31a8","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"concert for aliens"},{"artist_mbids":[],"artist_name":"ZAYN","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":264,"recording_mbid":null,"release_mbid":null,"release_name":"Icarus Falls","track_name":"There You Are"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":263,"recording_mbid":"b9874074-b2d6-4135-bc2a-f4ef44b0ae69","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"title track"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":252,"recording_mbid":"b6e4f4ea-b20c-4489-b0e6-c09f40b0ef18","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"jawbreaker"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":237,"recording_mbid":"198a6f88-eb15-4280-9208-82998cb39175","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"bloody valentine"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":236,"recording_mbid":"5ca5de59-bdd5-41fb-beae-2b343ee6f90d","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"hangover cure"},{"artist_mbids":["e5712ceb-c37a-4c49-a11c-ccf4e21852d4"],"artist_name":"Troye Sivan","artists":[{"artist_credit_name":"Troye Sivan","artist_mbid":"e5712ceb-c37a-4c49-a11c-ccf4e21852d4","join_phrase":""}],"caa_id":26731335835,"caa_release_mbid":"0ab6cf1d-48a5-4227-a0f4-70bc47a39b58","listen_count":230,"recording_mbid":"f87aa613-a335-44a8-a702-7b15840dc74b","release_mbid":"0ab6cf1d-48a5-4227-a0f4-70bc47a39b58","release_name":"Easy","track_name":"Easy"},{"artist_mbids":["c8b03190-306c-4120-bb0b-6f2ebfc06ea9"],"artist_name":"The Weeknd","artists":[{"artist_credit_name":"The Weeknd","artist_mbid":"c8b03190-306c-4120-bb0b-6f2ebfc06ea9","join_phrase":""}],"caa_id":25807105705,"caa_release_mbid":"fd7ebee8-8c64-4127-a9be-8e31ed6364e3","listen_count":221,"recording_mbid":"1a67e215-a19e-40c9-9b12-732de134bf5f","release_mbid":"fd7ebee8-8c64-4127-a9be-8e31ed6364e3","release_name":"After Hours","track_name":"Blinding Lights"},{"artist_mbids":[],"artist_name":"Sasha Alex Sloan","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":212,"recording_mbid":null,"release_mbid":null,"release_name":"Older","track_name":"Older"},{"artist_mbids":["aa5891dd-9306-48e5-a1ee-77d2519abb61"],"artist_name":"Dikshant","artists":[{"artist_credit_name":"Dikshant","artist_mbid":"aa5891dd-9306-48e5-a1ee-77d2519abb61","join_phrase":""}],"caa_id":32335009413,"caa_release_mbid":"3626f26a-cda7-4413-9718-7dc61c8bde7c","listen_count":206,"recording_mbid":"8491bdca-0345-4c8a-9421-b53bbffdc168","release_mbid":"3626f26a-cda7-4413-9718-7dc61c8bde7c","release_name":"Aankhon Se Batana","track_name":"Aankhon Se Batana"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":203,"recording_mbid":"cb8be04f-e8b1-425c-b68b-c4a32f2c6532","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"split a pill"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33","97529a9e-4b5a-4a9c-9c08-c42401d1c268","10a048d2-9afd-42d9-912e-0eb36c724f70"],"artist_name":"Machine Gun Kelly feat. YUNGBLUD & Bert McCracken","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":" feat. "},{"artist_credit_name":"YUNGBLUD","artist_mbid":"97529a9e-4b5a-4a9c-9c08-c42401d1c268","join_phrase":" & "},{"artist_credit_name":"Bert McCracken","artist_mbid":"10a048d2-9afd-42d9-912e-0eb36c724f70","join_phrase":""}],"caa_id":27494670999,"caa_release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","listen_count":202,"recording_mbid":"25dfdccf-5092-4805-af42-f20146c8d18f","release_mbid":"9391a013-f0ab-4b66-a28f-ec5928c636b8","release_name":"Tickets to My Downfall (SOLD OUT Deluxe)","track_name":"body bag"},{"artist_mbids":["f6af669a-56ea-448a-a044-de76181ada33"],"artist_name":"Machine Gun Kelly","artists":[{"artist_credit_name":"Machine Gun Kelly","artist_mbid":"f6af669a-56ea-448a-a044-de76181ada33","join_phrase":""}],"caa_id":30564814068,"caa_release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","listen_count":196,"recording_mbid":"ddabeccd-b0e5-406e-aa1a-d4fdfa29f99e","release_mbid":"98b5a059-c8ac-490a-ba0c-b9ae9f932daa","release_name":"Tickets to My Downfall","track_name":"kiss kiss"}],"to_ts":1723248018,"total_recording_count":2243,"user_id":"akshaaatt"}} +{"payload":{"count":25,"from_ts":1009843200,"last_updated":1723271769,"offset":0,"range":"all_time","recordings":[{"artist_mbids":[],"artist_name":"Ekam Sudhar, Manni Sandhu, Rav Hanjra","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":127,"recording_mbid":null,"release_mbid":null,"release_name":"Small Circle","track_name":"Small Circle"},{"artist_mbids":["d0a37e1c-a9c3-4966-b630-984c33b087df"],"artist_name":"Eifi","artists":[{"artist_credit_name":"Eifi","artist_mbid":"d0a37e1c-a9c3-4966-b630-984c33b087df","join_phrase":""}],"caa_id":35241947664,"caa_release_mbid":"1dd36e0a-16e8-4486-b062-00891253abb0","listen_count":103,"recording_mbid":"5279bc04-6b83-4897-814d-4f604fedd79c","release_mbid":"1dd36e0a-16e8-4486-b062-00891253abb0","release_name":"Old School Vibe","track_name":"Old School Vibe"},{"artist_mbids":["8837b875-3689-4646-b3fd-d8b53815c7a8"],"artist_name":"Lil Uzi Vert","artists":[{"artist_credit_name":"Lil Uzi Vert","artist_mbid":"8837b875-3689-4646-b3fd-d8b53815c7a8","join_phrase":""}],"caa_id":35008042732,"caa_release_mbid":"de152c73-f234-4456-a032-cac36b5c006d","listen_count":99,"recording_mbid":"296c6296-570c-471b-ace2-bd1d0f6bc3f6","release_mbid":"de152c73-f234-4456-a032-cac36b5c006d","release_name":"Watch This (ARIZONATEARS pluggnb remix)","track_name":"Watch This (ARIZONATEARS pluggnb remix)"},{"artist_mbids":[],"artist_name":"Amantej Hundal","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":74,"recording_mbid":null,"release_mbid":null,"release_name":"Underrated","track_name":"Still Standing"},{"artist_mbids":["9537e089-79dd-43d7-9cf3-f6d51f6864fc"],"artist_name":"The Landers","artists":[{"artist_credit_name":"The Landers","artist_mbid":"9537e089-79dd-43d7-9cf3-f6d51f6864fc","join_phrase":""}],"caa_id":32015349705,"caa_release_mbid":"c7f3577a-8e75-4fc7-9498-1010054af117","listen_count":63,"recording_mbid":"0f0ed9f3-6960-4b8d-b8bf-ae7d52ec4385","release_mbid":"c7f3577a-8e75-4fc7-9498-1010054af117","release_name":"Gustakhiyan","track_name":"Gustakhiyan"},{"artist_mbids":["63aa26c3-d59b-4da4-84ac-716b54f1ef4d"],"artist_name":"Tame Impala","artists":[{"artist_credit_name":"Tame Impala","artist_mbid":"63aa26c3-d59b-4da4-84ac-716b54f1ef4d","join_phrase":""}],"caa_id":25489083340,"caa_release_mbid":"b9410b9a-cb64-41ac-b863-fa95f8eb51ea","listen_count":50,"recording_mbid":"f078699c-9b68-4040-9ba4-b1e4f7d86598","release_mbid":"b9410b9a-cb64-41ac-b863-fa95f8eb51ea","release_name":"Currents","track_name":"New Person, Same Old Mistakes"},{"artist_mbids":["381086ea-f511-4aba-bdf9-71c753dc5077","9880800a-f6f8-4f8f-a00e-b4b664776c0c"],"artist_name":"Kendrick Lamar featuring Jay Rock","artists":[{"artist_credit_name":"Kendrick Lamar","artist_mbid":"381086ea-f511-4aba-bdf9-71c753dc5077","join_phrase":" featuring "},{"artist_credit_name":"Jay Rock","artist_mbid":"9880800a-f6f8-4f8f-a00e-b4b664776c0c","join_phrase":""}],"caa_id":2361576294,"caa_release_mbid":"e1d99364-1ad9-4f4d-9505-2242eff10a44","listen_count":50,"recording_mbid":"c294757b-0430-4eb4-ae7a-6abcffb87405","release_mbid":"e1d99364-1ad9-4f4d-9505-2242eff10a44","release_name":"good kid, m.A.A.d city","track_name":"Money Trees"},{"artist_mbids":[],"artist_name":"R Nait","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":47,"recording_mbid":null,"release_mbid":null,"release_name":"Toy","track_name":"Toy"},{"artist_mbids":["4a779683-5404-4b90-a0d7-242495158265"],"artist_name":"Karan Aujla","artists":[{"artist_credit_name":"Karan Aujla","artist_mbid":"4a779683-5404-4b90-a0d7-242495158265","join_phrase":""}],"caa_id":32050224646,"caa_release_mbid":"bdd4aa78-9caf-40e4-a698-6639f96571eb","listen_count":47,"recording_mbid":"4fd3a889-6d06-47c5-99c2-756783f3d34e","release_mbid":"bdd4aa78-9caf-40e4-a698-6639f96571eb","release_name":"B.T.F.U","track_name":"Addi Sunni"},{"artist_mbids":[],"artist_name":"Arjan Dhillon","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":45,"recording_mbid":null,"release_mbid":null,"release_name":"Night Out","track_name":"Night Out"},{"artist_mbids":[],"artist_name":"Arjan Dhillon","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":43,"recording_mbid":null,"release_mbid":null,"release_name":"Kise Naal Ni Bolda","track_name":"Kise Naal Ni Bolda"},{"artist_mbids":["9b34cd6a-b874-4e75-bec8-1c174fe295d0"],"artist_name":"Arjan Dhillon","artists":[{"artist_credit_name":"Arjan Dhillon","artist_mbid":"9b34cd6a-b874-4e75-bec8-1c174fe295d0","join_phrase":""}],"caa_id":31811400978,"caa_release_mbid":"d8c0026f-e10c-494d-b66c-2085062b8c2e","listen_count":43,"recording_mbid":"8ff7f33a-d307-4f6f-ab7e-ddfd853a9ee8","release_mbid":"d8c0026f-e10c-494d-b66c-2085062b8c2e","release_name":"Awara","track_name":"Dope"},{"artist_mbids":["610d38e7-f5b5-4ec8-b10d-17387ee11bdd","878391e2-c5e7-4b51-bbc1-236326fa810c"],"artist_name":"Amrit Maan & The PropheC","artists":[{"artist_credit_name":"Amrit Maan","artist_mbid":"610d38e7-f5b5-4ec8-b10d-17387ee11bdd","join_phrase":" & "},{"artist_credit_name":"The PropheC","artist_mbid":"878391e2-c5e7-4b51-bbc1-236326fa810c","join_phrase":""}],"caa_id":33469880728,"caa_release_mbid":"eb0701cd-5d83-4c23-ab7c-df4cc9dbb639","listen_count":40,"recording_mbid":"440111a5-c53e-4263-9921-8c96fe92a035","release_mbid":"eb0701cd-5d83-4c23-ab7c-df4cc9dbb639","release_name":"My Moon","track_name":"My Moon"},{"artist_mbids":["092552b9-ea6d-4ead-b424-cf8b07da5877"],"artist_name":"Tegi Pannu","artists":[{"artist_credit_name":"Tegi Pannu","artist_mbid":"092552b9-ea6d-4ead-b424-cf8b07da5877","join_phrase":""}],"caa_id":34147069927,"caa_release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","listen_count":38,"recording_mbid":"f0fd8820-2d6e-4c70-a9a0-79187d55c79a","release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","release_name":"Disturbing The Peace","track_name":"Mood Swings"},{"artist_mbids":["9e975e9b-7538-4acd-ba91-8e5fd5df6b6e"],"artist_name":"Kid Bloom","artists":[{"artist_credit_name":"Kid Bloom","artist_mbid":"9e975e9b-7538-4acd-ba91-8e5fd5df6b6e","join_phrase":""}],"caa_id":null,"caa_release_mbid":null,"listen_count":36,"recording_mbid":"224a60b4-a861-4862-8a00-eb33c15267f2","release_mbid":"75169a25-004e-40f5-aaa7-78d2de09eb28","release_name":"Electric U -Single","track_name":"Electric U"},{"artist_mbids":["7e1cf02b-cf78-4803-b496-930c38649223"],"artist_name":"Jassa Dhillon","artists":[{"artist_credit_name":"Jassa Dhillon","artist_mbid":"7e1cf02b-cf78-4803-b496-930c38649223","join_phrase":""}],"caa_id":31988019523,"caa_release_mbid":"101876a6-8e7d-4512-97d5-a0ff08f22f53","listen_count":35,"recording_mbid":"8d3e9d59-78b8-4d25-8a2b-79290aa398fc","release_mbid":"101876a6-8e7d-4512-97d5-a0ff08f22f53","release_name":"Love War","track_name":"Shadow"},{"artist_mbids":["bce6d667-cde8-485e-b078-c0a05adea36d"],"artist_name":"ScHoolboy Q","artists":[{"artist_credit_name":"ScHoolboy Q","artist_mbid":"bce6d667-cde8-485e-b078-c0a05adea36d","join_phrase":""}],"caa_id":32363103828,"caa_release_mbid":"9fc29035-a4c5-4e7c-b984-a52e9aa63ad8","listen_count":34,"recording_mbid":"e5645698-84ef-4312-9a75-ad2fd981a1d8","release_mbid":"9fc29035-a4c5-4e7c-b984-a52e9aa63ad8","release_name":"CrasH Talk","track_name":"CrasH"},{"artist_mbids":[],"artist_name":"NIJJAR","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":34,"recording_mbid":null,"release_mbid":null,"release_name":"Chobbar","track_name":"Chobbar"},{"artist_mbids":["092552b9-ea6d-4ead-b424-cf8b07da5877","81035abf-09f7-4cbe-a785-4510dbd7970c"],"artist_name":"Tegi Pannu & JJ Esko","artists":[{"artist_credit_name":"Tegi Pannu","artist_mbid":"092552b9-ea6d-4ead-b424-cf8b07da5877","join_phrase":" & "},{"artist_credit_name":"JJ Esko","artist_mbid":"81035abf-09f7-4cbe-a785-4510dbd7970c","join_phrase":""}],"caa_id":34147069927,"caa_release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","listen_count":33,"recording_mbid":"650aa31f-cf18-4239-ac59-9cb9cca92d4d","release_mbid":"75e7ef49-6a09-4856-987b-0cbefa1ba9ea","release_name":"Disturbing The Peace","track_name":"Hold You Down"},{"artist_mbids":["2338cede-17d7-40ef-9ea1-a16416908eeb"],"artist_name":"Sports","artists":[{"artist_credit_name":"Sports","artist_mbid":"2338cede-17d7-40ef-9ea1-a16416908eeb","join_phrase":""}],"caa_id":16665200572,"caa_release_mbid":"afea971b-c6ed-4ff8-9552-b47b8569c751","listen_count":32,"recording_mbid":"537f2df8-d1a6-4e22-9a6a-18393cdbb988","release_mbid":"afea971b-c6ed-4ff8-9552-b47b8569c751","release_name":"Naked All The Time","track_name":"You Are The Right One"},{"artist_mbids":["4a779683-5404-4b90-a0d7-242495158265","3ea12c3c-8596-4d70-b327-208b0a459a97"],"artist_name":"Karan Aujla, Ikky","artists":[{"artist_credit_name":"Karan Aujla","artist_mbid":"4a779683-5404-4b90-a0d7-242495158265","join_phrase":", "},{"artist_credit_name":"Ikky","artist_mbid":"3ea12c3c-8596-4d70-b327-208b0a459a97","join_phrase":""}],"caa_id":34792503592,"caa_release_mbid":"1390f1b7-7851-48ae-983d-eb8a48f78048","listen_count":31,"recording_mbid":"34c208ee-2de7-4d38-b47e-907074866dd3","release_mbid":"1390f1b7-7851-48ae-983d-eb8a48f78048","release_name":"Four You","track_name":"52 Bars"},{"artist_mbids":["9f3225ad-e686-4538-8cbe-99406c4a4caa"],"artist_name":"Aaron May","artists":[{"artist_credit_name":"Aaron May","artist_mbid":"9f3225ad-e686-4538-8cbe-99406c4a4caa","join_phrase":""}],"caa_id":22549299616,"caa_release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","listen_count":29,"recording_mbid":"2f14ac58-d62d-4e45-a5e1-6504d1366831","release_mbid":"ff0e48f3-83f6-4923-b5fa-a3c39f484da4","release_name":"Chase","track_name":"I'm Good Luv, Enjoy."},{"artist_mbids":["ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"],"artist_name":"Arctic Monkeys","artists":[{"artist_credit_name":"Arctic Monkeys","artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","join_phrase":""}],"caa_id":32131848311,"caa_release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","listen_count":27,"recording_mbid":"adadc047-e040-45d5-b020-0603db0d69dc","release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5","release_name":"AM","track_name":"Snap Out of It"},{"artist_mbids":[],"artist_name":"Seren","artists":null,"caa_id":null,"caa_release_mbid":null,"listen_count":26,"recording_mbid":null,"release_mbid":null,"release_name":null,"track_name":"Travis Scott - My Eyes (Best Part Extended)"},{"artist_mbids":["39d82be4-4dd4-4bda-b485-fc84c7c72938","fc63d806-ca89-4ea3-a404-ee6de695743f"],"artist_name":"Trix & Flix feat. Shaggy","artists":[{"artist_credit_name":"Trix & Flix","artist_mbid":"39d82be4-4dd4-4bda-b485-fc84c7c72938","join_phrase":" feat. "},{"artist_credit_name":"Shaggy","artist_mbid":"fc63d806-ca89-4ea3-a404-ee6de695743f","join_phrase":""}],"caa_id":38114265515,"caa_release_mbid":"0a6443f6-5f09-45db-a1cf-eae3991eeb27","listen_count":25,"recording_mbid":"e7098517-c096-4c36-968f-f014549baddd","release_mbid":"912ca54e-76a6-4c61-8746-62ef479a7a63","release_name":"Intoxication","track_name":"Like a Superstar (radio edit)"}],"to_ts":1723248018,"total_recording_count":884,"user_id":"Jasjeet"}} From 21a69405c179b0a1c7c8cba4c37d3a13a46737de Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:21:02 +0530 Subject: [PATCH 04/10] Adds user view model unit tests --- .../ui/screens/profile/BaseProfileScreen.kt | 8 +- .../ui/screens/profile/ProfileScreen.kt | 4 +- .../screens/profile/listens/ListensScreen.kt | 10 +-- .../ui/screens/profile/stats/StatsScreen.kt | 4 +- .../ui/screens/profile/taste/TasteScreen.kt | 4 +- .../{ProfileViewModel.kt => UserViewModel.kt} | 44 +---------- .../android/user/UserViewModelTest.kt | 49 ++++++++++++ .../sharedtest/mocks/MockListensRepository.kt | 54 +++++++++++++ .../sharedtest/mocks/MockSocialRepository.kt | 79 +++++++++++++++++++ .../testdata/ListensRepositoryTestData.kt | 10 +++ .../sharedtest/utils/ResourceString.kt | 4 + sharedTest/src/main/resources/listens.json | 1 + 12 files changed, 213 insertions(+), 58 deletions(-) rename app/src/main/java/org/listenbrainz/android/viewmodel/{ProfileViewModel.kt => UserViewModel.kt} (93%) create mode 100644 app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockListensRepository.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocialRepository.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/ListensRepositoryTestData.kt create mode 100644 sharedTest/src/main/resources/listens.json diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt index 3de228aa..887903a8 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt @@ -55,13 +55,13 @@ import org.listenbrainz.android.ui.theme.lb_orange import org.listenbrainz.android.ui.theme.lb_purple import org.listenbrainz.android.ui.theme.new_app_bg_light import org.listenbrainz.android.util.Constants -import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun BaseProfileScreen( username: String?, snackbarState: SnackbarHostState, - viewModel: ProfileViewModel = hiltViewModel(), + viewModel: UserViewModel = hiltViewModel(), uiState: ProfileUiState, onFollowClick: (String) -> Unit, onUnfollowClick: (String) -> Unit, @@ -201,7 +201,7 @@ fun BaseProfileScreen( when(currentTab.value) { ProfileScreenTab.LISTENS -> ListensScreen( scrollRequestState = false, - profileViewModel = viewModel, + userViewModel = viewModel, onScrollToTop = {}, snackbarState = snackbarState, username = username @@ -215,7 +215,7 @@ fun BaseProfileScreen( ) else -> ListensScreen( scrollRequestState = false, - profileViewModel = viewModel, + userViewModel = viewModel, onScrollToTop = {}, snackbarState = snackbarState, username = username, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/ProfileScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/ProfileScreen.kt index d0515be7..12b885b7 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/ProfileScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/ProfileScreen.kt @@ -37,12 +37,12 @@ import com.airbnb.lottie.compose.LottieConstants import com.airbnb.lottie.compose.rememberLottieComposition import org.listenbrainz.android.R import org.listenbrainz.android.util.Constants.Strings.STATUS_LOGGED_IN -import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun ProfileScreen( context: Context = LocalContext.current, - viewModel: ProfileViewModel = hiltViewModel(), + viewModel: UserViewModel = hiltViewModel(), scrollRequestState: Boolean, onScrollToTop: (suspend () -> Unit) -> Unit, username: String?, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt index 1c1278f0..c730ee5e 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt @@ -83,13 +83,13 @@ import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel import org.listenbrainz.android.viewmodel.ListensViewModel -import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel @Composable fun ListensScreen( viewModel: ListensViewModel = hiltViewModel(), - profileViewModel: ProfileViewModel, + userViewModel: UserViewModel, socialViewModel: SocialViewModel = hiltViewModel(), feedViewModel : FeedViewModel = hiltViewModel(), scrollRequestState: Boolean, @@ -98,7 +98,7 @@ fun ListensScreen( username: String?, ) { - val uiState by profileViewModel.uiState.collectAsState() + val uiState by userViewModel.uiState.collectAsState() val preferencesUiState by viewModel.preferencesUiState.collectAsState() val socialUiState by socialViewModel.uiState.collectAsState() val feedUiState by feedViewModel.uiState.collectAsState() @@ -158,10 +158,10 @@ fun ListensScreen( it, status -> if(!username.isNullOrEmpty()) { if(!status){ - profileViewModel.followUser(it) + userViewModel.followUser(it) } else{ - profileViewModel.unfollowUser(it) + userViewModel.unfollowUser(it) } } } diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt index 65e39447..fd31dae6 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt @@ -82,13 +82,13 @@ import org.listenbrainz.android.ui.theme.app_bg_secondary_dark import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel -import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel @Composable fun StatsScreen( username: String?, - viewModel: ProfileViewModel = hiltViewModel(), + viewModel: UserViewModel = hiltViewModel(), socialViewModel: SocialViewModel = hiltViewModel(), feedViewModel : FeedViewModel = hiltViewModel(), snackbarState : SnackbarHostState, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt index 45617c08..75e215b6 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt @@ -61,12 +61,12 @@ import org.listenbrainz.android.ui.theme.ListenBrainzTheme import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel -import org.listenbrainz.android.viewmodel.ProfileViewModel +import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel @Composable fun TasteScreen( - viewModel: ProfileViewModel = hiltViewModel(), + viewModel: UserViewModel = hiltViewModel(), socialViewModel: SocialViewModel = hiltViewModel(), feedViewModel : FeedViewModel = hiltViewModel(), snackbarState : SnackbarHostState, diff --git a/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt b/app/src/main/java/org/listenbrainz/android/viewmodel/UserViewModel.kt similarity index 93% rename from app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt rename to app/src/main/java/org/listenbrainz/android/viewmodel/UserViewModel.kt index f7509344..85f0f8df 100644 --- a/app/src/main/java/org/listenbrainz/android/viewmodel/ProfileViewModel.kt +++ b/app/src/main/java/org/listenbrainz/android/viewmodel/UserViewModel.kt @@ -29,7 +29,7 @@ import org.listenbrainz.android.util.Constants.Strings.STATUS_LOGGED_OUT import javax.inject.Inject @HiltViewModel -class ProfileViewModel @Inject constructor( +class UserViewModel @Inject constructor( val appPreferences: AppPreferences, private val userRepository: UserRepository, private val listensRepository: ListensRepository, @@ -152,48 +152,6 @@ class ProfileViewModel @Inject constructor( listenStateFlow.emit(listensTabState) } - private fun extractDayAndMonth(timeRange: String): Pair { - val monthOrder = mapOf( - "January" to 1, - "February" to 2, - "March" to 3, - "April" to 4, - "May" to 5, - "June" to 6, - "July" to 7, - "August" to 8, - "September" to 9, - "October" to 10, - "November" to 11, - "December" to 12 - ) - val parts = timeRange.split(" ") - val month = parts[1] - val day = parts[0].toIntOrNull() ?: 0 - return Pair(day, monthOrder[month] ?: 0) - } - - private fun extractMonthAndYear(timeRange: String): Pair { - val monthOrder = mapOf( - "January" to 1, - "February" to 2, - "March" to 3, - "April" to 4, - "May" to 5, - "June" to 6, - "July" to 7, - "August" to 8, - "September" to 9, - "October" to 10, - "November" to 11, - "December" to 12 - ) - val parts = timeRange.split(" ") - val month = parts[0] - val year = parts[1].toIntOrNull() ?: 0 - return Pair(monthOrder[month] ?: 0, year) - } - private suspend fun getUserStatsData(inputUsername: String?) { val userThisWeekListeningActivity = userRepository.getUserListeningActivity(inputUsername, StatsRange.THIS_WEEK.apiIdenfier).data?.payload?.listeningActivity ?: listOf() val userThisMonthListeningActivity = userRepository.getUserListeningActivity(inputUsername, StatsRange.THIS_MONTH.apiIdenfier).data?.payload?.listeningActivity ?: listOf() diff --git a/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt b/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt new file mode 100644 index 00000000..9887d277 --- /dev/null +++ b/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt @@ -0,0 +1,49 @@ +package org.listenbrainz.android.user + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.advanceUntilIdle +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Before +import org.junit.Test +import org.listenbrainz.android.ui.screens.profile.stats.StatsRange +import org.listenbrainz.android.ui.screens.profile.stats.UserGlobal +import org.listenbrainz.android.viewmodel.UserViewModel +import org.listenbrainz.sharedtest.mocks.MockAppPreferences +import org.listenbrainz.sharedtest.mocks.MockListensRepository +import org.listenbrainz.sharedtest.mocks.MockSocialRepository +import org.listenbrainz.sharedtest.mocks.MockUserRepository +import org.listenbrainz.sharedtest.utils.EntityTestUtils.testUsername + +class UserViewModelTest { + private lateinit var viewModel: UserViewModel + @OptIn(ExperimentalCoroutinesApi::class) + @Before + fun setup(){ + Dispatchers.setMain(StandardTestDispatcher()) + viewModel = UserViewModel(MockAppPreferences(), MockUserRepository(), MockListensRepository(), MockSocialRepository(), Dispatchers.Default) + } + + @OptIn(ExperimentalCoroutinesApi::class) + @Test + fun getDataTest() = runTest { + viewModel.getUserDataFromRemote(testUsername) + // Ensure all coroutines and tasks are completed + advanceUntilIdle() + assertNotNull(viewModel.uiState.value.statsTabUIState) + assertNotNull(viewModel.uiState.value.tasteTabUIState) + assertNotNull(viewModel.uiState.value.listensTabUiState) + assertEquals(true, viewModel.uiState.value.isSelf) + assertEquals(3, viewModel.uiState.value.listensTabUiState.similarUsers?.size) + assertEquals(3252, viewModel.uiState.value.listensTabUiState.listenCount) + assertEquals("jivteshs20", viewModel.uiState.value.listensTabUiState.followers?.get(0)?.first) + assertEquals("6b08f3d4-0d56-406c-b628-d0afe2ad5d44", viewModel.uiState.value.tasteTabUIState.lovedSongs?.feedback?.get(0)?.recordingMBID) + assertEquals(23,viewModel.uiState.value.statsTabUIState.userListeningActivity.get(Pair(UserGlobal.USER, StatsRange.ALL_TIME))?.size) + } + + +} diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockListensRepository.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockListensRepository.kt new file mode 100644 index 00000000..4cfd4a84 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockListensRepository.kt @@ -0,0 +1,54 @@ +package org.listenbrainz.sharedtest.mocks + +import android.graphics.drawable.Drawable +import org.listenbrainz.android.model.CoverArt +import org.listenbrainz.android.model.ListenBrainzExternalServices +import org.listenbrainz.android.model.ListenSubmitBody +import org.listenbrainz.android.model.Listens +import org.listenbrainz.android.model.PostResponse +import org.listenbrainz.android.model.ResponseError +import org.listenbrainz.android.model.TokenValidation +import org.listenbrainz.android.repository.listens.ListensRepository +import org.listenbrainz.android.util.Resource +import org.listenbrainz.sharedtest.testdata.ListensRepositoryTestData.listensTestData + +class MockListensRepository : ListensRepository { + override suspend fun fetchUserListens(username: String?): Resource { + return if(username.isNullOrEmpty()){ + ResponseError.DOES_NOT_EXIST.asResource() + } else{ + Resource(Resource.Status.SUCCESS, listensTestData) + } + } + + override suspend fun fetchCoverArt(mbid: String): Resource { + TODO("Not yet implemented") + } + + override suspend fun validateToken(token: String): Resource { + TODO("Not yet implemented") + } + + override fun getPackageIcon(packageName: String): Drawable? { + TODO("Not yet implemented") + } + + override fun getPackageLabel(packageName: String): String { + TODO("Not yet implemented") + } + + override suspend fun submitListen( + token: String, + body: ListenSubmitBody + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun getLinkedServices( + token: String?, + username: String? + ): Resource { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocialRepository.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocialRepository.kt new file mode 100644 index 00000000..a6e4f513 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocialRepository.kt @@ -0,0 +1,79 @@ +package org.listenbrainz.sharedtest.mocks + +import org.listenbrainz.android.model.PinData +import org.listenbrainz.android.model.RecommendationData +import org.listenbrainz.android.model.ResponseError +import org.listenbrainz.android.model.Review +import org.listenbrainz.android.model.SearchResult +import org.listenbrainz.android.model.SimilarUserData +import org.listenbrainz.android.model.SocialData +import org.listenbrainz.android.model.SocialResponse +import org.listenbrainz.android.model.feed.FeedEvent +import org.listenbrainz.android.repository.social.SocialRepository +import org.listenbrainz.android.util.Resource +import org.listenbrainz.sharedtest.testdata.SocialRepositoryTestData.testFollowersSuccessData +import org.listenbrainz.sharedtest.testdata.SocialRepositoryTestData.testFollowingSuccessData +import org.listenbrainz.sharedtest.testdata.SocialRepositoryTestData.testSimilarUserSuccessData + +class MockSocialRepository : SocialRepository { + override suspend fun getFollowers(username: String?): Resource { + return if(username.isNullOrEmpty()){ + ResponseError.DOES_NOT_EXIST.asResource() + } + else{ + Resource(Resource.Status.SUCCESS, testFollowersSuccessData) + } + } + + override suspend fun getFollowing(username: String): Resource { + return Resource(Resource.Status.SUCCESS, testFollowingSuccessData) + } + + override suspend fun followUser(username: String): Resource { + TODO("Not yet implemented") + } + + override suspend fun unfollowUser(username: String): Resource { + TODO("Not yet implemented") + } + + override suspend fun getSimilarUsers(username: String): Resource { + return Resource(Resource.Status.SUCCESS, testSimilarUserSuccessData) + } + + override suspend fun searchUser(username: String): Resource { + TODO("Not yet implemented") + } + + override suspend fun postPersonalRecommendation( + username: String?, + data: RecommendationData + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun postRecommendationToAll( + username: String?, + data: RecommendationData + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun postReview(username: String?, data: Review): Resource { + TODO("Not yet implemented") + } + + override suspend fun pin( + recordingMsid: String?, + recordingMbid: String?, + blurbContent: String?, + pinnedUntil: Int + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun deletePin(id: Int): Resource { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/ListensRepositoryTestData.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/ListensRepositoryTestData.kt new file mode 100644 index 00000000..62e94f04 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/testdata/ListensRepositoryTestData.kt @@ -0,0 +1,10 @@ +package org.listenbrainz.sharedtest.testdata + +import com.google.gson.Gson +import org.listenbrainz.android.model.Listens +import org.listenbrainz.sharedtest.utils.ResourceString.listens + +object ListensRepositoryTestData { + val listensTestData : Listens + get() = Gson().fromJson(listens, Listens::class.java) +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt index f089956a..d404c300 100644 --- a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt @@ -118,6 +118,10 @@ object ResourceString { val listenCount by lazy { EntityTestUtils.loadResourceAsString("listen_count.json") } + + val listens by lazy { + EntityTestUtils.loadResourceAsString("listens.json") + } fun String.toClass(): T { return Gson().fromJson(this, object: TypeToken() {}.type) diff --git a/sharedTest/src/main/resources/listens.json b/sharedTest/src/main/resources/listens.json new file mode 100644 index 00000000..1369dbe3 --- /dev/null +++ b/sharedTest/src/main/resources/listens.json @@ -0,0 +1 @@ +{"payload":{"count":25,"latest_listen_ts":1723267385,"listens":[{"inserted_at":1723267446,"listened_at":1723267385,"recording_msid":"e3e2b4ef-eac8-46c3-89f9-85ce31c82404","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"e3e2b4ef-eac8-46c3-89f9-85ce31c82404","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Apurva","track_name":"RPReplay_Final1723230584"},"user_name":"Jasjeet"},{"inserted_at":1723144630,"listened_at":1723144571,"recording_msid":"0d3baf58-8315-4836-9ad3-2fc31821668b","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"0d3baf58-8315-4836-9ad3-2fc31821668b","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"RPReplay_Final1723141917"},"user_name":"Jasjeet"},{"inserted_at":1722833349,"listened_at":1722833327,"recording_msid":"9b10be53-16cc-4aa7-9c18-2a09bad819fc","track_metadata":{"additional_info":{"duration_ms":32966,"media_player":"Slack","recording_msid":"9b10be53-16cc-4aa7-9c18-2a09bad819fc","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"RPReplay_Final1722682110"},"user_name":"Jasjeet"},{"inserted_at":1722693745,"listened_at":1722693685,"recording_msid":"21a2a5d7-4a29-4361-8d1b-728b93aea251","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"21a2a5d7-4a29-4361-8d1b-728b93aea251","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"screen-20240803-185944.mp4"},"user_name":"Jasjeet"},{"inserted_at":1722318031,"listened_at":1722318030,"recording_msid":"d7f2d8c6-6818-4d9a-b10e-22e5787ae661","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"d7f2d8c6-6818-4d9a-b10e-22e5787ae661","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Lost Frequencies & Calum Scott","mbid_mapping":{"artist_mbids":["ea7260de-e1b1-43f1-bb11-f78274a36308","68fdc9cc-1094-48bb-942f-66492343e41c"],"artists":[{"artist_credit_name":"Lost Frequencies","artist_mbid":"ea7260de-e1b1-43f1-bb11-f78274a36308","join_phrase":" & "},{"artist_credit_name":"Calum Scott","artist_mbid":"68fdc9cc-1094-48bb-942f-66492343e41c","join_phrase":""}],"caa_id":38775931183,"caa_release_mbid":"cb090bf6-ade9-4c6a-81b8-91d04dedc866","recording_mbid":"fa2605de-3e06-4038-9337-daec9ca302e5","recording_name":"Where Are You Now","release_mbid":"3d6b4d5b-ecd2-4baa-a2a5-7b0e735da202"},"track_name":"Where Are You Now"},"user_name":"Jasjeet"},{"inserted_at":1722095358,"listened_at":1722095295,"recording_msid":"a04fa8dd-776f-4e90-a4d4-4595cad7eeeb","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"a04fa8dd-776f-4e90-a4d4-4595cad7eeeb","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Jass","track_name":"RPReplay_Final1722095096"},"user_name":"Jasjeet"},{"inserted_at":1721920480,"listened_at":1721920420,"recording_msid":"097728c0-7a48-4073-acbe-899f4d3c5b6b","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"097728c0-7a48-4073-acbe-899f4d3c5b6b","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Jass","track_name":"RPReplay_Final1721916666"},"user_name":"Jasjeet"},{"inserted_at":1721800380,"listened_at":1721800382,"recording_msid":"2950fbc6-0b2c-4549-a65c-dc418bb5656e","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"2950fbc6-0b2c-4549-a65c-dc418bb5656e","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Portugal. The Man","mbid_mapping":{"artist_mbids":["3599a39e-4e10-4cb5-90d4-c8a015ebc73b"],"artists":[{"artist_credit_name":"Portugal. The Man","artist_mbid":"3599a39e-4e10-4cb5-90d4-c8a015ebc73b","join_phrase":""}],"caa_id":37576308867,"caa_release_mbid":"3ba8912d-46c5-4c66-bc5e-e33c84ecd118","recording_mbid":"ded77223-a7a3-4a91-a8e6-4cbdf8c84865","recording_name":"People Say","release_mbid":"3ba8912d-46c5-4c66-bc5e-e33c84ecd118"},"release_name":"Social Cues","track_name":"People Say"},"user_name":"Jasjeet"},{"inserted_at":1721795579,"listened_at":1721795520,"recording_msid":"6c694af0-a6cd-4a8f-869e-a15743e0f556","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"6c694af0-a6cd-4a8f-869e-a15743e0f556","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"Record_2024-07-24-06-41-35_ca37809c94ede43fb59780785174bf2c.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721714031,"listened_at":1721714031,"recording_msid":"ab6b34bb-c28c-46ae-b596-b5f99734e485","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"ab6b34bb-c28c-46ae-b596-b5f99734e485","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Jack \u00dc","mbid_mapping":{"artist_mbids":["8a40cfa4-e190-4133-a9af-e668c7d5f6f3","42c8f9b1-60b5-4b0e-9036-f9a9596695c1"],"artists":[{"artist_credit_name":"Jack \u00dc","artist_mbid":"8a40cfa4-e190-4133-a9af-e668c7d5f6f3","join_phrase":" feat. "},{"artist_credit_name":"Kai","artist_mbid":"42c8f9b1-60b5-4b0e-9036-f9a9596695c1","join_phrase":""}],"caa_id":12067718557,"caa_release_mbid":"e0ceba78-8ecb-46c4-bfd4-c100a5ba888c","recording_mbid":"27795d1e-c9bf-4036-bb1a-11d3e696e16a","recording_name":"Mind","release_mbid":"6844eac2-4772-42ea-8946-06cf049dab2b"},"track_name":"Mind (feat. Alessia De Gasperis)"},"user_name":"Jasjeet"},{"inserted_at":1721713836,"listened_at":1721713835,"recording_msid":"0a1dc120-36d5-4302-9624-9d31ee99f37f","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"0a1dc120-36d5-4302-9624-9d31ee99f37f","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"THYPONYX","track_name":"THYPONYX - Seven Nation Army"},"user_name":"Jasjeet"},{"inserted_at":1721664791,"listened_at":1721664731,"recording_msid":"711109c7-7d4c-4d7d-93cd-7c3077366e68","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"711109c7-7d4c-4d7d-93cd-7c3077366e68","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Ayesha Pradhan","track_name":"Screen_Recording_20240721_121100_Ultrahuman.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721664236,"listened_at":1721664176,"recording_msid":"711109c7-7d4c-4d7d-93cd-7c3077366e68","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"711109c7-7d4c-4d7d-93cd-7c3077366e68","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Ayesha Pradhan","track_name":"Screen_Recording_20240721_121100_Ultrahuman.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721626987,"listened_at":1721626986,"recording_msid":"146bb92a-d34c-4187-b2e9-29bb3179d1e1","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"146bb92a-d34c-4187-b2e9-29bb3179d1e1","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Charlie Puth","mbid_mapping":{"artist_mbids":["525f1f1c-03f0-4bc8-8dfd-e7521f87631b"],"artists":[{"artist_credit_name":"Charlie Puth","artist_mbid":"525f1f1c-03f0-4bc8-8dfd-e7521f87631b","join_phrase":""}],"caa_id":19827744116,"caa_release_mbid":"3b8ce7ae-ff41-4dc6-a694-2e2b2edc24ae","recording_mbid":"19b6d048-f981-40e9-8235-a5acf969e5df","recording_name":"Attention","release_mbid":"8004db5a-0947-4745-b391-3bcc6960411d"},"track_name":"Attention"},"user_name":"Jasjeet"},{"inserted_at":1721626693,"listened_at":1721626691,"recording_msid":"0f837ca8-4610-4306-b36c-c95d17661e55","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"0f837ca8-4610-4306-b36c-c95d17661e55","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Sean Paul","mbid_mapping":{"artist_mbids":["c3da3346-2643-48a7-93cd-011f6834b3d7","6f1a58bf-9b1b-49cf-a44a-6cefad7ae04f"],"artists":[{"artist_credit_name":"Sean Paul","artist_mbid":"c3da3346-2643-48a7-93cd-011f6834b3d7","join_phrase":" ft. "},{"artist_credit_name":"Dua Lipa","artist_mbid":"6f1a58bf-9b1b-49cf-a44a-6cefad7ae04f","join_phrase":""}],"caa_id":20271298649,"caa_release_mbid":"33eed724-cd55-465a-9f50-b4afe3c7728e","recording_mbid":"7b00dbe9-53ea-41b3-877b-31503eb2fd75","recording_name":"No Lie","release_mbid":"cfdb91a1-693f-41a9-b9fc-f08d650a268e"},"track_name":"No Lie (feat. Dua Lipa)"},"user_name":"Jasjeet"},{"inserted_at":1721626556,"listened_at":1721626420,"recording_msid":"55e9adb0-3ed1-4bf1-b8ab-2a28e451f26f","track_metadata":{"additional_info":{"duration_ms":270442,"media_player":"YouTube Music","recording_msid":"55e9adb0-3ed1-4bf1-b8ab-2a28e451f26f","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Mark Ronson","mbid_mapping":{"artist_mbids":["c3c82bdc-d9e7-4836-9746-c24ead47ca19","afb680f2-b6eb-4cd7-a70b-a63b25c763d5"],"artists":[{"artist_credit_name":"Mark Ronson","artist_mbid":"c3c82bdc-d9e7-4836-9746-c24ead47ca19","join_phrase":" feat. "},{"artist_credit_name":"Bruno Mars","artist_mbid":"afb680f2-b6eb-4cd7-a70b-a63b25c763d5","join_phrase":""}],"caa_id":19394943642,"caa_release_mbid":"0577f225-9866-4fe2-9c23-e52c37186a99","recording_mbid":"38e06968-af06-44ea-9eba-a1a275832767","recording_name":"Uptown Funk","release_mbid":"04ea8e96-ef0e-441c-9594-7128addc3951"},"track_name":"Uptown Funk (Official Video) (feat. Bruno Mars)"},"user_name":"Jasjeet"},{"inserted_at":1721379271,"listened_at":1721379242,"recording_msid":"b28cf8a9-d57c-46aa-90cd-5ae74cd648df","track_metadata":{"additional_info":{"duration_ms":54187,"media_player":"Slack","recording_msid":"b28cf8a9-d57c-46aa-90cd-5ae74cd648df","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Ayush","track_name":"WhatsApp Video 2024-07-18 at 21.45.18.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721369443,"listened_at":1721369442,"recording_msid":"24271df0-b683-4ec8-bf47-9f680cfba289","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"24271df0-b683-4ec8-bf47-9f680cfba289","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Gotye","release_name":"Future Nostalgia","track_name":"Somebody That I Used To Know (feat. Kimbra)"},"user_name":"Jasjeet"},{"inserted_at":1721369215,"listened_at":1721369212,"recording_msid":"0b8287c3-8b99-4635-b4da-6002f20718f8","track_metadata":{"additional_info":{"media_player":"YouTube Music","recording_msid":"0b8287c3-8b99-4635-b4da-6002f20718f8","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Arctic Monkeys","mbid_mapping":{"artist_mbids":["ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"],"artists":[{"artist_credit_name":"Arctic Monkeys","artist_mbid":"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a","join_phrase":""}],"caa_id":11863856066,"caa_release_mbid":"c7858e6b-9232-4c01-a703-35e60d3f7ec3","recording_mbid":"f1e57531-e0df-4b3e-938f-1ae30c5b1a11","recording_name":"Do I Wanna Know?","release_mbid":"55171afe-440e-4c63-947c-e49074f3d5b5"},"track_name":"Do I Wanna Know?"},"user_name":"Jasjeet"},{"inserted_at":1721364931,"listened_at":1721364869,"recording_msid":"8aa61f93-ebeb-46d7-a51b-e46337705757","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"8aa61f93-ebeb-46d7-a51b-e46337705757","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Shivani","track_name":"Screen_Recording_20240719_102206_Ultrahuman.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721364864,"listened_at":1721364825,"recording_msid":"6df1064e-3fb4-4888-8c10-54857a335f1c","track_metadata":{"additional_info":{"duration_ms":74441,"media_player":"Slack","recording_msid":"6df1064e-3fb4-4888-8c10-54857a335f1c","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"screen-20240719-102031.mp4"},"user_name":"Jasjeet"},{"inserted_at":1721236521,"listened_at":1721236461,"recording_msid":"0408a748-656f-44a4-951d-08bbc822212b","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"0408a748-656f-44a4-951d-08bbc822212b","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Malay Pandey","track_name":"668c76196406f6459cdf1b8c-Screen_Recording_20240709_012733_One_UI_Home.mp4"},"user_name":"Jasjeet"},{"inserted_at":1720870225,"listened_at":1720870164,"recording_msid":"81a518a3-9597-40a1-9fa1-a1d4345efc8f","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"81a518a3-9597-40a1-9fa1-a1d4345efc8f","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Trishala","track_name":"5212316802803753137_a8b5aefd-e639-4836-a25a-6dc3746edc27.mov"},"user_name":"Jasjeet"},{"inserted_at":1720861247,"listened_at":1720861187,"recording_msid":"b9b0bbe8-2beb-48de-98ea-9c19b6574ff1","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"b9b0bbe8-2beb-48de-98ea-9c19b6574ff1","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"screen-20240713-142204.mp4"},"user_name":"Jasjeet"},{"inserted_at":1720861179,"listened_at":1720861114,"recording_msid":"b9b0bbe8-2beb-48de-98ea-9c19b6574ff1","track_metadata":{"additional_info":{"media_player":"Slack","recording_msid":"b9b0bbe8-2beb-48de-98ea-9c19b6574ff1","submission_client":"ListenBrainz Android","submission_client_version":"2.6.1"},"artist_name":"Srikanth","track_name":"screen-20240713-142204.mp4"},"user_name":"Jasjeet"}],"oldest_listen_ts":1670056445,"user_id":"jasjeet"}} From 869b1c8e15823a9f200250be99b15257b38e9e12 Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:36:24 +0530 Subject: [PATCH 05/10] Fixes Social Repository Tests --- .../java/org/listenbrainz/android/user/UserRepositoryTest.kt | 4 ++-- .../java/org/listenbrainz/sharedtest/utils/ResourceString.kt | 4 ++++ sharedTest/src/main/resources/similar_user.json | 1 + sharedTest/src/main/resources/similar_users_response.json | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 sharedTest/src/main/resources/similar_user.json diff --git a/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt index f3ca96cd..20c64fae 100644 --- a/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt +++ b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt @@ -25,9 +25,9 @@ import org.listenbrainz.sharedtest.utils.ResourceString.current_pins import org.listenbrainz.sharedtest.utils.ResourceString.globalListeningActivity import org.listenbrainz.sharedtest.utils.ResourceString.listenCount import org.listenbrainz.sharedtest.utils.ResourceString.loved_hated_songs +import org.listenbrainz.sharedtest.utils.ResourceString.similarUser import org.listenbrainz.sharedtest.utils.ResourceString.similarUserError import org.listenbrainz.sharedtest.utils.ResourceString.similarUserErrorString -import org.listenbrainz.sharedtest.utils.ResourceString.similar_users_response import org.listenbrainz.sharedtest.utils.ResourceString.topAlbums import org.listenbrainz.sharedtest.utils.ResourceString.topSongs import org.listenbrainz.sharedtest.utils.ResourceString.top_artists @@ -62,7 +62,7 @@ class UserRepositoryTest { // Similar Users "/user/$testUsername/similar-to/$testSomeOtherUser" -> { MockResponse().setResponseCode(200).setBody( - similar_users_response + similarUser ) } diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt index d404c300..bdac44ee 100644 --- a/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/utils/ResourceString.kt @@ -122,6 +122,10 @@ object ResourceString { val listens by lazy { EntityTestUtils.loadResourceAsString("listens.json") } + + val similarUser by lazy { + EntityTestUtils.loadResourceAsString("similar_user.json") + } fun String.toClass(): T { return Gson().fromJson(this, object: TypeToken() {}.type) diff --git a/sharedTest/src/main/resources/similar_user.json b/sharedTest/src/main/resources/similar_user.json new file mode 100644 index 00000000..2594d566 --- /dev/null +++ b/sharedTest/src/main/resources/similar_user.json @@ -0,0 +1 @@ +{"payload":{"similarity":0.592778543651705,"user_name":"jivteshs20"}} \ No newline at end of file diff --git a/sharedTest/src/main/resources/similar_users_response.json b/sharedTest/src/main/resources/similar_users_response.json index 6d50b409..31e26bc2 100644 --- a/sharedTest/src/main/resources/similar_users_response.json +++ b/sharedTest/src/main/resources/similar_users_response.json @@ -1 +1 @@ -{"payload":{"similarity":0.592778543651705,"user_name":"jivteshs20"}} +{"payload":[{"similarity":0.592778543651705,"user_name":"jivteshs20"},{"similarity":0.2367332837331803,"user_name":"akshaaatt"},{"similarity":0.18639954307331036,"user_name":"lucifer"}]} \ No newline at end of file From cb120e9e089cd79155607100be8798d4dd577555 Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Wed, 14 Aug 2024 19:43:29 +0530 Subject: [PATCH 06/10] Adds Basic UI Test for Listens Tab of User Pages --- .../org/listenbrainz/android/UserPagesTest.kt | 109 ++++++++++++++++++ .../screens/profile/listens/ListensScreen.kt | 5 +- 2 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt diff --git a/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt new file mode 100644 index 00000000..ef7ede0d --- /dev/null +++ b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt @@ -0,0 +1,109 @@ +package org.listenbrainz.android + +import androidx.compose.material3.SnackbarHostState +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performScrollToIndex +import androidx.test.ext.junit.runners.AndroidJUnit4 +import dagger.hilt.android.testing.HiltAndroidRule +import dagger.hilt.android.testing.HiltAndroidTest +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.TestDispatcher +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.listenbrainz.android.model.SocialUiState +import org.listenbrainz.android.ui.screens.feed.FeedUiState +import org.listenbrainz.android.ui.screens.profile.listens.ListensScreen +import org.listenbrainz.android.ui.screens.settings.PreferencesUiState +import org.listenbrainz.android.ui.theme.ListenBrainzTheme +import org.listenbrainz.android.viewmodel.UserViewModel +import org.listenbrainz.sharedtest.mocks.MockAppPreferences +import org.listenbrainz.sharedtest.mocks.MockListensRepository +import org.listenbrainz.sharedtest.mocks.MockSocialRepository +import org.listenbrainz.sharedtest.mocks.MockUserRepository +import org.listenbrainz.sharedtest.utils.EntityTestUtils.testUsername + +@RunWith(AndroidJUnit4::class) +@HiltAndroidTest +class UserPagesTest { + + @get:Rule(order = 0) + var hiltRule = HiltAndroidRule(this) + + @get:Rule(order = 1) + val rule = createComposeRule() + + private lateinit var viewModel: UserViewModel + + @Before + fun setup() { + val testDispatcher: TestDispatcher = StandardTestDispatcher() + viewModel = UserViewModel( + MockAppPreferences(), + MockUserRepository(), + MockListensRepository(), + MockSocialRepository(), + testDispatcher + ) + + rule.setContent { + runBlocking { + viewModel.getUserDataFromRemote(testUsername) + testDispatcher.scheduler.advanceUntilIdle() + } + val uiState by viewModel.uiState.collectAsState() + ListenBrainzTheme { + ListensScreen( + scrollRequestState = false, + onScrollToTop = {}, + username = testUsername, + uiState = uiState, + feedUiState = FeedUiState(), + preferencesUiState = PreferencesUiState(), + updateNotificationServicePermissionStatus = { /*TODO*/ }, + dropdownItemIndex = remember { + mutableStateOf(null) + }, + validateUserToken = {_, -> true}, + setToken = {}, + playListen = {}, + snackbarState = remember { + SnackbarHostState() + }, + socialUiState = SocialUiState(), + onRecommend = {}, + onErrorShown = { /*TODO*/ }, + onMessageShown = { /*TODO*/ }, + onPin = {_, _ ->}, + searchUsers = {}, + isCritiqueBrainzLinked = {true}, + onReview = {_, _, _, _, _ ->}, + onPersonallyRecommend = {_, _, _ ->}, + onFollowButtonClick = {_, _ ->} + ) + } + } + } + + @Test + fun listensTabScreenFlowTest() { + rule.onNodeWithText("You have listened to").assertExists() + rule.onNodeWithText("Recent Listens").assertExists() + rule.onNodeWithText("Followers").assertExists() + val scrollableContainer = rule.onNodeWithTag("listensScreenScrollableContainer") + scrollableContainer.performScrollToIndex(10) + rule.onNodeWithText("Similar Users").assertExists() +// rule.waitUntil ( +// timeoutMillis = 5000L, +// condition = {false} +// ) + } +} diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt index c730ee5e..5bb2a772 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt @@ -46,6 +46,7 @@ import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.UriHandler +import androidx.compose.ui.platform.testTag import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.style.TextAlign @@ -83,8 +84,8 @@ import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel import org.listenbrainz.android.viewmodel.ListensViewModel -import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel +import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun ListensScreen( @@ -241,7 +242,7 @@ fun ListensScreen( } AnimatedVisibility(visible = !uiState.listensTabUiState.isLoading) { - LazyColumn(state = listState) { + LazyColumn(state = listState, modifier = Modifier.testTag("listensScreenScrollableContainer")) { item { SongsListened(username = username, listenCount = uiState.listensTabUiState.listenCount, isSelf = uiState.isSelf) } From 084c6579f73192c3ef83d31b0511efa2cc983fae Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:27:12 +0530 Subject: [PATCH 07/10] Adds UI tests for all tabs of User Pages --- .../org/listenbrainz/android/UserPagesTest.kt | 122 ++++++++++++------ .../ui/screens/profile/BaseProfileScreen.kt | 35 ++++- .../screens/profile/listens/ListensScreen.kt | 7 +- .../ui/screens/profile/stats/StatsScreen.kt | 15 ++- .../ui/screens/profile/taste/TasteScreen.kt | 9 +- sharedTest/build.gradle.kts | 3 + .../sharedtest/mocks/MockFeedRepository.kt | 59 +++++++++ .../mocks/MockRemotePlaybackHandler.kt | 59 +++++++++ .../sharedtest/mocks/MockSocketRepository.kt | 13 ++ 9 files changed, 262 insertions(+), 60 deletions(-) create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockFeedRepository.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockRemotePlaybackHandler.kt create mode 100644 sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocketRepository.kt diff --git a/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt index ef7ede0d..a761f378 100644 --- a/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt +++ b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt @@ -1,13 +1,15 @@ package org.listenbrainz.android +import androidx.compose.material3.Scaffold import androidx.compose.material3.SnackbarHostState import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollToIndex import androidx.test.ext.junit.runners.AndroidJUnit4 import dagger.hilt.android.testing.HiltAndroidRule @@ -19,15 +21,18 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.listenbrainz.android.model.SocialUiState -import org.listenbrainz.android.ui.screens.feed.FeedUiState -import org.listenbrainz.android.ui.screens.profile.listens.ListensScreen -import org.listenbrainz.android.ui.screens.settings.PreferencesUiState +import org.listenbrainz.android.ui.screens.profile.BaseProfileScreen import org.listenbrainz.android.ui.theme.ListenBrainzTheme +import org.listenbrainz.android.viewmodel.FeedViewModel +import org.listenbrainz.android.viewmodel.ListensViewModel +import org.listenbrainz.android.viewmodel.SocialViewModel import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.sharedtest.mocks.MockAppPreferences +import org.listenbrainz.sharedtest.mocks.MockFeedRepository import org.listenbrainz.sharedtest.mocks.MockListensRepository +import org.listenbrainz.sharedtest.mocks.MockRemotePlaybackHandler import org.listenbrainz.sharedtest.mocks.MockSocialRepository +import org.listenbrainz.sharedtest.mocks.MockSocketRepository import org.listenbrainz.sharedtest.mocks.MockUserRepository import org.listenbrainz.sharedtest.utils.EntityTestUtils.testUsername @@ -42,6 +47,9 @@ class UserPagesTest { val rule = createComposeRule() private lateinit var viewModel: UserViewModel + private lateinit var feedViewModel: FeedViewModel + private lateinit var listensViewModel: ListensViewModel + private lateinit var socialViewModel: SocialViewModel @Before fun setup() { @@ -53,6 +61,28 @@ class UserPagesTest { MockSocialRepository(), testDispatcher ) + feedViewModel = FeedViewModel( + feedRepository = MockFeedRepository(), + socialRepository = MockSocialRepository(), + listensRepository = MockListensRepository(), + appPreferences = MockAppPreferences(), + remotePlaybackHandler = MockRemotePlaybackHandler(), + testDispatcher, + testDispatcher + ) + listensViewModel = ListensViewModel( + repository = MockListensRepository(), + appPreferences = MockAppPreferences(), + socketRepository = MockSocketRepository(), + remotePlaybackHandler = MockRemotePlaybackHandler(), + testDispatcher + ) + socialViewModel = SocialViewModel( + repository = MockSocialRepository(), + appPreferences = MockAppPreferences(), + remotePlaybackHandler = MockRemotePlaybackHandler(), + testDispatcher + ) rule.setContent { runBlocking { @@ -61,49 +91,67 @@ class UserPagesTest { } val uiState by viewModel.uiState.collectAsState() ListenBrainzTheme { - ListensScreen( - scrollRequestState = false, - onScrollToTop = {}, - username = testUsername, - uiState = uiState, - feedUiState = FeedUiState(), - preferencesUiState = PreferencesUiState(), - updateNotificationServicePermissionStatus = { /*TODO*/ }, - dropdownItemIndex = remember { - mutableStateOf(null) - }, - validateUserToken = {_, -> true}, - setToken = {}, - playListen = {}, - snackbarState = remember { - SnackbarHostState() - }, - socialUiState = SocialUiState(), - onRecommend = {}, - onErrorShown = { /*TODO*/ }, - onMessageShown = { /*TODO*/ }, - onPin = {_, _ ->}, - searchUsers = {}, - isCritiqueBrainzLinked = {true}, - onReview = {_, _, _, _, _ ->}, - onPersonallyRecommend = {_, _, _ ->}, - onFollowButtonClick = {_, _ ->} - ) + Scaffold { + it -> + BaseProfileScreen( + username = testUsername, + snackbarState = remember { + SnackbarHostState() + }, + uiState = uiState, + onFollowClick = {}, + onUnfollowClick = {}, + goToUserProfile = { /*TODO*/ }, + viewModel = viewModel, + feedViewModel = feedViewModel, + socialViewModel = socialViewModel, + listensViewModel = listensViewModel, + ) + } + } } } + @Test + fun allTabsExistenceTest () { + rule.onNodeWithText("Listens").assertExists() + rule.onNodeWithText("Stats").assertExists() + rule.onNodeWithText("Taste").assertExists() + } + @Test fun listensTabScreenFlowTest() { + rule.onNodeWithText("Listens").performClick() rule.onNodeWithText("You have listened to").assertExists() rule.onNodeWithText("Recent Listens").assertExists() rule.onNodeWithText("Followers").assertExists() val scrollableContainer = rule.onNodeWithTag("listensScreenScrollableContainer") scrollableContainer.performScrollToIndex(10) rule.onNodeWithText("Similar Users").assertExists() -// rule.waitUntil ( -// timeoutMillis = 5000L, -// condition = {false} -// ) + } + + @Test + fun statsTabScreenFlowTest() { + rule.onNodeWithText("Stats").performClick() + rule.onNodeWithText("Global").assertExists() + rule.onNodeWithText("This Week").assertExists() + rule.onNodeWithText("This Month").assertExists() + rule.onNodeWithText("This Year").assertExists() + val scrollableContainer = rule.onNodeWithTag("statsScreenScrollableContainer") + scrollableContainer.performScrollToIndex(2) + rule.onNodeWithText("Artists").assertExists() + rule.onNodeWithText("Albums").assertExists() + rule.onNodeWithText("Songs").assertExists() + scrollableContainer.performScrollToIndex(3) + rule.onNodeWithText("Load More").assertExists() + } + + @Test + fun tasteTabScreenFlowTest() { + rule.onNodeWithText("Taste").performClick() + rule.onNodeWithText("Loved").assertExists() + rule.onNodeWithText("Hated").assertExists() + rule.onNodeWithText("Pins").assertExists() } } diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt index 887903a8..9530cde7 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/BaseProfileScreen.kt @@ -55,6 +55,9 @@ import org.listenbrainz.android.ui.theme.lb_orange import org.listenbrainz.android.ui.theme.lb_purple import org.listenbrainz.android.ui.theme.new_app_bg_light import org.listenbrainz.android.util.Constants +import org.listenbrainz.android.viewmodel.FeedViewModel +import org.listenbrainz.android.viewmodel.ListensViewModel +import org.listenbrainz.android.viewmodel.SocialViewModel import org.listenbrainz.android.viewmodel.UserViewModel @Composable @@ -66,6 +69,9 @@ fun BaseProfileScreen( onFollowClick: (String) -> Unit, onUnfollowClick: (String) -> Unit, goToUserProfile: () -> Unit, + feedViewModel: FeedViewModel = hiltViewModel(), + listensViewModel: ListensViewModel = hiltViewModel(), + socialViewModel: SocialViewModel = hiltViewModel() ){ val currentTab : MutableState = remember { mutableStateOf(ProfileScreenTab.LISTENS) } @@ -102,12 +108,15 @@ fun BaseProfileScreen( Spacer(modifier = Modifier.width(ListenBrainzTheme.paddings.chipsHorizontal / 2)) repeat(5) { position -> when(position){ - 0 -> Box(modifier = Modifier.padding(ListenBrainzTheme.paddings.chipsHorizontal,) .clip(shape = RoundedCornerShape(4.dp)).background( - when(uiState.isSelf){ - true -> lb_purple - false -> lb_orange - } - )) { + 0 -> Box(modifier = Modifier + .padding(ListenBrainzTheme.paddings.chipsHorizontal,) + .clip(shape = RoundedCornerShape(4.dp)) + .background( + when (uiState.isSelf) { + true -> lb_purple + false -> lb_orange + } + )) { Row (modifier = Modifier.padding(end = 8.dp, top = when(uiState.isSelf){ true -> 4.dp false -> 0.dp @@ -204,14 +213,23 @@ fun BaseProfileScreen( userViewModel = viewModel, onScrollToTop = {}, snackbarState = snackbarState, - username = username + username = username, + feedViewModel = feedViewModel, + socialViewModel = socialViewModel, + viewModel = listensViewModel ) ProfileScreenTab.STATS -> StatsScreen( username = username, snackbarState = snackbarState, + socialViewModel = socialViewModel, + viewModel = viewModel, + feedViewModel = feedViewModel ) ProfileScreenTab.TASTE -> TasteScreen( snackbarState = snackbarState, + socialViewModel = socialViewModel, + feedViewModel = feedViewModel, + viewModel = viewModel ) else -> ListensScreen( scrollRequestState = false, @@ -219,6 +237,9 @@ fun BaseProfileScreen( onScrollToTop = {}, snackbarState = snackbarState, username = username, + feedViewModel = feedViewModel, + socialViewModel = socialViewModel, + viewModel = listensViewModel ) } diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt index 5bb2a772..69a75256 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/listens/ListensScreen.kt @@ -54,7 +54,6 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import kotlinx.coroutines.launch import org.listenbrainz.android.R import org.listenbrainz.android.model.Listen @@ -89,10 +88,10 @@ import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun ListensScreen( - viewModel: ListensViewModel = hiltViewModel(), + viewModel: ListensViewModel, userViewModel: UserViewModel, - socialViewModel: SocialViewModel = hiltViewModel(), - feedViewModel : FeedViewModel = hiltViewModel(), + socialViewModel: SocialViewModel, + feedViewModel : FeedViewModel, scrollRequestState: Boolean, onScrollToTop: (suspend () -> Unit) -> Unit, snackbarState : SnackbarHostState, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt index fd31dae6..956c0bd3 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/stats/StatsScreen.kt @@ -40,11 +40,11 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.UriHandler +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost import com.patrykandpatrick.vico.compose.cartesian.axis.rememberBottomAxis import com.patrykandpatrick.vico.compose.cartesian.axis.rememberStartAxis @@ -82,15 +82,15 @@ import org.listenbrainz.android.ui.theme.app_bg_secondary_dark import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel -import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel +import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun StatsScreen( username: String?, - viewModel: UserViewModel = hiltViewModel(), - socialViewModel: SocialViewModel = hiltViewModel(), - feedViewModel : FeedViewModel = hiltViewModel(), + viewModel: UserViewModel, + socialViewModel: SocialViewModel, + feedViewModel : FeedViewModel, snackbarState : SnackbarHostState, ) { val uiState by viewModel.uiState.collectAsState() @@ -245,7 +245,7 @@ fun StatsScreen( false -> uiState.statsTabUIState.topSongs?.get(statsRangeState)?.payload?.recordings ?: listOf() } - LazyColumn { + LazyColumn (modifier = Modifier.testTag("statsScreenScrollableContainer")) { item { RangeBar( statsRangeState = statsRangeState, @@ -326,7 +326,8 @@ fun StatsScreen( .padding(start = 11.dp, end = 11.dp) .height(250.dp) .clip(RoundedCornerShape(10.dp)) - .background(Color(0xFFe0e5de)), + .background(Color(0xFFe0e5de)) + .testTag("listeningActivityChart"), chart = rememberCartesianChart( rememberColumnCartesianLayer( columnProvider = columnProvider, diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt index 75e215b6..bbd71a87 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/profile/taste/TasteScreen.kt @@ -38,7 +38,6 @@ import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.hilt.navigation.compose.hiltViewModel import kotlinx.coroutines.launch import org.listenbrainz.android.R import org.listenbrainz.android.model.Metadata @@ -61,14 +60,14 @@ import org.listenbrainz.android.ui.theme.ListenBrainzTheme import org.listenbrainz.android.ui.theme.lb_purple_night import org.listenbrainz.android.util.Utils.getCoverArtUrl import org.listenbrainz.android.viewmodel.FeedViewModel -import org.listenbrainz.android.viewmodel.UserViewModel import org.listenbrainz.android.viewmodel.SocialViewModel +import org.listenbrainz.android.viewmodel.UserViewModel @Composable fun TasteScreen( - viewModel: UserViewModel = hiltViewModel(), - socialViewModel: SocialViewModel = hiltViewModel(), - feedViewModel : FeedViewModel = hiltViewModel(), + viewModel: UserViewModel, + socialViewModel: SocialViewModel, + feedViewModel : FeedViewModel, snackbarState : SnackbarHostState, ) { val uiState by viewModel.uiState.collectAsState() diff --git a/sharedTest/build.gradle.kts b/sharedTest/build.gradle.kts index 988a96db..e44d7cb1 100644 --- a/sharedTest/build.gradle.kts +++ b/sharedTest/build.gradle.kts @@ -48,6 +48,9 @@ dependencies { implementation(libs.okhttp) implementation(libs.retrofit.converter.gson) + //Spotify SDK for mocking remotePlaybackHandler + implementation(files("../app/lib/spotify-app-remote-release-0.7.2.aar")) + // Testing implementation(libs.junit) implementation(libs.mockwebserver) diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockFeedRepository.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockFeedRepository.kt new file mode 100644 index 00000000..e4a4be98 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockFeedRepository.kt @@ -0,0 +1,59 @@ +package org.listenbrainz.sharedtest.mocks + +import org.listenbrainz.android.model.SocialResponse +import org.listenbrainz.android.model.feed.FeedData +import org.listenbrainz.android.model.feed.FeedEventDeletionData +import org.listenbrainz.android.model.feed.FeedEventVisibilityData +import org.listenbrainz.android.repository.feed.FeedRepository +import org.listenbrainz.android.util.Resource + +class MockFeedRepository : FeedRepository { + override suspend fun getFeedEvents( + username: String?, + maxTs: Int?, + minTs: Int?, + count: Int + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun getFeedFollowListens( + username: String?, + maxTs: Int?, + minTs: Int?, + count: Int + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun getFeedSimilarListens( + username: String?, + maxTs: Int?, + minTs: Int?, + count: Int + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun deleteEvent( + username: String?, + data: FeedEventDeletionData + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun hideEvent( + username: String?, + data: FeedEventVisibilityData + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun unhideEvent( + username: String?, + data: FeedEventVisibilityData + ): Resource { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockRemotePlaybackHandler.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockRemotePlaybackHandler.kt new file mode 100644 index 00000000..7de7f700 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockRemotePlaybackHandler.kt @@ -0,0 +1,59 @@ +package org.listenbrainz.sharedtest.mocks + +import com.spotify.protocol.types.PlayerContext +import com.spotify.protocol.types.PlayerState +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flow +import org.listenbrainz.android.model.ListenBitmap +import org.listenbrainz.android.model.ResponseError +import org.listenbrainz.android.repository.remoteplayer.RemotePlaybackHandler +import org.listenbrainz.android.util.Resource + + +class MockRemotePlaybackHandler : RemotePlaybackHandler { + override suspend fun searchYoutubeMusicVideoId( + trackName: String, + artist: String + ): Resource { + TODO("Not yet implemented") + } + + override suspend fun playOnYoutube(getYoutubeMusicVideoId: suspend () -> Resource): Resource { + TODO("Not yet implemented") + } + + override suspend fun connectToSpotify(onError: (ResponseError) -> Unit) { + TODO("Not yet implemented") + } + + override suspend fun disconnectSpotify() { + TODO("Not yet implemented") + } + + override suspend fun fetchSpotifyTrackCoverArt(playerState: PlayerState?): ListenBitmap { + TODO("Not yet implemented") + } + + override fun playUri(trackId: String, onFailure: () -> Unit) { + TODO("Not yet implemented") + } + + override fun play(onPlay: () -> Unit) { + TODO("Not yet implemented") + } + + override fun pause(onPause: () -> Unit) { + TODO("Not yet implemented") + } + + override fun getPlayerState(): Flow { + return flow { + + } + } + + override fun getPlayerContext(): Flow { + TODO("Not yet implemented") + } + +} \ No newline at end of file diff --git a/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocketRepository.kt b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocketRepository.kt new file mode 100644 index 00000000..5d2e7835 --- /dev/null +++ b/sharedTest/src/main/java/org/listenbrainz/sharedtest/mocks/MockSocketRepository.kt @@ -0,0 +1,13 @@ +package org.listenbrainz.sharedtest.mocks + +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flow +import org.listenbrainz.android.model.Listen +import org.listenbrainz.android.repository.socket.SocketRepository + +class MockSocketRepository : SocketRepository { + override fun listen(username: String): Flow { + return flow { } + } + +} \ No newline at end of file From 50aad7f89a3623d76ac8903a928e18aff3d7b45d Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Thu, 15 Aug 2024 09:27:05 +0530 Subject: [PATCH 08/10] Fixed Local AAR dependency issue --- app/build.gradle.kts | 2 +- settings.gradle | 1 + sharedTest/build.gradle.kts | 2 +- spotify-app-remote/build.gradle.kts | 2 ++ .../results.bin | 1 + .../classes.dex | Bin 0 -> 137744 bytes .../results.bin | 1 + .../classes.dex | Bin 0 -> 137792 bytes .../results.bin | 1 + .../classes.dex | Bin 0 -> 120316 bytes .../results.bin | 1 + .../classes.dex | Bin 0 -> 138012 bytes .../spotify-app-remote-release-0.7.2.aar | Bin 13 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 spotify-app-remote/build.gradle.kts create mode 100644 spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin create mode 100644 spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex create mode 100644 spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin create mode 100644 spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex create mode 100644 spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin create mode 100644 spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex create mode 100644 spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin create mode 100644 spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex rename {app/lib => spotify-app-remote}/spotify-app-remote-release-0.7.2.aar (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 15f428a8..a9d8f0ac 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -198,7 +198,7 @@ dependencies { implementation(libs.google.exoplayer.mediasession) // Spotify SDK - implementation(files("./lib/spotify-app-remote-release-0.7.2.aar")) + api(project(":spotify-app-remote")) // Networking and parsing implementation(libs.jsoup) diff --git a/settings.gradle b/settings.gradle index 479c0fef..1ed457e9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,3 +17,4 @@ dependencyResolutionManagement { include(":app") include(":sharedTest") +include(":spotify-app-remote") diff --git a/sharedTest/build.gradle.kts b/sharedTest/build.gradle.kts index e44d7cb1..2ed17476 100644 --- a/sharedTest/build.gradle.kts +++ b/sharedTest/build.gradle.kts @@ -49,7 +49,7 @@ dependencies { implementation(libs.retrofit.converter.gson) //Spotify SDK for mocking remotePlaybackHandler - implementation(files("../app/lib/spotify-app-remote-release-0.7.2.aar")) + api(project(":spotify-app-remote")) // Testing implementation(libs.junit) diff --git a/spotify-app-remote/build.gradle.kts b/spotify-app-remote/build.gradle.kts new file mode 100644 index 00000000..f479d2bf --- /dev/null +++ b/spotify-app-remote/build.gradle.kts @@ -0,0 +1,2 @@ +configurations.maybeCreate("default") +artifacts.add("default", file("spotify-app-remote-release-0.7.2.aar")) \ No newline at end of file diff --git a/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin b/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin new file mode 100644 index 00000000..52daf05d --- /dev/null +++ b/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin @@ -0,0 +1 @@ +o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..bc99224bc5c3d828a98f8cb20ee6780ef815fb14 GIT binary patch literal 137744 zcmbrH37k#k|M;JCubE*C?u>m*xihvA)!0?i3?fUiTT8I zcNhR8U^LtZkHHL>4Huz#oMYyLDTOU;h3&8#4#3CoC43Fv!fCh&rZjnnk`ND-pej^{ zx^NA2fxa*d?u3c(G^~bq;RyT!e?nXt$5e!B&<47~V918a@B};!bKxae3tM0>9D!e; zM949h!S&D;ZiO7U2WG<__zgu_#KLub4*!Cgk)$A{a_3{3iDt+9EMNe zXZRD!mZ#340i;7a=mmXX6TA;U!3Bt_;Ftuc3aQW>Zib#P93Fyc@FJ{)Bk&EJhnR|l zg~||y25=L!hg+a4^n^Yz0ER&hjE4WfM3@5eU?psTgYXG_2N$4ZCF&Zkh79NeePJ}* z4-dm*Fb7t`J8%e2z~2z6OnpEiTn;Hv6PiIf+z4%tGA3;J;9>u48gx8JvX%S32f)cnykO#aM)C@ClT=nt2YMf?aSC zQqvsM4aUQAcn^Mu+V$wGa33syZSV)wug_co&%!|{(||gFfv^Ba4E97q>L-|(Z8OFmhI0An_?HlR0a0kqUx8W3o zT2p7xAD(~%a1m15P-pNUtc1gG0WQCZbRh>8!MpG+RB20Jg4!XgmX}~BYhCM!UHe|*1!Sy87kkxdIhbZFXX`^up5rSPf(*1{S$KGL6`|k z;4?T2#X8e2a0Nu*UYG-$;5&%!!rBW>;YPR_xBX80RiG|(f;(X*ya1bE zI~<2!;17uDO}?Q6M4&%p!+4kt>)`6aQ zBm509gQ-8L2vwmb)P;tS4!1xi42Ij`PIw5Og{AN+Y=%AXDV&C=A;bsCPzSDsw$K*_ z!zdU7li&%M3G-kntc1027(%zPkAk5v173wMATX46fKG51JPFHSD;$TwFy=aF2wmVm zFb!UVa}YC}yutMlfjpQ8>);5SgDNBFtI!X|z!Z29Ho;Li3o#>U6KD=u@DRKJJK!*U z3a8*S{0Zf5r#|3%=mmq|Zg?E#z$(}Z@4*rH8qPw=Y{nB@4)vfd+yY&oCk%uUa0g6+ zDeye3frIcP1V_<_pegi#!7vV{!d!R*w!{1ICHxG3K}-(oFC;=uXbv5rCk%$6a0iTq z$uJuh!E#s+@4`Vi4nM$e5Xfb&gJh@;S3v{FfF3X!?t>{X6XwBUcm-C&I(P>T!}o9o zE<#+MW5RGHG=(?F1|o1P423&kB0LGR;YC;pZ^AD45Wa`M zA@m>S6Q~7^p#`*q-Y^`-!2R$LJPj|va##mD;C=WUzK6dd?q0?d)P#nR0Ue+}424lJ z4(7uW*Z|w$J@^^^fZ}7BPoOH)fotI==mDePewYsP;8oZP2jC<40)qFku0RcF0Ii@G zWWyME5N5(_upN%U83>G{UqM-@0yW?&Xbl~q3uMAz7!41=qc9a_z-(9ot6($ifsf&P zI1T6EBE;TL{vZ*mK^nAzJ}?MwhcPe#Cc|u42CHEQd<>`IcLo z1rNZZFd3eMW$-$@3;W?CI04_oIrtNT6NncshpQn2dcY948y<&+@EUA_L+~kl3+JKO z1C$XihpQn2+Cy)+6>f*oa1T5PPrx&<5LUou*a3&&3pfvdL#c`E*`YBshj!2xZifl5 z0G7h5unBg-`|v4z2fstyB>EQAf(CFMw1BqI4Fx)uon)&5%?U; zgY;VnLrqA7X3!QQFc3z=ICv6f!(vzon_wp#fs=3!0uRwQpe|esH$iV033tJRFawsu zTG$1L;28W3B_C#7Lt|(SonZ*v0}sM8un1m-O>huCho9jB1RkNTp)yp3+Ry}AL3@b6 z5EutjVIjN@8{iOp0e?Z%qs;ek8PtPj&CDemw;VzzGY=vWR0YY@gcu0VpfV&v6-a{1pelqR8B(Ac zREHW+6KX*!)P^gd4%CG!;VQTq(x4vHhX&9P8bM=d0!`r>xE7j0bGQN0Ap=@KOSlnQ zLmRjW+CqEi05?NNxCJ^vXXpZ5Ap+f?JM@5_&6&<}2f{xATtU?2>F!7v1F zgP|}ChQkOL3AY2=PQw<`u;nvs&kWlu!?wtuHVi|<5Hbu0Lw7ZFEkhSEG`X1yPr#G#6g&&h!7P{! zb6_sagZZ!ko`;372ws4tund;NORxf7hF4%Utc5pV9c+M&@HT9RU9cPWz+Tt~@4w!!RK%szJM>`D>wmP!#8jePQkbE9efWzz>n|~ z{0zUqX*dIC;T-%5=ixWF0RM&G;Sab7f5KnzH<*Ai4g??w#UKizAqI*=35bP~5C`R; zJXC;+Pz93Ua;OSnNQM-s2GyYk)P!1)3bo-1r~`H3DoBHRP#+pVLudqzp$RmFYv5YA z4z7n5&=Oih8)ysdpgnYeo1r7z0-fM*sL%7zYv4L)2G>J#xB=2316n{!XazTd%r^wJ zpU>2t7GNDwcT?QQ)t!#}Yjxj*`-Hk9K6fA7#i{=&bc1jk{^K#O{fNJ~N2*N>?$NkQ z;9mmwShX){t!Wed<8V*Hza;L`xF_Ql|9ITbs(o3tm$WLVyBO|TxFye$uDB(w(zsJ` zFYvjSs*U)s!Y%Qn;g*l2RS&sN{p(v_`V;<*a7+B9)V)RH5&ykD|HD4_aoiF=kFDJg z?(2Q-8`Ld%7PsVC-08S~@VP7b+ExTXHZM(SV6G7-0wMe14HUcHI?oX>wUVLh7}xTSt3VPikIANIK)QMcGX zj(d*UPxkqXyMxx%blhGWiF>iy&rtgq;t}@>&4ak54@>;wUgPuMs9|SmSg{dzD@{w> z+pv-P5x3Nj*v!Vg*XNcx7n?cwA69>Hdp6=erv7trOBtp9=i@%1Va5H6+B}b2>Q?G) zA#V9d{VzsJ{fqx{>&yReuTr<VgR`Rn6_XSN$+!Be{>`)sCdqDj8Nc`gV+E?6? zPw_vf{?Z@5!Y%zl;yHoaOY0llaTtsJk7_URpT;d8$&a`tKc2fB#!?T~2Dij1ZmCbt zEp6x7Ct>5ctNYwuyV$T=KW8OTKA0JCd*u>$T}?~e4SnurKDYES$%EK<{YTthdBxod zd&!TuJK&bGh&zH?>Pp;RU0HwPl<_F;{=T&O;4j%ehyPIgDZX`kbBOp${$&mkw>O7~ z+sm7{C2x|hxFubw|6g&-N6I2@umAssJ4f^I2W|-~HW$?`VI>OtK}w$FBQ`dFYAIg0`w`qx>Ym|q&%qt7 z{)=(PsCyOe;_BY$v)PNgg!&)F?ZtTxcdYtLJ(pDXMf}UCyBGxxsXNZ+F6XnagufRy z>~p93+-W{{Q=dEC=e`NImu@GY{~+clFaDlBoBp`HybblaNBhE#_t`(<^MBIk|154V zo&~rQw7e^PHtTSEd06Ai&o4gr7N7l2pZx)!`>4<6IBqZ9Q+^v?oX36cWpY#2(_xvmQ++p1Dnuk=}UcIH`_R7@( zw---O+-23iKkh_z=lE=79r41B$KOkLGH%a*25v8{1wQ{3KKpgJy>yQeXK77qi_c%? zUe8A67BBw2J{vm+YS^*Zlv4LmY`i#6;P&$Q3+_s4a{+f{br)x1@NANNZkbmrs!etL zy>d0hT~7U5;V!T4LB6n)a92_P$v*#QeQueny>u7g@0C~PMz6d}@lVotWG=l--D~i_ zT-_USS5@~mUpx`)WY*xalgzKiPMeLEckL?vqM7AG3ZWn1Fc!S;15^ zqp_>NbtP`bs`9Tt{x$ixop81Jw+(q6tL-3_cUT$kEYWMKhZC7yJy zSCMWy;a|6Mp*f`2Ut1Y;zPB>oIgQLv`wX?uVCN?GaxL~5teRq@R#ehdfm>nH{Vb%?YNGjUfOY&5{+zc zhMQloYi~xHbI1;~kd(Uv|N2{b)|4V#N7K@b5m0eXvRCZI@U1blIJyrIiUe=JW z-e#&pBHvKC&dMm~Eb$F8=glVM zU`{Hfo(A)8tjhaTzNGRa!VMw*BV3E@X0Okh9xC6oGTO#B#N21zBHkhN-}kJ1+tWQ(K++d^uS&TWkn0U9H>#XW zeufd_1{==J*D!kKF?&7GoU(Gd`BvjSj~ro|nKQ_2t=DY&^Uqw5((7E(`491nykF&b zl@nAxpmLAOy(;&qd{59ebL)zAc2C$({A5$XVuDv(?Jy%m-Gw`IyBxmhnD| zbfsNpoAKr~D-YQEna$n)-(1f@zGJ29KZg((?DawOU*ufsb+whHoLzeTyUIV1^SB%Q z3OS#Ae_^G&E-cXbeUZu~oLp{4zr@tH{cNdTFXgoIef*c}^-F5MLgg!*kRC?=3Zq8W z!IgTwQm-A_MXLwhg9USuNvYtT1CuI1X`zZSbk zk#FGt8~*E%BM7&S{x;IeC?^5^Iv`sW%B9u`=k~t^OrRXAAW)j_@KMAlw$hNqxS}^ZR^MNUxpfXay~C#if8xd*$+#IuK( zS`p74%5|fayG?5=c{j(({pLJ!FX;^+9g%~`zsSKVbI|W&-N_?fk@u-Qq4G2I?~&dX zmy7?U$ zL%Q9GC&t8@SGg{UY=M1A{IehUa!mM%gdZP*q1c{rx*6+ z)W3oWnMU|mAVg*SD=-r+LRMtPk#s9E)41|Y^CbS2%mmIYdFE~|cfKZ_%FO#wTqiP_ zeZjTJ0M{wxy9)JM4g3CF*CMWg=xcF3*vbS`75`MtM=Ckmjen{sukt?gvAr&9`jT!c z>thn}U1@%?`MFAEnz_eZMm%Zk8eRFI`3d_p>_yho`0G)UPl>M{B^Zo0hr--LY2byJgMo+JEq8gDbx%G^b~%}m(TL*I=1#s*eiVVYZ6 z*L1YOQ+`N5iZ?SH_NT8Vb)k#)4XnFEwdS!!CMv*F2np+WwNPF z{xT?Unw7Vi4887Z20qYnXy(jHB(hSVP$i(+R7$ot(9%eIx8EQ?J9Rz z*}}YQWpDGb%1=~(TICsJN6mLfW+=&bN9~UtwH-QY`NZxo%H2`>X-Dm+9gW*hI~up2 zc4UM}Kkdl;CjC_8BUYAmp0qN?dETZQ%Q7g`)T-o+TZ(WfA7aiwUGSW%AJeM|NXTb{Rwx5^!uBS%vmcJnct8DG@b$6A4Fq6 zfP6}S6e;~tr1ZxD+8+ln0;ONdwe&~POMe`|3?}_ir1ZxD%pk8>>GsP3%y`l-2QU() zUrIRXmm;NK4q(JfzZ^jQNWT;*{ZjPOFGWhf%%VIpUx}3Z$>JQYJ^9Si@@8>I)YD#< zb7B}@1L+AeZw$m<=8b`@(5r}NklAj-4`Sy!2>Zbr?_iw=2Q!n)JUE!QykwjXF~3>+ zA?&|oybsZMhiJS*G@c>azePSoyhGTrr;^?f_93;ce9tVl(#^*ZR^a#Tb)1t(Izzc@ zl5!1YN9M|2=5Nv)YR0Q9V?x9`lyt*>FGp6~r;(4U_Pc*%(yxNSj(wz@(*YLM%_-yT` z+3Y+!lh15sepw&0ndx1*$Yc>do0Vy}mCu;Y(49zMdl@(P>pVH0Qx3`Bc>bSFxbe(;zgX$cd*f-*?t~vt zJd>i>$$l~%U1`=*KPOxCOao5)G#FPq*Z^S8zrJR ze3<%?elAk#8O z6tx$Bv7e&-X^O6+a&9(>e2ZTC(G-nms?JYSb$*(PJ`204IzLU-d1J+Us~{8uDrCLF}GZyQkIeX|;Qr zdKWu6KNP!}YBy8uW~$vxwR=X>ea7@OpHZG?Ob_!p@>#;meZX_*uTWVBIm>)&CP*&v_FVm`ok>k53|_uEwR^q%uC4G=9GfglMn6aO^3Im%=Muk^d#>qc%G>KKQ^CpsrlOUjOdBh2H6hZQ zYx&!f!H_19Pj}w{uRgPCVLFEG~C#syJ z@(BG-aAf^?-ni?}LS~qsh;Jb~s-KaI z)P521w!&^PD_1ouCs?}|HJumDXEyy8c~WqJ`h1b|8CPCr@4H_#ms`1nb0MkMC7S*c zO@E1|zf|>0HJzoTEBRTb=`7Q9mYLgaI?FV@Wu}Uaf0=R9Th587q_dnI)u-fVxt43W zmg^;r?$t~{}prG#`}uq{}s*uE1Lh6ym>6?uGIXm z)cmjF#8&)QaZ)4mz$$ihlCM>ouT`3_S2dkiwLM?eeko^~(l1{nzF(-1*VOJcwR=tN z?C6IVYEJ>opyD#wB*^)$UE~WWIY- z^DEChZ$ z_IuQB4^I=sZjZ(*&$7jCkJ{~3yS-Yjy=o`Vy2Wm<+U--jedbFW-#)dIXW?SEPwn1Q zyZ3b5zNdEbtX%BgQ@j0Yx8HnWe`FQJL`HsonP~e>7ukJiqAm zX^ro+=JT}X^DN&ak#e6^|Fi7qs}LV=DX6UK)V0@cxz4ilzk_w>EbE-)^DH}kk>@o2 zbNEPn=h#vACV%JH0lRX#%BNJ$Q2DgVnJV3S`&HxlmG+VS#(AyB^Xxz6-2XQ--XxHZ z-&r{&y+7CiO1)m>dCDK8dyyU94feXE^CxzHX}|rO9nv85fAhRg=EuMJ=AkR2Y`gu< z6C7#3zq!MZ_4RM=6hsBe#`_gS${ zg5%0XeAhsJ`q0gnyvLVJdgaL1O#I8Mte~=@%E~IQqlob!{X;&ZU15^=!rW_o!L1qB z4(;vfM{?bVFRWcHU#R1AJ^1z0xn6_5tLmGJQK%sNb6ox)UwG5c4aoR(84vD9^cT^O z(D10}@rA=D@nyN`s?WHDeh~V1Ro_DNzWmF5z-076`7$7%mQYl`0(}|Pw<@Ba%k^IL zRnTvwer~*k{uuf?8oqTA{V!Y>9x@O%q>8`aBqn*8|_eFyX-RWILj z^6P&`e-8ad)yq3Xe*Hb@8#0%Cr20YV#cU&Q1y9Q^J3Hu@9j`>9^~n_s^V{YCUSs=ryTldKpjt{7d*b=r2d#3jLjz(62z>2)%s9h~8Jey5xT&`u3{7>k|5;0Pl>Uj}ZUe zm(bTm|BQye=Mwq|`lYIuch-ugzZm^K^rMLXUeSX$KU_)v)}TM8;pN>)fA|qxpFnTF zfQwt+JuRxgh`xk;L6?ubTjW9synMNs&qGjDUl;x5s()1U;MJdm?}NU9 z>K`i-UhXRvqt8?Q<3;qhY0>Ug{p2G0|DfMU_(`gtT15XO`V;8qs{V;0`f2Esq5|ek z)k}T*%P0C~=-*ZSQ|SHeGaG#b{bBU?(|=|Z2|pM8X!K_^ytIeEe&(Z}j6UX=Tffg1 z34a*<3iOw$Ue*(T{zShGeNENNdLSRK{_D_x52J6OdN~)8k6#}b9WdQhFYAFne-geG z`g>KsK=thB>}MD0uR;F~`o}2$^P=~S?~7a?Lw{1kFD#<}lj~wJ0dqn1i$o7z{D0xD zjy~#B>X!Hyi{2Oi-&{9CUk<%|UXcI!=I;-=?1SF>yr>Q-e_h^~68%W@$r^r{Pv21W zbI`X}{Y&U2r7P9$XXIY=ccPz1{#K~|Dxdxb^iQf@#)E|S>R-ag@g?||H2yb==nrw7 zg#HcH%lUwRef^H>X6W~+{w)dbtDo~+`#(Fl@P{8q)$}2J$G!F=txqrCsrB?< zslFY0`AGfB_oh0N^bf>;UiIzqCwZ&yqxy0s0w(;qTmFvdyz#U18ou{}TExT>JG|l0U+Kpy9g~(GNjiEH+@iQhlU| zeh+&2oJPNv_~qW%AOBv}|Be1F^xcc--$S27{H2cbJ1XdV6w#kW-w=Hj^isZ_Mf4ZZ zcR*iT^}SRt^*@sOyB#?QeG~MD2;bYMAC3MguIHd1h+aOKAT9|%7X3WrG4zkCz7N-4 z|Cxl|YyV}c@9We1`^RS0_e1Z+Kbi27PF%@=Ii&glKK%^z6Qum;&!9g-{F$mkMilaq5lK@AoN32Kh~$;i(dAtE6_iM{%6vEm}~h+y&Od^ z^HoymfcaX(KO#y#qCc+shUjCya`QI@f2WwMKZX8YNgsVP)lZYad?dVl&+=*Xi_zbs z`sw(4<(Kk_KCTS!Mymd43Cu^r%l98;{p^Fj+zB`RnO0j^KNfvc)k}Z!;^$`9T*dmf z27MpZ&sY5djb}RXCxvJ~^wR&AsK2By-?NnUqapg&HT+VaUcP%N`a$TAsD3%uUi$Le z5u%@r{;cX>@r9T8|KNHJ`h>6D@~!mgC4SMLK;KaHtGM>ZFZ#H6=5N)%>eGh_e;d~g z(T`F6Yen?Z-v*(dr~1`J^s*nDfqsYT*A&rD<$5FfA5_1#h+fw7bLcC4*@&s(^B>8i|9{rJraGc>Ngb8%lbJ3{WGfHSVaFl*L%^wt$N9i zKm8xME><>RK3DzbBKmV&*F_(7(kUwdBKqFw$D-e*`fWw@eb6sP|1EGLn=fzrTq7Tl8ztzo7ak`Ry3`i5mWB5q)*^ zah2#ls{g2n{%Z8C(63kh5T8Dk^k~4Sfb@5AvA>;_~!| z3I7B7EY6vD#!2E<4myY5<#Zj@WQv`3#$?xKjw5=wz9MKu%g)6ABFDO?TJt z)<8mn=NDpMP=?<<3z_QSa{NDzr?sW|CvnL?#;}*)w76g>P@1>s`TjBf-{D_Q(kY%{ zBGVE~WO}@bJXOwgn^D0;o-S`9Gs~KUn3(Znibt@DXD2JAgF;+cPg=&gpJaq}=hUc<-%MQ5~P04d!IFlGt6B5nIK#J3aUw8YJUz0c)$O&H+ ztZ#DC7W3O}l2SQRl2`(^t{0M4f38z_KARK1%vohpN^~?S!2w+DBtI#|`r&$uI!uWg zg{!6$Wm2LualJvBDKWiqy-Lm_ORq37(_#W+ich9&2?^QZ=S(tr7=b>4UY;Gk+zFe= z!YfQrklLb^W-cp7+H)})J<3o;rAD_!@oLRjriq; zI?xAGqS_MgP)^&k!{^WxwDCU5Q<3r{@coG@PNMTPEj-UDOPgOoDsj|bZYYOx#nA(5 z+nVP$E3lW=mp=F@;iHhbpT$(X_ghy)pWF*hRv1sqaK5jj~_E_m@(*Th9qCLL>buiV%@-9qLuADmnG2h3xcr zC#_tZ$qkLPJ+~_JdWzG|d*g)n z?4Qo}Z(PW~V2!xO`bXJ5zzaKb@XFJ%|DqEAMq z@SatUt;b=MFoo~)WI4#daC}1!&vDX5*PYmGNgIN!Rq38oJ%YilL6mP|!LO_{?s+MK$xKK&D0se?XF zBOAXv({PTa{=?}5lCHPcsf54eRYt1pb;MrETd-$iLrRE$v-kXy|CjOn-{QZbNIYKr zMf3S@{$BhIym)laDQzNsz6t(vrkKmyqOw9aWp0tVGc_i~e91f?6HMcKhXrkzfxXPp ztSafR7>5>=Hg(5hyGz8C$P=jC@MXaWGg59^l3nk;{?OeQ*Qz3M-HJ~33x&g9rs3T+ zVK_D=v5BPJ$hy2Om=xf9vuUfHP{11>u3dH^yY2t5i>4-|&GWF6x`?FT$V_>J(q9a8 z=GR+aXD#0ml#!Q~EHQg)(%psPo%4@)J-e}m?B2!hDEWLNKcC)QJ03g#{^v&Oy*Q~! z-X1|Gb7XGlDrVwHdTVmH#zeX_b8^!A1(L@k1-6pQCB9rrTyD9ZB5c_rVc(E7+?Gzl zy>!WNvj~@L!;K`(Zk?JtP1(V?X|H$F4vz{XYYn~Tiz9`1ViKJbft+x;V90)d)hpu* zMatNkGI~01kLS%PZR|L6N3!UOlb1-S4Zowif%Rsq3I7jaZz>X2>NOI&iFy4MN5V<( zmwDl3^5f3=Rh{g#w<)jNcVs^(^}ZT?U1SRHvPL@BadOh`3xuL08Eq-`25N4ZEp@$c zoRbn5&$lD*cXGm6PJMQ9eW>9L?1Zwz!#5K4`Mh}a_4BbB(g*E_Rw+Yqz!UI-`Lz` zhj$RFU=B}0Ujlss7II`0N7-EqnN!`dcm+1@nC(ChS;|;gd&x0-bs@Xu*zGA~C%Y%f zZ$q_9;jKk}jUoI}AVduxLg%)lHwKzwC-}`^i+NiUhV6_CA9sU z6He}>W!x1vk^U0;uniqU=!CM>8YJ->6Ojk6HaABFi{+&K7)ZABKw@x>FSdfQ*#3W! zkJo)6y>fQ-moxsK<@EY%5A57IOme#2u=@;jj&|p;^}cvL`@a8!{W_n06g4X2VW8$C zk|yoI);n+zplXl4tEuo*s{-brgw#g}!hrP7l4m&f+yt~1d2hV;? zA^Z2RKag*~$!G8Nxv_=vyxGn3CDw`Yh3ww?hn?3aCSiBE^re644Y{F|U~v-{RkTNJ zxkTQcER^Qff28S^VMZalcmCDx*+O=6vD;Z_t?}ZUTgYxLb~3*FYZ3#P&qC~Eer(FD z5fe%cCgS#=sVqhBU$Z*U>M`^c>9?!UrC^`UK`>*DUzbbgEGj!K*7WC>9VAZf4Oy6) z2FqBP+#sP`{g$%#h_JOx2(}IcxL1k~lyc$&k_XAV;2IP_|6)XjGJw`dt}1zVtnrZ+<7uI>;=(Gn5ySZ=1#;JF0AjjCGna zqvnNf6hEh`a~5l@0p{Tn%#Lx~i8L(3mw0>GF62|@B6puqus(Iizohj~z&3^VR&&B>!7wXmXFC^p z>sUYRB)$m#*`a#UPR#K`*!xD&DnGHl7OZI_v6VF~iSL3HoXHNhZ6zZ_$Wxmv(}not zja!MYf~{-Gr!WSaCdd@xNpxPaXR_bfyRB~OcONG=Icct6ME%B^gcQ%OtNMKuNT~1m zb*DDFu>**htUyzT78w(K5@O0q=H^zO6Go!Ccn!uY~N6wycxL z^T1M^BxF(!DVeO`#kgCOx!wAPqx4GpsC=dnJ{B1XXOWMtrU75vP6)|)Oc~pc#b$aT zn@Ay>XyTD^{R}oEvE}T@;p`}|pSy;+oL!|j{b}cISY&qY&sB^`47?KLzJwke=`w)) z6~~nmzQ9AwtbC)q+(ViM2kp6)~AzvP`5?e@d1T_@15F zInt@lSWGPT2(i`)wv>~wh@{}UvqM+P=@My|57y^zHIyQk58IQj-0*yd{TFei1iG_k zo#woKDS!DSJG|Y5H4QmOXiX^`=cLmOcNDcF^}k;0U-~lpL(b1qoI#Z5q%D>F!c1nk zuWjW_YB;mn0Fzlg)Amod{dN=Hwrlt_wlWrEU&P-!!e91v-dWs1Tc5m#Sg38I$zN)q z6!CW_9i9~M|66Upk$qkXo8Rwf1$X|Fe)K8v_Ct2*6wN#+=lbHx4asl+#&JsHosym* zz4;D*J1rwSRF=}p$!T}ys}Q-Az4BS==@;g)hHjmvRS728`AXU@G1$}QmXqcdeN1xM zytLj9Cum8LPEm|eP7jfp>9?|%>rX#@mpr7F7I%uXfOdYE+N;E#PHJCvLX31;M|x{h zV7Xxr>+ZUX|6oi_uDw3DBfrm8B#w$Emw&Qnj0;4%_NDGQ0Si~6T~bSwVy=BYzwL`r ze_c&xCwV3#_h`}vj#G)R2Doihhjc2t>DY78ceQTZ+V<)`!YPNGc!dWmP(H+OTU-i zY1=0)-h`sH)b!u-#1!drt1WkeNi9<KsS!<-FWi%ufTg1FL-)Ts#cztbvmajCi zcO&*C#9j-xcjhi@PBKKf^;Apt3(|-0B+reJkxoPCQN^eMSzAxw6US_NIrH0eCola) zJHO?Hwg5)#Lb)7ZJ;SZx$)p`aN>!c9DECF%OXYWfOOP|E_i5}UvPhwo5#d-D7r>*kEq#*iJpTd%v> z>#RT-(;)de`ncmHbjb;~3?|dp2SxD=Q1n4rNt4Ma>krqljI3%wcPzaXCAxZn#K7dJ z#9$A#Oh~Af!kr84ml?ddSb)6bIbkpVjMH4X3Xdia*`aJ(XPKP`(ZiznCvCNb`Vg6u z{<}TL^ZNQ;{8R9k_F>OYACr^mft*Yiv{7DoJ@KZ-iodjooZ07v-^4Ex9>QH*Zny+) z_gp~cNNF3{V^(!$kf*P8~m*xbd8Xa^dZ#E5M~TXCz^I;)V36NP~s1AXJ(Rv zx#1{cPT{TjNX8&+2OHO>m}`^Xk-inlAf~`{R)o2<_TOl7(snul!WO4j$(WQHkUsGf zY1`)&X(gTd#oYTJZ;w)NURdyqmmuZ>VI*uMl+DUha3=g$zW=B~{ss0q>Mu1yxF5aw z0Ds!YJ5!6rUq-W>An+H<>^Xw`pQlOe33Ac{l+aDLXgu;OBn9~?NH_Oi(#8Lh_IZW! zUs3ZJ3Az66Qw`Q8{AJ(Zo%LjMemsiv<2>88a=*a-7aN&RQ}}*wq~0jmGj;jHq-A8L z-Oicc?aXUI{HmoeV$=R&FXhgc(gNHUX#5eLIN4bhnHTyRO~HP#2{tA1iSWEBJN&*A z#)Vb*8zVbFw=N{E8?ckPAriWSI5Kb*JQonX>_?@47R+|>c2*HxOTzl^kM1C5cdYRD z^E7>VLRZPD&nRdrC1N%%Qs4`w&zjO6{^7XR{=_MXn z1^c6y`-}W=nou~1a{cLuq8g(f#m117tWG>*I zXUV=m-i?iSBK1adZ?W3Rh?10Jh)v>K`~Mc6laGwS65hMF_=NCoUm^DJ>khSO>&DC9 zsY}K`%gtZf_f9f1@sGazy`lND{eb+%{bWoS8A-d7zSxE$%Npt3cb3EL-FM!OJBgTL z1J`i(oX2|2`a@n)zm?YV+T$|flRb{N|NP6IqBRZ5zVl8ye@HFbbI9=M{JzV+iEwd} zj{+-t2x*2}6V|~%wzxY4&Fa9z|7LLcAj~>Hb?j=(AEz_LP5Eh+byjNcE zT&?Ih_Qugv!nxy!^Wkt(z#B(i`DSRmk?>l2Y+kqu_jocZd*Pog6ut`K-8tLS&nu+A zEI)p)ZWp8X&)aLsb0tbxin6Rgmy0aU$Qk2Q3YO!1qXIkg^}JPEk#+1%_73wXZ7ipr znZXU5$?U_&Ex)|g;kvj_j?Rhf2@GzW61|zf7x|D=-o%v{?Mx6EJKA|rWXaLaB$08W zo%=Odu+=GW$^AUMHXY7$O`FSqO&V1 zQh%M15Hf>#rI)_yu3r-fBXeX~RtYbZNM>=z)>*_26(AjNO`58CEK4r^VWh6*TAq^> zO;Mf)$XI-iu+>RV`bBQ&8rwd3;md7LNOasj;@?MI&qx0o-Z)&-3xX|HXVPCz)kPGw=(4ClpznG*d#8_?_~1`0nHmM(cLI z!}qp{MDH?PVz!ws#i7Jb(Fdw%KL=F@gB(_8%`AunCmzhAz8LAs*J!r#9ZyhFQs{b;y` z=@Q!Swv+9VtiSpG2MYO*&i6lD$Y0J;r471-J}BgWkJ?8<{2IBh4CC_s_ZIS>nD5W8 zg!}9t$@f24$bU+{|NDjfr|0|gYaPCLp2_#;SI>R^bMpNU74m;R-+!O=mp6;0PG7`d zo}qd7fA6twzRzlTkoSl7^8V0=rdRX<(<^4b=~es#)2qZ`lNr0mWR~2`8nw@4mO4Z{ zW%ws^?H9x)dyg@t?uAXX*@z2Gi(}1eQ8LzOQlgBe=iMpM(1yG`~1AT z)bjaxc31oSy!>5*pX^z3&C__vbAgX>PgD0tS{C=7s_0%&=2t0ObK;QxpT#e)jG}$HF@w{mGHKclSm7J$u53xsId}K0OjlA1vz-@AW$;*^|v-MJdC{pm)BRS?|-r z@pBzX^WvA&UB~%}y{puLyT*M?{BmFC-4F8HCh|7WxWjdeh98<90sgCYSbdj{r$>(l679#b;z00oM*H&R$7vBIzJnb1j8NK3`qg!$CH3J?OX5$bZkn>2@W(H4 zW)zCEOSC^uId_zONQ5|T9|{%ZKRfIM!ZuEMN^#Liw{0Rd$UC^$%X8#JQ$AXraLYTy zP1zwvZ1}yl{PNzP|Jr*35yRd|;<%GI`&7KIJY4#&Ulkue|N7J6OcD(FF2iS zn|SXBPW9@dP#ggpM}()f_U*Dl@suDQ8#DDQ=QMIUAiFB*d+tp5f)}U1F4Cd{;hfCcTwCFWoP&^eqP@pYO{ej@zQjpm-E|iK0nzvOP%b+PxfT~w!L&e z;;lK`zy7Ts71WjcUJmbh5x1O^Mbb}Dlf?r4$#o>-IQzaczt5^rwNcoU*xCdJGg z9o>a~f2r8ru~kOnm-)keKZ4&PBL1*1-<>3W=ZwkB_`>F&@hWkaCdVyKaQglQxsD0c zr(A{eFK5H<^PvT_c)`5hjre6;MR?aE9_iIrCjR;Ll@=99kM`>8*FyExJ-@!rlk$(Y zzRq8wzPxp$AiWbdJ+I$QAU(O?%t_nNnVtWP&oPgqlV`7ap=#Vy^X-Iqd8avfPfXxxU#yJ7MFPS%Eook$`Zhxj1@NA6! z%uJ{KIuiU1zZ3G#STH-S2lX4tpacPY!^H`m8k^`m?mcS`$kRvhE9JZA z>w6b|{`9`r^rVbaRhPmq8|Q>Sp})CtiEc)|ZYH|pR_E27yr(C#ty_kI`}^k!lYoC_ z!Vi@DC)Npe4amax_h*?`+~>KNn)QT{ddhTuEL6Uo>K_UHV*Op-b z`BH7cIeD>P|8Mr+S$l7vmVmvCd5OQ^EaC^ZZo<@4veb`v7IDhv&fD9D2`lv(PMeLr zJfA&dV(L|OW}8Snt4sJ3My;HddVN*uCyg*}zm)aoGn&#pPnA81=$mPNr0sZDr`%b) z*2<}VRer}ZGjzsYyU!BFbA6h0-TXMFKVd5pMz1r%RVpb{{g9z9&9;H!Tvn zKzug^!?w0(+kWl6Q*j0xx1R(9@)nLf3zIk09iDN|HaY3PIe`I@t`|&%O|iTu(31Bp zy?U&C-raXc!oS=2Wd|j#DScSxc3RirO)s9d$XIjpRFg1np8oLVX^zd4yqhB9yDm0` z^EAuk@a)UsJ92Z#(;rSCH`4VF^7Lzdo@CaMekRY8?em<_e`%*43~~96<}s?nohQBV z(Ty~cv6uFe_o`SOIA84^l>3Y>JKF~=&ck91B`*yefBgs;??HOkU@jR0skE`>?Gap?$;>ixRdQWe`30k)eyWF1&tr zD8IZHsf(L!y?MHi3+ZmLI(MJKSrIzPVlup>`W4>WruHe z8rk=38nPcrJt^%XrI#|CBhGAzv;U>yj8IqE;r6_z6wCWZHg?`bCia#I4HIhAby^cL zHJuo+>0x4{q&G8C>02F~HYTo^q})VOPH*INX_#8)e`DE9EGztPEU&?m^q1NBl$ke7 zZc-o(t^#R0DWf-^T=ARx{&S?$rOFz{vSic{SwR{T z{vYe9J^h(GM_QqS_UG&K>&e^i$+K0-e359Sd@`j4DTxz9t~x%36kKP_Z`Q^K=<#q$rxTYJxcZ4rMtQ;0)I(6h2M^k z)N`Cj{eZl2V_Golr367H;YG_*_lb?5T z*D|n{xw{OXLHw3es{m%wP_30SLKOcc6y`y zcJ=yBTlBHyDLd5ImM{goobUwlE$^DR{YK(&`$dEN@RWvsg!@*7unLeafvz+2>3AGM>i} zXH8^^smD5dHLfH|krI&KJje;xXI;-utH*nEvP*oC($xsm;|&| zo7l2@YwkqicJB|O=z~|8u-32F{~twf=MG!`Oee~=jXSSQL+93Q)qm8jw6ElS0XDX7 z)0#0R-0>(QOXh$VHSQ$-GDJ?eHooqCmFQk7q`SiEygso?b^LMydA^){AC=b@b@Po^-3_7ixY2(j^);NEPH$Fz1YfrC&F8$ zVk2YL?yEy#d}A50?x^+bKmJ$yWbCCrynVP^r>C%&F_-DcPFM1o8)`?3$*D{&R#u)h zIK_Qq^fdP6u#bdG^31;-Rmb^Rax86M^IylRd%pM`{m&b#{5jzN{!2XJR2{Sb?5%D* z)k}F}Ii5IVEN40;HSd{$Sn}$vPX%Xklp8y#Bbfyf2`70;;qMOQq_qfygEE8tb8NWh zieK0>Qt4YlDq$qU=U}Pf zRNJ1HN?p!i9Y=l@)-6p2;r|&1fIVjz3 z-edhgAS|U&`2WsbzVCjsNHVWZG~d1Fp1YlU?m6e4d%yeX^P(F4BwLGkcLZr2c-Gan zrJUfFhS$RL%A_hS1|Cer8>>AUK1B_YN{%*}a}L+gNj_!TE1=!MVLocJ z2-h1o0De7(?{LtY+OKeu6p8q$y&|mA>y6i%xb$8QajWn#A;?~hI!RX4feR)uN;EEt zx6UC=*Aq3+6JCwx_afa+^S`yx{BJ?)4U*;?K=Ta+G^bQS^IA#sTF|`KM)TS=Xil?V z&>ZC#(45L8nxo8h(>$ZmoZ7q=&8fY=E6pQo(0l`EUMp#ipHG4gNjp?EOA3h}Fwj zB)m!T&L;5ACL8Z;vhfbzCqO-)Kz&>BjI<&r%~m`u&Z(m--uH(5b;i3Izs3xN>Wz2t z`L5{ob>t5qzfP|wOnOBcsSQPV#%MEfLXEH#8V-p0i&c`s4>i`C@Zz+lHjqC3mZT@0 zLZ@3T92I1x6Pp22FP6@)97r+0pRJhx@z`!s&NbYD|l;%alHu- zHEv#$4paktCbE9fSKMNUzHUZ8$&#e>14!5H4`l}(1f2MB2ma`G4`Bz1nc|aaihf%) zUhP5J8RW6(_IEbA;Y?_F7x$;3uhnX{ocGo_L^|r?eJy-uO|JRrUnhve4J&gK2&Udv6-AC;qe6$pD zI3J(dNKzW@tKA_qBlceu59QFN6KIppLpW(7=UAkXXnd2LOSn19gcD5_e7gpx*4>O+ z$odfTbceA`ODAd;o4=%U1w7J7loVwbpQm&)A@SGi&~}=Ob!BzsxL*$Y(C*)(^TT8T z(Mek3(ffcydROt=F39|y#*A~jF;lk9m?_@@{u6t~_--O_8>zh7wg|?THQe_17XRJ0 z7w4)YgS*9uAKi@+r#JL=nIpbi8*$5@_%|q%Y{5t^a*{m6Qm6qRe~$@o6mVZXj;HQ$`kV^?Isxymcf0}ce=+g*8FADR zHyUt;yU~a{uQTFh`;4Z@R-EyoJ=i^<1j#mWcIHcpPW+wqlg=hhX8kXu(Q4F^Ss%1` z2Db4BA**f#&ydWz5z^#F&NI5qqEwP5q3{7{fdi&axCybFY&wDX`6sAP=vU<9`V}Rb zmYLG82Tc8Xlhm)&6UtxtE3_3)nh)3?tE1e@BxBgg+MBfS0j-alk%#!w>f_VsV>jN? zC+q)d^z0R~hp#{nX$@`NQ zfKJ&Di4^fsO?*Cpe}v86h`R%nMK0}eSVL+q97Z{6F5H_p7Y2}~&xKc@|4J_0inJ!Q zrwt!br?=u7CO-h4?EytM81Biv>;o(`aDx$Y-eCCs1Pcx9M{K{0Mf!0clH+>ln1GW` z9BhD}M$lje<{0A5Z0a!QK{H~_X6z7Rhs;p1iRT9% z-Q{5K2c-(UPKnnEyiVY4x2?b_mGEd@DSPBujK%8^4`D}#?90f24{u`AoiG%l*+{3m zV0-w5wH_G&HFzrMq^CBB+@JwZ1$FdPZs|t`&~u&&n&_!AFZ#<=D`cSKcw;-via5iOlK zC_nw6mQI|Lmu}q5(}n+oI7ZoXxCa=x1P}R|0atydJLDAnkOptk;4K<_zXoqL;lAGTkoanjRloUA-#oUCp!PFA&QvS|S2*w@M*w#lXsW8Kz+ zbz6^=F;n4g#JWw16Tlp!)j$BYVF3NLY{P)fHdON8S}P+b*X76s{uZkNq06WIJ(6>$ z{M~uFpx9d3>ri79X{0t3;Y;I?IWAL;J-|_G#9bP^+k_V%FQpIcYvo65`XCH?>iQsH zoWd&jl(So-c?>utgDidUjE&~cfaXU)oFBSbuLGkD@=j@JO1kiYY0 z8&4>i{5sGh1bRe{_L*x$^vmQ5;Vd zwGK+3(2&w>{-D%s5kK<6M?l(J_ZNK~d57}G2|EjNY(kBL=&O?Ty5DR_gAbdu2{qE4 z>wS~Gb+66qd{-K?nKInvg=!?TB?SaOL>hZ zu`Z<9edHgtXo1xr-uet5haG;rh>v_2d4(_FxS{ut_GWgWY+Zi5((GTT@wmxntM}+l+Wc$cR^ljkqUb?00X+x|e(_ z6QH2wTgfW=O5e)uNTq#8`u7^7*?A4`4r_k&kAv6l0I%Iqgx6?(37Xzv<29N~`MmZz zjo0p2C$H&#wZG2ewMSH+_eZW&7RA%DcRpe3(j}T6?i8l-bvt{EWo2wfj1-ZW`H+SfJdon*UMT%{x|fe2mOg0 zJ!RS}XtOEFl)XZ&A)5p3EMjv|8z>d6(^I9rLN${`f;J)5+S{f1OEmoi+He$4U4C3L z$28JNG!*i2hcTq-DWaKz#+K94j@pWzlg=$~ompOer(GaB!I6L`CUZ}G_|ZG7@c*u}4cCHyLB35UW_%!H^m z6NJrxBG^w*7U{^T)>lcJA<9?2ihgu2eEvSt{U-gU8efHeE8FOZNsmxt6mX&ci_2vt z1L<2)RR2EqNvzS{iy=$1SE8>(FPfuezcK06`aVf7C4VcCMtQ~B?v(K==>Mojr%gzw zeSM2g|74@nKY>n3&?#xIA5w^=%vc;T+><^?GhiwlLo8;-W)Yj!C`$G&{ks8mk`H#O zHOc8Yx(FiFO{@gGs_IPmBU zkQ&1z)`2Ok1LMZ2vY2tId=@rW0_9eMBaoFPfuF<^V|p3m!W!=Vlr^UJ?lnHergEn- zHmBuCh3fA#LQ8kTUasRlFCovuxwH}9jN9#<&T=W?a&wR*kgRw{HqC(wFF16`N~v5D z=FUjGGr&6oy!YGiC{^H{MF>{k;#pXIXMy*$L#^)4YE~b=zZCs>9r{Ik9+7+Il&nN( zq4q22w6*^?b?LMr_WDAX?!=w$xb3x!q$9;%U0aWupOvQ7d_V4o7fS0J{kg4~g)wTbKIj5hOp*i^%XzLw#>OA_8$)gb;QBV1c zS}or4od#UVio+&6PB8Qk0gT~|Sn-y_I9Gqq>IwZ!Mdwa`N-%WkiH+TvT-#-E10vIr@?sL2$Pf%NYy z$SdrXMMJlZ>Dwat_R5pyID{G(L66mBu(DNkd;ep3_R7DYZp+?3X)H?lO1=6P(q4(D zC0{>d>(ggor{us(WUu5fTXJZR-SbSTe71yNE%9CryjK_CQL4aOl6XtNTPnb#RDqX8 zhA@W7a63MkTrrfBF&s{a{ry`r&P2| zPnEU`wTWyMvt&){Ig08Sbz_auHXKg(4S?J(p$m``I ze6Q^EsoG^5-xssfpEKz+)wqoQ2{}_-4k*6Y?eypK`2H~3ZSnmnV_DNdL8SdD`ex~% z&slwf4*DDm=Pp3MT(Iev^B8^7FXzFz=h4C`o8F*Qp*L0}-U{$mfM=gElq&GfNxXBw zI|sZ;TX~c!@LntNUJJa}0?)ojM5zMrZi#m{@a`_aqf~)+m&CgZcy|HM?ggb(!kfxn z#He0W_EPROh`mM|W2N`fpyfPh8M)`Yns*4{j$#NHOYcQ4QNKxJfg<|M67%j7^_EgW zhuYin^jY{4#^U}9MYJIGopOOHg)56o)MH8oE%a1bBlVMXBq#tcDxb^36Z-m#%C>v` zYou*Qwjs%H`X1-QcdW8@(yLYYkF?`EfzN$2^348u$e|U;p>xJ`*#+$HycYXA zcVmC&F5^_?MdOs`HJWVtjLd84ujj3K44wQubn-pW$@ge{t7ON&A}`5@eR$V&vEgeD z_5L_O?3+jv`uZL&w*X9?pgORycxF;LD`|JS4c zuP@SnI;9}`|9SNPMO*)A%_#c+dRzZ->4y!j`cEqXtN*Vr(*GBV_MbRF^dId;|EU#e zy!EX2pWeN;y! znKaS|Q7)}%BCW^?*+G(w?}Gc0r-<+U2=Hm0s>_9+TXLb1>Mt^H;Tu-)NF$ZJ9=|$q z1&xjA4~19rhf?>cb@i>lvDVcyxaD)kaUbZWeBM(?Z$ufOn>-8mMT>6md4CZW&?U%6 z@_Ao^{dI}cPuX9WZ1xwmhiGQ`ypa>58mUDtNjveS4&oi*(<$cj{-s7Qs;`h<#pMpY z7ejL?iLz-fv<=F0JV(C_dk|qrBlpq0_-=T__W*WY9^j+i$j|Diw$r>8?-d~x<4fbM z+vzmF8&I}BzW=7RmvXIl?5M4}-SU$>yCsKySo}VN8(S@(w4U!fdHF8p<-4TKlS@eJ zL%r5KdBGZQ$jKKVCmw>Fct~pdNca(qK3V;bV4ggp%^vZ_2c?R6^swNP$%nxu58Jrp zVU0_KBopf(;>%F&L)f3AaT1)N_DA20b~aG@(TC)jl}F4oD`*9{DgVq0>gT6JP`60M zxmhufiO%@mBRhhpK5oA;$1UW02rX87Tt}_B=%XGN^4|_eJI85&-5l{#Z|!=vIDZn) zLjkg<@T76AtEF@2zi{a1&i@{1)?WHa+`c>Gcmz7|VQmaQ4xH^gzj{ySE4DHG3JcXg zYJ?(>g1>c7iQ;3Lqr}G~*Fp`C!d7d>CI-z^ijnU@*lXfG4l!alXQT1rN#jwiJ>NuH zgRMRPY-`UyqdkwKJ&)(LXDa*{EXl_tr&%)h7buV3-w(AuuD1;_y={E2+W#2$aFRSB z>OzMay1YASJPse!V`!_AcbkyjDB3FJ-B+!)Lf(B9^6m*K@16iBKY_9Rv_r|eCp1nL zXJ4sKOWq+Tmv_izp7t)>lM%MH;ETwbpa_a>I%Br>-ZjLmzdy@dWR`7jo`# z4}O7L#k^PFj$LE2zv!!<2aWH!yv^*W@qh=9ea1`l=tZez#xFhhIX+U>%sPz^RROro zxZ?KqH8c8d!UF#8!rv_Z&f<^m13%@u;{KlNCC`Vd*q>B-%UmLRU-RYW=F3-Eh5Jvd z|E&5Q)mN+ES^XE)e_4%I^EPlhkUBBo{6DZ9z3dLhr>b5+MGxX5EHAh}RrM{m*Vwor zJ$A^+9;x`L@l&|ngT^1az1V2`N>#?#heNKPs+t&m=#!&P$EE7YJ)>pL`>Nk+eAwym zzT*olXMEk`y*xeYWM6jw+?YlO{}ffx&8*$|Rrd!yX!zyJ`zCG~nRl}9dd@lm59};wdz|cF z-J!#1_*)FL)!TfSHSqChKzAFN_ZfBrrX2NFoTE_mya3BHjCn|Wno_X(bZ1@H~5B4?JbYCAT_PM{~ z`Hbh66_=|2+5H*!cRk+2&Ghe3GrLu_dm0yKp>daI*d^58H$4p#^b2l``gaa=lJ7_|LO9Mvdzv*6+D=JlI>Q&4GMS# zrzyO+)y|8v*pFjSwjo4!@NcBi1u3p`Ua5S>^Hz`rj>CVWY7QD#D!qNjjk;>K$@mVZ z*Dm9y6(FMHrxpL<_FizZ|F7a{WAtp9ac||l#*@wqWsaY??lrDB9W@WUmu=yBF0)qv z2(AKo-s7nqot|+TKXz@n3)?rwP7KwhitiXSRv4UVcB6qFkCw4tdH&G&TW25aOz*T6 zdx8e)9{RZ%e~rd(tGw)b48;p*?3l5!nzayU^bhd56GqZ_9#e3|cm%(1GK^2)5i~xF z-&x~j{GKxIM@Mc2;spL8DCJib-Z7)Tn%#+b41W((MfcNB2d`*IbIgP*bc=o(7>$q!oxv|G-T&k#Ig8~DS;MuAgT;}o{%%c~bj<;3*iDSj-dV3{e zH?78f8ytA_6^4@Zz+_8rxjc3spx(ntPt~WW-PRC`>e;9pZ zPUo-PZ*pLU5>~krHNK(ZHwGMVILwTq@vuUiVab)9+>Pq5l3I{Sa4PzH7yago>HI^yQVwE@Njs z@8cUVWGm0H^N!C}p%TZj-j6%lZ^fK!c96{RvcE*u2cO)vceIa1sd~qzla7_&fE+(} zZ93~TzC|6_v?1+y^=@K<(b2QdIcj#Ze=!`7d)|r}ams1@%(D&R*&i4Nri@XC4?zB37x7y9a(cEA%|*}C&i8q~;{GB{ibH3cuRNPhKj>sX zbKPe=2u6QX#RHCym0j6;->C~vtsE{l(kxo0B(0axchMjhh<)GfOn>yrG8^>tm;o5HJA{9&Erso337E_y98c zKSBM5)S#<3JS0glg}2k7Uja`*{*k1^z5ZTy$as^R=F}g!ziqsw?DBuWcCXrf6aL+> z2k#Ui0|w>;p5JSp8Eu|{K@N6zd=Z+ftXxPtq&`&fbEA2s%=k6t_8&R>z@Y4?^NXIZ zyMX0d4eJ#|4TqGPqmG}F&@6wP3r(%qZ&bb2ct#Y9He*bj#^tJo^bB|nuf9O;^gMJK z_ZeKS@;-$ZLm(wiP_a&tO_eh?1L1+$4>~_t`C+^>+!xV)3$Z{N0AXoyHF!7wGostp+3l-hQB8kMUMWLXweRazEhtlE*tUI(osV zt#y|F#`9UDWt9Gn;qRSJ*RLx+WI!hhJ{fg-zVG@I$C$I~yRM%a@116&j&HfarRk@f z?5&k=H>ODwzUGvHOBIzge24KMq~QhU&pl6hzUcA(*2y09{IR1Ca<5E)(0BLOUH3Vj zDceIWkjW1lmu3s-z;45}R#)}?|#z7*e@xQBxH_9CU;kw6ole78R z!?<(61mg{kpL@JzOdx@d9Y}MC*wy#41gPC@e3$H^HskyBIBC3r=JsJ;v>;_O#`ih0 ziz3FOWHSwrC}?J{;wZ{=IwVkTF&?c(+9b-QuhuphKdhk9`wQT*zowu6K|k-OpFg9Y zH_^{q>E}uM`E&aD0R22mKOdr>dySeORy^)`)bj@Sqt!pF_({e0s=izGeb;wk{dvo( zMH9w{_GU*VBw#|oq-U95WSnM)MEW$lULj1gn-pxH1*))=zF&noC~{(oJyHEeNAt>jIn&W9 zt?Ywv6PPuTT7aG>4xp;iGvI;SL1fjEG6xCJ_c$+4_d%rnAIQoZ9KUjZ1H=7d8T)tF z9~&QaHvedJ`_T$-^JO#P3MJg`e6i}EJ--4EA>o@rCf!1 zl*DBE6{gWQz-?OI!)(O))hbcsJIfe}m=8IduRO_m#k9C`=>CUI@L_h5*cz;%@{rYq z+_rWeX74tHK$W7hc}%qRIp=dA77T{B;gF;O1*Sx*M+i&{?pvC%Sjmo0 zx}U7}Iv#pmujAj?`R3*o_E#9WnO%F?6+>v^FN+2W@!b4i8T*!p=>P2K)ni8ka7;qNi{?FmY^x_B~AO9=Hd-0)GEetLvzTj{vQh2!1cnI7IkwP&{?oNUCr15?y znYEOMhhaaP;Q=kobrZ4^Qkn5#t`AU56LBWHg>$0-vO&q3q@~Ink5#R7w$64|e&Uka%3TK?*dAx+$9On_*B@|bhx2#NXRnKv%C8%m4lv1@kWEj76dD-s~K`q1K=bq1F z+d*0v(`639&@1e`0YwDUmC{+3Pqnn;dt{opMa|ItGOu8^nKFl9?-jhp;yvtm*mz*& z0(*^^y3?2{N)n8w#R@bH1CBk$8#T>--_YutCU(Z;o`wN{RTgS`*yD6G-s+g&-Ph0u z1In?&1DV}@j*IfIVK;nK-ow+US)b61{o)a)64I#MbII{^S=!iC3u@UwFav(!al*!b z(R2R7p39@R+`OOvI?nCp&+EmK;6AJj^^*3Sy)u1bf~DZjTzYyTun>0}zfa&@&bL(lJ1qk61YoCv3q%<8O=Ces`z6vwbDYfI|U=driJoB<`XKtnfc5b z_lp{DQjNiA{ZEK5wx3rYG~NPD=VX6e*?CzSFDMA&;)_?(z0w)} z)4^yJe3dUU%4EmBz&rMRgPmbs5#G;kcObua8rCMYJk2q_Nq#!-g%vdT&7K=!bD_a2 zJY_#jWB8IVRJ&;okDfj3G`{TmTLUXB5*1%?VlnOf0xlGXQgyNx(UnoQ1&b}1%j8P2 z^1bMK56`#VEa}@-PZ{hwWI|E2)ELElxQA9o@a(ACzFqZRV`YUMV%}$YWz(q4KxNbA zbPp2!O}k=~nbAnP73BA!(g!8SP_uDq8< zr5XNQZkJEv;5K zJA|&V8)3))y5fhfAJCGfTv&6|OjNr~tK}bXx2|Z#C|V(m$_;!;y<3pyS^RTc{0O64 zxiCW3p!88MpQc7aBHdJ+Qkxw=B(Dm1KaH6q$OG#9wBjEPqkcmJExT?+HJ~%>_eZOK zW;`{GD28OC@voc#dQ?-{k19S$Ljs2*m{Fsr7?R`QedDHTDrp+i=ohZ%j539aa^-<6N<}A;wSp-e4w?yTGL9USgb*^xR1_*;Dpy_sg!YSN%rtvM!E3QuR3+v1j;bpEPUu zMb+~LbH>U`o&ZbUpB5b zTy4NT4N{c6JK@EJhl3c%V(fdWzl3{A1$mA*+3TxcAgbNVg>xNw zj4+p8VN&ngRbMeyBxgVt364`j?F(F?4WW@38`Az?uKHlr--v0waXD%~&)%Ui~%Bv#PyZH)8j#&iD=IBfjU}!`k_?9kY@4#2&#P zJ^x5P>8upRpODW%`J}yQm@@1Ec0W%)Ea5@1e& zl7#)3!ze$@3|`JI`Fx|ypJs35<=`%6P6I{f-4gH3z@z-nOZ+#YM2deNe^l=q**kcD zs4Wzt=XH?Ul-2=Swc$yymt*bT~aiuuz+0&EG-q7=ae753A zWw(MV1gCN+J^(X^XhP2y@TBl4I8N0wjyU0s148*`WqcMj5N;Z6B6&i67va+!e-69R zgnto#l>asCPk8*b2owAs{1N;f+~`B)+=nkj-;F2D#m6D?hq3z>WQUoODQ^Ls@?FIr z<$D))FvRm^Xb_y?0X^T1l8B=Cx+`uX5^Z`PzClg@Q60GVnBUD#<$MNzMBmS_e}sO1 zne#UB&*%6&cH-@+f8u$bM+;v9oa%ZWEu(UtXK&%KG9G>hxZxcVZt?N+;BLbGJaWDR zPYVB7)=yz2TU40%hw6A4(uUgcGW6HWXp7Up7l`xXbcROY{)0@TK2y)Fek;zZ;dxa| zahd2b$r(Dcpi)Jf2uG#AUe@z7-hNfSsGDXE<=w^S)Xxx7bBZJ)rELUVsV~$j^&jr-Tdv(D(q;B4Brj)UOXlb(S_Lzr*S$5f~7z*^fH|b zE~aytB>GI*bCa>{diDP&s6aq$*5C}Gz$)yE3wpzeY zDz}tPCuDK8Rzi3&MeRrTvz!%<^S+_DZ0gm^>1--F4E|WorqBrF%ALt%m#i)zS8h3; zOJvh=;x4oj(WUf~WC=6Ednn=Pwg?GeW+^szn8>|Egr~rAHVs0ctaGVsj)s*Zo)_Fw z-g>C(ke@}{h6A1bfo@;G*A{5)4s;F&{2hU=u0YQ~psOw5>kJI`2ZDov?twsSPhhY+ z(9<923I>Mz109`#_Vz$$Ffix~40H#&y8>N9fwsYbZ!j>}6X+fe40i;4-Rx+4PkTJs zHQU+R(-!ml{PEV#Zhvb}M_Wg0Pgi#;+1b|C+6jd2wq%#Ty{oGu*4@?F-R__5^7Z(A zG5;)!cD4uFhXOu-VAvn<4+nxBf&QUDw?EMD4-5g zz=zg!(kQf}GSnKR)}U^G4~T&ZI;rDB$j}z(7$$NB+o`@DG~6HXwFWx7sj?mKCi z;%OXVjw1({>j)RYtWrElY&#%yokw~htnqV#en}Yj4@`t2c#QRjjx%Tf*cfy5PfkWh zhFFz&M*F8C$Jkbigo4K>BEjg1U?@B?F&-W7KOSV2{h?b1qTTq%Jiwd)#>j~v!X(=d zosFG~v1%T^D8)f-|02Y0W+{`%%!%|}8e}jtKfkC5fRmp%Kls~h2+cvS_?gMoa-63kHV>iC29lGh9SID z$>2&N#pRMH$ulrDGBy;AoSY1@+JR*VWT>0j^l6dm=8#mD?HahSlX2m8kdgJZ0Euz#|DU}S70G6Jn!G1wmo-ZBw7$tnjY#>az$ zk>C*X$l%EMEhcy(#I{OsbSO9&3igLFMiXOG7#%ZVWZa%mr*edY5rw?Rgxx+889Ww^ zOhm^f&_a}YVq`GLHmP(`cr+YA3(+Jf;!r99lYwmz;T+VYBn1JcvT4>Z7+bhusUeYB zSV$$78kRB*;l<2SdiFvC#^78!kz$9|!e}_3UOLmT2z3Bu)4*;5{z7J{VK%*xY=|kL z%?AmBo|@Azo5?oJ?9aWD)k)mt1yi=O>k45F%enNzX_-6Fus_E(4#pN^@$?+DPbw$6 zv|9&VOvDx@p`<1jhEnsf1!$dZNjm=9`uLX|8ayaiN<7#?uLmYa18G5`( zPf@hJrxIZG6jXzux3EMri!}~rmgkZU#1}8o5|&7W64x_35KM|zTFPI2;*ykOdxPh z-B5Q^Q~1IHqz{D8;9M-1W937^fvH=Vdnh>EKQ$I%6+^*@kOY+?M1r7tXe2DBCPYN# zP;4nSvaqPI zBO{POBJ7p^*?s6s20K1q{@gghbsWW5*_L=lP>2MuPZMTyTDI>4G3qU6A-i zvA=*-aTttE2sKv0BP7sjg6F_>3YFmtY*E-VLv5tfp}U8M$(ZPejnqo!Nk>;8=nD+B zl5N-3Po@LRvLRofy_HO~PMA3`s|Eu7h{7oH2RePE?)y8b1Rx9!2YQBBJq<$?!@)-^ zIuPt153?N#I5j>xK5_eabTWj_hJ*@{BNb*Oe>G|j}L{9^^XQw`LW>G*aRLEQ=u^1cq}zH zm$AvZdL48zo0+3^gE7J!SoS(bhM99@co+dJghv2zjo=@wt8#kI06xabM#f-OxktvK z*Zap<#mG1)1clEwj3mKA>DhEjnmQWbB45sV__9&7c@q!kXQ`0Ti>!u+z?uTRT1Bbv zY@>=1kpzO5gL0-GsWao2aINLAi)mU?l32l#Z)5?(0a1Mn+79b)Ryl$-r6_ST1urg2 z+wO#1>Hq`dB`{nR97!_cR#tl}6bu?;joL;HA_uNcg7mTTnmI(78z`!*ru_OflzsbZkcx(Y&k!_+@lCI1wFIZ-Bu@+c`%dEX@PqFgD>C+2*eXh6gbT+nlCY{K&45XLl zV~b7b2kdQ~I(Znq?0{K#Uea(Zfz`!@Ch2Kdr5cIZ%eI(hWpXY3xeE&kGGg{PXje5ayic?U5oLhO&kpY+^scarpdM@&sLeSI#hNqY9(n}VLCUaKw zvdw1d@=|)PMXXYKS)Cm`mI0}6P_Px9n@^;3Y1l8rnQR1>E~Z>B>llNG0FL1NrA%fn z*OKklGUZx?nUjMplH`WY34bqZ=GkW9ZAxWV=I2_@3IUPmZgcCgc68@4O=X0k_$DinO7jrN{vdXjM5d?%Wf>u zPBSBo{Wv^%r5VLU)fY^P9ScciqC+%tyI8FEg>SHzwXM}4l`WOU5S~l(soA?$CQT1e zhb%IpUp?2D*=#^B3#^qjN!EW$ZYkLkUP@}UfwR6wSxr(WPAj5{ooZWRBAyc?%gty=-?;xb)ogvYiFV zG+f-g>}3awCR$XrPlg>Gi>XP$xfG0J%)F+e)o?MO$@{&Av$&z&@txV+}Qc`wj{2V6gwx_W6|wvHDQt_qUh% zubE1{ta}}K$laRCVg@#am$IqYJURZ>H-u)+^>ryMq>LsZ){;InbEk5=alP!8b@YX6 zu$EOf9M(7WL_x*4g;SxN7;=!;qo}lIE8D zh@`UcHo$$VuPuky-5*)rP&$_oBFR?H`iDrCBUA;H675)M9UNPCgQlZl43x>zVoEDTn4-CosuJD@E{`k~XzraUGkzVJ7B1C7fhUYyJqo z^))oz6p~_C)|&ce145~}6t+0!L?Ly+*Qx6!nQdzIvSaII2V1_83@z7n|K!@jPwN3~ zC`$^WB))5N4TG20l3q5r-adqrcZ$q|b7|UC5Tc6AhF-RAE-qP!#SFq{)&Kw6tZNvZ zQjIblYwI3o$ylZ~9?8jmrIMj#@}LRN!#XBsK8vnp+L{akdjrRf^pR>3Rj*sr7M8HK zDPmSHEekO(ed`^>6WH;?s@h!HDFR{L%#UD@_=mjV;U?P7!VW?&vs*evaf7r~#*u~V zX4Qg)-=BQ4v>IO(HIi9OC)A2~HB7ZuEx@@wHoqulQWG|hQdrhvJz-xAnmw}N^38f- zPnKw?j-FYD0xj7k4KqxeSHNs6-gyhNWUmRubo2`MYC*4Y5D2nEAI?GTERAx5ts@&m z-;mluF3AanwT)oEz&-~}B1>fAE}@SwF0`Ghc29rjjD2});dR&8hXYYK{ZwL<3);JW z%)UISU%Ewo%AMYlw>?1(vm2DF6;gCQEn!WRYvEQ1l~#iH3%V((B0Nc@I7OUN>1B2a zRM14z10Xk3Ntdm`9tBxUpM`Lxmu`{rHpsfx>M=KTo6O^1B?XBjkU;0_BFy5|`z>%! zV9QS{UhEu{YQB|4RdHQ$L7_Kit%=E{vo*i$E~EUxnpn_m1arYW%GgS#ttqvsvhECha{puf8H8XEUeHpxbQ7SL*;k|awAFDf!_K0&HAZ5? zVLf%4<@8F2`0AM~1w)f?b!HUJwQ{VDZ$DD4{LrOaM1p^PSbglaRVRYrxDu=_MBweI zIS9yXbPG*olA$Gx961MMQv~y@uAl|#6n0y4O?;NB ziDUP87H?TWHYu{#pEtampzXfdWvPnu{n4w{o1a%!z8=!>hUYJ)^6LtVgZKOlXOr!G z)$g9Oj~!l>iAvWgdsl+Li zr8Z|v=^x4z;wv|?juw0FrLculT36wkgSCVv5qZLSn+ICH5{nL;YQhnf96#tG_nAuw zRvl9ud{d_t3i^?cYCq+%j`GD(ijsDQD&O2#7wsWCqXZ|E%CXw368T%6=CmtS7;W)u z`}HL>z*@Og-|g<5H7n=KE;vTSIfD}BR*AavcY6vdQ-`8dCDh9%>*N8s8A?b=Rb$Z- z;PsS8!`Eb`V)=Vnu=u>suk==Nrt3K8^(Gn9MyiBFTX!*P$n2ZkC8=m@PD$^J(0%+R zCOX%+%8FaOU{umr6b0$;kCdEP5>>wIsl7{5a^WX)*xorE7iwE{6EsS~Xq@SBETOR^ z7GC4R0U>(DrKI0QVA9r-{x)yPrH37zzs}nvUqn`Aa9~N3xkv%)z)fYbu%?&B*M)1I z9xh=9TWv^XvBWc9RW9jE)H6tOt}1NAd+uv6e~8{!SYw>!EAMNR#NVA?V`4_g?+E8E zcchQNVlUw=6I~V9x?xLM#8J2s^OR>%$I43J@I47}P_Q({?Rb|^j3CbC;O+V~rZUO| zia2yzs!(ffRLZX`x_u%uw>+O3OPxz$zkJoHB`_r~l<=#GGV}Z#AYw8$cP@RWb}+If zh=a^{kAC4aKXFZ(Y!w`Jd~#0_q!GAVv$BxJBI(Cd^LTfjBM9CrtVa~j&%~v$ivrs2 zE>e*8Ccus&$&oYJ%z0$psEbJPUPqk{y12|=zXw|0@|@KuQ7CeGRaCyaSZl^F${P>N z4C4Kq&B9TX&a{k7Xcqns&3|ONfw`}TPXAlJr2!m`PsMN;b)yE9ge?H|;T-`hE63t1 zt}O*nv3S~-4=?hPMy-Yu#2p~LEFaQ`Hw3I&wLa?Y8=lL=AT;$FM{qgE>DXL9cQ$F+ znzYgsPWCkB!@`n=)mVtdXMu)ds|;_D#-O_S=~N9zr}YRVJAWUdK`)!mz+{*4I<|gt zMz4K51E-gKHC!uMFJydqZf-Kew`nzuI;|RImG07Dp=C69UOz;n=b(*ZdX-|kmP5eI zJrR9e_)MVJNbLj2eV3S7)&OQxvn{u$VmNLvo5G9731nC`xexCr*>ca}!TO1a?6rmOY))hjv>Lbdu_HQk&O=v)gCzmd|N(z~pRNz${Cgp|={) z0P!>%pGze$$Coa&NRwqKeHt2O5@+Z|KWi{FwBQPOmrtY;2oXq$DO~YE3%{Zz;GorfI?>Y4 zA9=IJ_Nvx6HdrC6=;a0~$exA-AwcTwM|p*2tWu{!1Gp5yCH5(q>p0%Eo;uFl$MMQA zy#-t?1JQwrp_8muk3~m=C)qYRJsW1TnR#^q1bx zt3cX7Z&MH8{ZqVzinrc}Sgi#>3cdGVXF|f0LA+t@Yi%ur`HR3h3Ss^tdD{Tnm{$j~ z=7YL%lQd!B)oXB<)zCIPOT?&=ME-vaAxYUbM`H^w01Rf^`wGD=r(CSpc zHi>)^c2V3hh2iI=$+fA#++l;^#tE_B1G^t)TSc0_J{6hv7ADYLCv<1pINE@lvjhS+ z%WSRWkc(JT(M@ZciY?pO2HXpPD;vh}f;I8Y5Zfeg79#!$VWjzm4a^k^hWVuz>J%5- zQS_9lsD7jFrk6d}L2?|`y(1`!j(ZMr&1xC~vL_-vcc3vM4JWF($NCBO03OA z#492f#bso;(al^Rvl=saaewl)4B5;hXbeT$x7I~zje-js&c}rO!EI}Fzzq@zce#*7 zd5DUkU2L;<{iqeI6^T={|12;(+(#h7H9UMVnTqkd^;}}Bgq6`bN9GLU#wmArXcTvK zL=eE`4!A{uZ4U>7qjXtNC^!ZYdmh7 z?iOK{6c+bGRPo@kDO?E>M3u+-oBbV~2#k(QPJ(eNDG(henN!1qlOfzyG%*#HQM76V zw@=)`%EM#9;3OW$>BgnH@FcFO8a^4dZna_?6pZdXir^}geF`u>a?3GdR&l?^Fhp-K zG#LU7!t6SQGua=)%^9I^F{HgFQfOkR7($Igz}-z_$JrJY#bqaS@e;oS1=MtrI7QdC zizlQl?nfE7-Js&tlO{$%pQ(ZHU}$6j_cWQoA-22Jxm>{oO{J3Mv0Z`X66YFGu(^4_ zs--VUVARUk#hkiSaeG+oi>X_m)P+!~B-@prl+<3@04L>bsEHc(=D6jWY;jS{u!8zrK&dWj;>zzg6$3A9O(yt3;dIK4HhtRZqH)xdQhF3*C;TUld^P=92`9%4HQL(q^C!GTM3J3&Jd z7CGBbi5Y&a7A2-u7O{wf2*p)d@f0`f$WUfC5!y2RdJXf-xuu5F8A4bBOb%uP?l`~= zn5Uc5xJHSeTLwi)@d-ND@bE>9Db`*vLTQ;RWv*M^*2Ai%#?5)js7o`3~@Vi*^&oWPwtC+LC}{Llq0C+IRB{NTDr7l@sWf`vb0^|SMe+CsdmJ|a2>?)K2xYhlHmyJi;Kra6 zW7ET^f@%bYE z(sj4@AD@g4j*Y-b!*qqY9)>|)!kaQ^LFJG7+yBHXtJ z$8bSZknJdXmP3wuzHwDc0Nc8-o*>q#4w0|k?h_Zl&32%=&dGg8R2T;Min4Q>uJ{3o zoirR}_`&c`PvcG}1NS-246w490XR1H&Y0)7F(v6$wiaA)V=hFnkw0VGgHzX`VCP#1 z_?9)_^X^$s3BnA|e;xMbwX$+|CEiAEu_+|$t*2&t0pTsTHeT6{eN63e(Ei z3j574t&SDE-4?cRI$CkTnkavGE_OP{oUvpQkYv(a(zq!?)^#-kk&N88VCAv7SazNs zxJH##fLHj25eisbWOevy7F^U!%!fWHhY+Q{ow|HWq9mCyWvSibcL8&>opn#3*t#bSs!EzCV z;&-h^vdbydVBWjxis8*wSRfvH%KKNVtT0?n6hSLFa9&&l&apGFk+AMTedlB8C00e3 z(!dVoH;KC9{EjGAE1q;1Q!ILzOWYsM%HworD|7P)E-`b(ad{QSpgfKXTXU=|fh^2L zztlK-N)xC?gysIGN}>f8tDq!)YbMV~rDDO{kMZ7+cS$I#1wbqcxd{XMcufem8JHXK za4K~ttD=BhbeoY$+*-~Hv0Yit>VO+13n-ddh$i`cqyi>Zo>4BRP#IMpl`y_er?xLd zb1~3Ugs5h86);pCU7!)PqL5$bM7c}+#`LJP?s zy{ZZJd`wJ0pJ3GC!AEm3? zqqrN5=2a0ix;$6Dx*mncfnOe43=KwFlLZb|!iQG=J%7XzZA_M>|F^O-nqqbA;0n)48i7p`=~x<7`Qs zg#6TKhM)D1Lcrh*hP_!fD%(T=r0;Sns#jv0LKpzdi@6KUyo98km2(hnGy}7#IqXlK zOGOvurv+G}-g9g+a!E?^+(Ow?5+z5U9AI1W(}j?=k3AJF#@;q7I9Rwz^6*U&Y-3$6 znMo9x|HIwtu_Y86Y%@=qR#PSEQgY*1e_4LR8+)S zF`V>*9mh7BvK;EaEW#$kWU_e3IaiH#n7713SK`7uL1j!u54qK^eZl%b_wS( z!;@?84dQ8@?`CfKAr)3v_(c`AQHSyGp|G72RP0+SY)8>Vk#Unu6OuG4zLmo2?NI&^ z4z@=D^Te;pw7XQg$X+eI@M0jhsu@fFi8u}BLxqD~noKyrfT*583IV5DV+zfUhfMYMLjP}J@1^v>Qc;-Bv;y+8Q z5~e{v*Ys=y1s8BZ6J{nIn_`;@u(&uUEx|$ZMqqB16BsKy{-8CPmxs*5_N>l~Ppa$x zSQUrK0pgXyh(ot)2#%m!qw%85XpU7Q*_z-~CB<^Qt@?3yUjCq39c%=i`X<7}EV*$- zx>^KKrRWWbRTAG+DWW-f@`$&Icb0!5fbr6lEk|BLXaVG)s|+|1#OjyY79`H%ZQ~)u zRMg#|Fhq!U=rtj8R|l_~hs1}Uc-=fMBn|bSN9j6k-iZ-@Bn_Xn;ANnNSU~}asE^|% z^dX1sh>pdU7ZPVMI2cD$ZE zmo^wYCHbQ2B zW-L`jtLY+ly7Q_+sU*J9lvpBM>bG2av28qDWY1QXuh!)C9M8UW%C-WC%|q-R9!sr2 z5#l7^B2L&X@llX#!T}r^lVsujqLC_=jP%l>i0H|pnBY+0H( z7ZLid#m+R%E}XnmU+2(AbO%r5r$JM4+~61E_wzCrhMYuZH9hGvMw08Sg2&F`b9Zj} zT{KpU02Bf)BB#5pNh*8Nxxp9?Orla&g|LuIh*X;quoaac1PyR_fTk+Cs6O+-gW_{* zR3vxJLzbfr^1Eww@UgA^TlX61)(zV;O7)s*;!(^O8OOFR;Z$&ymFR#C?cg<1%>H) zX6CvxbpbXrE4vdT$9D1^DQ$dmnw;Cp6J124*T zu6v%8Bs51A4@hlUtwrEfohPP~CSN6w~FjE=M59*5^lwxVddKJ-^ z9CaGdTytnJ{xu$6j9N}qP%7_74G+PsEEW`=d7Ajryq_29(<`3l3I}n!B_`rrGPrTl zmM`$j=jo+LRx_`^6~??GN=hM{1o52oiHK_anD?DijQBtb9gm2GapNJ#$y21T5fLs+ z>gLr|a3m?kp*|p6vlwM+)7ZmJF2Uv1JgnHfipM0MSMmsF^t$=N7YbbSLN%Aqa}`oE zFO;y%ymx-}lYh)LKS7sDu{wJ46Ny&a-SblERv;kO6MN@ZKdQz&^Okn5npfKcBN-%E z3b_(taZ45li(n3eMBoMJU+&(nM$}TwlxV49w#62eoCzDtE8)sBzfs1mEj?bPQr(oC zr?@u&WIMk^?H~X@RmkCb4py%Ky0MTC5+A>~Zsa|1;+N}+JFgNzJwW%xl4RxO@#E&__RFcy5`+oa45 z6&J_7tgK4YFs#muK(vZa0kSPR%sME9k`}mqgp!1aqyWi8Rw?o>laDI1aEr9&YT(n! zJ0pEmMxOa2t zHTEj9=fMQ5oL|1cj73(p2u}hyhp$PzG9p(WW+E4(8)Two$HCu+FU+wDJV9Vgp-K@V z+p?USI?TN&rKB6HtwrL{GI9vB4fG4Tk=EmyzJdT`=ZPe8`O5RNtd^1ppicR+O$vh1 zF<tO_T9ynC^`%WWy#3^(X28|7)@D6sNg32jNScm9z4IAt zih0D7OQww?OyWoF*?R>jq&iS1;x?(YyAU>T!IJi6H2eS$L4!TxbkerOLgAUgfD)^guwOYDbR7gUcM$L{DB2htXaw%t450 zJV;u3_(Moc5f&0ahPl|Q<~T~+Rq+_64Q-Zh;1Nyi2wWvR%CdAK!b58?`GwYs+=yIQ zxy7O>%gV(riX#_iE?n=8vvq85uEb5c^57~EvHt_AZ4poS7WgiZIlaqZD1t%hmyfbX zglOHzswk{_Q%MnS#j+X-nq6TVD5?ocQ5ta*t3_|%nU%9^Y6Rz(1%wP)H-daW7%=XO z#7wEiu82hgBycAj5>ThjA7_hV_9JetCa4fgPwcf~P-&L>8dGZ=v_m+}D4%8b^B8?x zm$M>zBHU<1B@&R-weKQ}?B@wZw_$4!V9TGEtT9$c$K@VGE3%(;aj zQeH5GxRz){U=8~k!>L?6yuo%!x|LGJ+Ss1pMS^bqQrkjeqSo_Z{>Qn>mMY?9H7sWi`8Wv!r02OnXiOx8M9uB@s0QBIWlhD>S#uV4EVrt z>ho$STLp3CB}Y71L0gBye?*~4wY^wHF>+kfhGKbcE|r3E&j|+vx|4S_8?#G5@;z!^ z30IbMos8>-bRLXbh|XL#fkMfSf%hOKb|1oWx>R$xitW^6K<2N@D$1p1+DrbtGlgn6qr zYjEpas|{V4R7@b!pcTO3pR8vFJT*&apmOk=#(^vP zg=3|1iC(VfR?#MNPfTBf*W00Du~9)UpwP>T%uOL^3RW(vsancdhJkA-L-U^jNKdio zu2@nVL)Bv2SmEDXZc^={K+AkrPBN)0gg8X=RQTA9Jqwu&1};;~_tV+5q?CkDl%L z>%dKKsh1_uJ&er z-YvI0pW7F}ZdK~wK77NZIkuSI7x1?q+$YBhdAbjE9P)SVdoBCyPaNysB{bsGOtxH%!sP#VsIhZdXY8eYnx5Z#(nF{DtQxo7L<3k z(-(_(&R$zy5K6eOa5Wst@XaPVyZy5r*Hph%hP4&R8`RzgI&}Dd$HLT&3TT$UtF@z} z+ZX%YO5z=BO>}m4v|d}sihnVS+LLHaCgWW_*VG7;FlX z?N8;T+7ewIet+k+mP2{l{l1Q_wnSomdAW8W*DYmj^Ut=mru^%qBR`2_O3+omwuQ30 zQmLL+F#kFkX5EEz&W)W+}V_vpuoauH-uBL^#hjr4nMX z*6w6?Vx3b%`bjCHZ?>bmy`#Hzebnb#bd8UDq0mHoPqMYOXPpyF6k6g#UsPImBH7c? zwa&hY(r`9R?L(Re`Kh}-9m)32S^qjIEy^l(>j9OO@OAcd$NkA`A)OpMIj=2%6aMQnv0ZwUybE?C$cxFY-IIS7=$eAh8wN)z#J6*4cGU{6n6EH9i;y^7=dC zWDTryR*In_#>UW-F3taV7)p$%VyU*S)^!*cYA@ZgF!;tdzh9RM>ge{zx|6eOQ_?KR zvNu#Aor!o?dq?{^D5n=9RhlX!-rm#UZ);lzpO}T1I*H0yXlj;-4=xL&-!xvA?u0vv3rNDT` zxdk~XtQjrbfz-6NwoZSSKYlIUGu46`;I=NmFE#7C7FLs|i=?O_g-LhupgrAPvDO}6 zavcJ|?4)htb8$GhU~-35BP zSVP0mW4L1-xe~Jw?eX|}auIrWPs|V9TVSBsDv_Qp!cTQ}!$T4;5UD19f>TassX^_0 z7!{H1Y-{iC@D*sERf@2E`VB?+W_vmksY3t5szp%UJrJ?J*;whpm(3@apRfVI1Nw#u z71Gt-`4Y*tcw$XLS(-$irxVI54po)# zcdp$`(+jM!Yo4dJE}CCm1sbog)p_p`Q3q0SNWMZdBR?-U%bU#oM9LX&^R>47V+C5K zcvi6=$Mg9*lARqrrGi5x;hG7AVr%@m36ko z+xBbI=Wl5J}eXZ1}-DrpvmBxKW?CE0GIqm1nxK3^N$%XuE&{Jz@q z@eidTZ)_Gk6>D8{A_#*{NMfop)e-BOjkm5zFFl`}8a79!PRc~Pzo)ySZOx7pEt47r z&6Dg*Cf5`wq5w_K^TktVhrhL_wSCPgnxC6$ZfossjVDrTN(b5$#G#brFpg{BY)y`n zva>zui*>IfFUda2(d}>T@Fm(y>j^orgtX+hxY@oU#v9z_Pqh_#sq&ddFTy%FE}+yD zf7fhVGO>z=D{PABL99C-Z(Wnt`fgd?$G%W`th24Vqdi_)mCMR)r4*bZp!W2%`LUFU zm$oO0ltlS_;2A9G*A#J_*YbC+nuJcGy;dqK-jhmp#Zzncrg&L;AI1JHm5FVJ_EubI zzLsn#S|$|`YmLqN{e_O1d_JK9Lfl$Xc5-KDvZE~-Taz@x&!o?3n>#E4R|I5i>DeLj z=Pzq)Wu#!PgGoyZIdN1qr+rq5#nO)a&i36iVv7Ro-)ArJWF+UgV3tMBm z67ZV93M@HfdIA4`XXgT+$CN()_sqWYDk=z~f*{BedP^&a3W8LF(3EOZ4T>Nt_A2Z zpVyE7m)ufD4wsLF^ec5zt;y4;`2Ljtk7`K`yFT|9PrOy1G=0SIou1rw8jj=!T2G0- z${8`3=Z9fEUll#IHh2~HC;h8U)M?VR5xh+rvireKs*|*5} z=2IFU$F{WJZk84Ufu7`SM*nk#Ec7&4~2&A&Mfjr zr!X4HUT^S-AK7Mx{S#cTk^lcJXz|FLk%Ncyyu*!HO7;9nqx_sH!+L&y5Yg{m$00L4jVF*P0wyi3QdANIPYdhu*>Or`3xHqdG|7O=&(ss zM(lR-o|gEZ=cR5_h7O-Lc-Y9@b((x=5&eyVpjo3vP0ATEZFg&jH4VP^zw1AUMLk9g zpPDmt^01z7K4E*iIg?6^96oB=p=sHsDS^?dV=+UYM=h+WQ* z!Tzx6!+X9{N9}kj>H2MppwMBHCr@KC>}Dc_pAdC@+A(=b&LlRjySwJXFCI!UQ>G8k z89H_F?)ozLPqRhepUey3DZ_f+7>8}r?=p(T^hwjF4CmvV-85vpe7RBd`R>AqoDo0r zVl6CTyxg34r53y%4d43aaO=+D#r^I|3M`|K9HIG8er1HOP5dv`QqSRhbTM)lpZ6!N zIBd8?n=j<#4E3k(ZaC4F{}m;iMB!J<#d->#{|_JhBTs5!pI{v<2su32jT|~+cgvN0 zHV}TVQ_7IN;FM8Ac6W(}-_Q;Jwii~s@}0_mf3v%yBH!zkvZnjIubMh#cYWRczcLLf z$%i|Wc(uqcQzQ4-*^8$ndAL!#xHXS zGtcmU<@oP8ewO2Jbo?UYw>V~DmlsEUIO1auPaUKN4not=ZiU!su9ul2e%?2kXKGzc zP!HqxOX*Tc>rx5pBt| E{$UT4w#$X_kfzO6|X(_kq^Y=vb~a30H9yIfG*T`G?TS zbTVBnz+|SX`G8{=^v=9c#jbyV)uxV{A7)l$r^KP_r^2h{?QKI znmNJ$y-9K$w_2|1oEg^BOQV{XsB%g;c3mTw;@{%>=ez!txW6*)&x!jbb|iXJ7UMV0 zNI101r~it{+^egvQ@V>)5PglIpcKxjCtxj>GZVk!dN^uvpEav#ZJVkBIy0 zTqpEyvW`>B6QY)PB^CI!?TD1137Hu(AwEeAO|*ntJpb6ZKQL9P5Sqt;XNHv%VY7$?)ovSt-*soab)X z+P%zAndAP~adUV`?XuG%v(|szUQxlcJu6Wk+tTl?*JvL`uDe9Nxq8=GWvMr_1%HX2 z3D*qk_cW_2em~z?ubbb?qn*d3f4A$(?(WpHdR}J#9#k%}<$9TYdQkaYLS>I0RC*^= zf`#a7>9}sI%+8Yb?mA4xjUurVW^BZsybay8S+{nUII@z3rA9}mO-#FYOjGjG($_Y? z^$&CWOT{8w5~u50(VHvr3!NzgS>ODIZZliE9KQ684Ufs)W?K~z&sB)H72^V7HqoYPvg7;uK_Xbk;CAMSy0}VyVztGXyyQprs zyu8%qQCH}jT&E>i%}mzswR`@lT_P)$f3IV!paz+?-frd}{ezv%zp2$FS}|FGuZwud ztchfNorwFbj?N1&>*B17vM$V;r6naUi`(P=4%@#8=?>RF$2KD&y(I3pSZQ?8Lykco zFR2-q>`J#K?*Aq3zi*55?EQngqUVQ>&Zclzn|yhsnf{GVG__=>Zc9n3z{Ge|{~o7n z7)n(!sS(5Ce*3QKOtr}RgU#Bh&OxSsc4AicX4GWi;@-;e**O=tZ4HJwF0Hkee%GBK zHM6_%nc`uuorW#2jka!0VyNe2&Ca?k>(ZpoSdu(EtcKk$mw#A6V#MEf{iXKqdR3&j z%!uhfb zwRV)O;O};-S;2Y9f(*Od%j!2e7`R|Zv?O^))U}hduKFa;xIW3HFSJdKZnbc%i+rLu zyLRb?ivpoMo&)*vNTjT!UUH?4S&+yoGssH{oh-n!4 zm-&IFy4rcBZn@4gFsL}u3*UZWkKm>cPy-z%=eGA}ZGnKM;2dUZLTzn|x`w1!hI z;U$!Y`{!Ua{A2QEU6DM*=i2?7mvwzse%7^F*CkDg4{ZBg+QM?pem}X`xt{-#)rx2K z^H0;eNSCS|;xs!sWB~7$4F=PFC#|jrmR{kEJtO*%vQy!Ih$o(KQmp}l6nU^wn`jqe z#md-KQd-22)n;egL?3_A?SUw`r3BAX(FdaLOTmUj->5n}hYxHw+P*2W!)XO)+xbu! zoeztXhKKvP-K{L_S_pb+tg8bL>1jlcNvhjlb%;ZsPS)bATXa?~iPmCuB;oIAn-c9{ zF0FsNY;?6IvKn+6*}1g@-Mdrs_qCe(FsgQeGBYIH2;C7D>!otfwu@I%p&KH@qlE?! zsWPS%8ZH%%JaghT+?wFcUvIOzx-1;eHIez5m;>iW3hA126-MXH^MOrRl1%hYndr}( z%)OI_j@y4i>AN13=0w-Lz|$J>6j}1*aUeXH_tV(t$VJ%3urjKYrJZyLK9_@(K6#qca|8u-+95&jH z?A|3^df~jsz5lG8_pX1G`nQ*UMb<;+K=VneeP!T=&LU5@3~x9OO=e%cLYIYA9~8WP zd9~9QRXF{CJAv)azWA|k_F58!`>1x#;vQ>}HFg)|@_)0vspQ-BY z#k+1f=V^CaJ8VA$NfL*^M=P2>Hjox z?fD1o+?U(pi5-Z%YGI!eS?t4IOE^_i61(8;n-7^V6wiwt+lFo((EX__niW2Tbv^e* zvo3e_SuVV;Z_>slI;YO{_f64D=T@DQa&udyS5CCH(N^&0!Cnz^_i9QWYxa_1b6tOo z<6pn4Md_PeK9x@K{M$XPh%AMTk@&i#!Jc9tO1!N5v&yp`$XaUK$5j_B6I}Jd<7wFZ zO7-R7_nTd+-eHRtl^x+sb}|=bmgszOvL4NP#9GRXVZa>O!hatRU##`h7i%zh(S|&D z(Z(CI?t8NTxS_&zZm4jbom0`_J2LKzSRpihUz*TDuR{nQ`-Llh>E~(IJ8g&FV9y8hKVlsD+m!N602reToI*E9^$ z*J~OE=>?jGL3+NX=i8~Ub4|XA`vsnVQrtg*eM8(oQQPp9wgCp7Zq`wOLHcCPhe3Lb zreTmiMboF)KCoMeu1@LR)tg-ZBG-Q}?q8`@-=tNCfy0Y54TJQ1S^x~v*afrTO50Rh zV2!OoT4DvUF;M8a{cixYj}9Ck;`Jf=P$6!avzrE_l&F|?{TN~-!+*Xx{&ZW zk+1ccsO7_;K9e*($u2{|=13fb`QtSo2Kq)j7zXK^G!27vk*166WtG@vFinSPFTkJ| zhS^5jUWn;B6|;|Q(eMFi!Y0mXen@ znA1$btHzjG37REnm!P15psWESCnYljBmMa!URz%?Cb!h9dENZUY!|&!1SVgCY6%)7 zXu>weUvbs?O8hL1r;s>6n=hR}(mf~AF43K=X@{{nG;G^p>9c5ABM*_(p|F`o6%bFW zd`Ak}Yfi+$k9Fezl83*PlAaXFG|x(Aj8^_WV~e31OFB#|UD#pb48%|4c}P6x7Lnu^I;MB-jRd89%+$N)MyJ>@H47cb)Gt6Q=G^XRR}qgr z>`-XKV#lPFFLw50US1j*m~e*vFX5x&rggE?n*wgyr2(!>%z#SK%e~c!le{CL_n3%_ zZ*>ecy2lK7+@ZTFNlM*rl}h)nvX$;>SggDs+V>_rC&$QjS4MpyNL?KjSVvLD(W*?i zqVv7~nv55vyIYH$wT{WBk4?D*tyJ686-%Yf+v1la<(-}i5Uq`&mJ{11z0h(uV^Mv# z6YFF8t+JPD;-VGF$5L*4ne&NbI?y(?WdzL9^Ki+B@@GsZibh!Hg^_cfNDX_WLl*MPl-o5>!g8RAPmaQ7%EXBpW0smfRYV zHA&FAH0YH1ZrCZ_4es1D*1N>%#L{AKnck-N5?99m!C?HGL0UV(JX83PgcU(p7lfM# z({d|h_ErSW?^WlfOe698BoZA@KSzF9EkRSQDE02Jqxpj?t3;iX>%|J5=K^b! zp!5ZT+&Y3vN!CiTQ<4oY60}KB%&cZH`@syn)x$&a8;&e=l_Bavw7elLac}n`T`VoS zvrE8bp6d)O6%QSOvU88kL(ePo=$X=W!33*b=PdPBXXlYJg^i9`oxO?BEN`R?$9qgP ztKSMV8{TrB@JvUO=#(Hb)j_n0FlLkFvaWXquJrO~MYFTY zGxg1q)!K}I6I(4NdG9)C#cp-dw@9*t3k+0$;-s+gyVKcuU6=K}%*pt|VO)g?nEJ5W;H%52!1I?J*#KM$nSkruyU&P}g=gB~^J zmy5E`L)83+IX}Gvk?T4K7iOE_-`|;@MU5;K+0{YV(r7L)_3N-IS&vKC`89XGf6>DY zZ;4X#dc(Y3Z!R+1Nt^9&8#lFA@4*Ajz_i{&!+Yd$c2?gYH`J>4Sc|yfZ7@#SayDOS zO&d&VTCMC1nt98fR@Y({u$_6=xUswzJa&>}ir6Qb3JGc@XbzIis8qJFwie-%*>J?b zdt~HWup)Kjzd@IgtH2C4Yyfe%Tl`h8QuN{Vc*$^AgWk|3-P!qyL@|KlfQJSMu$ zADYM6v~4o1_YyQqQ1GE7KNLOp#EhpzuV#y>W+4eOHj~@7S#r%ui?Wv)8OAMUxk>NX z5(vjE%3dMD;#RZLq*t{fbexkjR*9dct;WsI&i%;LP(!vpW_v5W=k9e1qct|8PE-oN zU^usbZhAYppPIGY2)3ctDnVfzLA3^H+2jS2X*q-W6XMr+4d@#0uKYM&`_yvST!x zWsOcrNsFHw+45W<8{}|{oN;w<`@4a=dv?t{3AYDf{(OlS2lCb+o*Tp)_%tQ0biRYA z?FP16|SF{!gC_YTQwxXHPb638~C z?Bz_01eHOOtzInmCXzM8O#RK`F=ckfQZXx7>~O#B6urtKf+h*_Zy{JN!KPc-L^{2n zlpd8$qc+%G|C?cH0nTpcHslgVt1}-Au-pq2Vwq$ z5-)jBZeXeJn9;#c#)EPLYk9`l@1GAZ6!LDj}hcOPEaL5hXl)?ASkRN*d#%R1O@+fV)2w-E%ecG%tS_|PHIr} zjMTdGX$iMiOPC+TbE{d%%AR&!c1`PlF|T=&u4zEols-j}yNsY1eN((ls^)!UGTsSp z?kk;U*VL~Nos|SF602qxfzCFQ(IPtetDKFlsgvyXKu3bAmFT3pohD06jiB&#=LSBQLdTRzP_>r8nD5QN?@Y!m;-vF+XR&8Cy)F~c zo$Ju%2R+I!SnoXKnW8sQZ&)Y6o1)-cBMOg*LUEJxsAsCylh?kUYB|oePR3Kgt(rS- z+VZ!Zr#(|l)U>`8_|C_)Fnf*ImcQpb>zTTD$t;negPSkT=LZ_ki^ir6&I_JtdXLP~ z4S08*0w?1|@!qge1|YA6GMZYPddfgxN?P#XxC@+glm3dRm2F}|vFL4b8a&e`Dy{Dm zRDKZXEfl>sM6Y;DpjWlUS?8G+j7;-~1ZA70N$w&iy-BpTw+31TTb;MrS72fak(lyU zC+0ftP2$a@zbl%}+XBswZO#TZ09#Qi{)nLIqo5DuYBcXlw{QB``M@(JZ3s3=koR%0 z7uhU%d7m&19k)1iE3UVS>%1=l*X3V0+o%K^6xK$9y3c~D-r=NwB3k8N23oaWI@{60 z#FV!aG`0s-y)X3HA(|cE1)4?QJ3Hv2Z&9l4BUd!=66z|>TjIynMECv+YyxZ zkdvMp$43=rC^Yc65I1e#pir}eplyc}>+84`i55sJ5qYLp~ zaZ`u6Y2sb2DY%grCXTztS`>+HJC;d(_DdII9jw^3kdsDTTpnkD9j=kcf-y0Mk zYPH@P6xZaWKN!!;^>RxB+maHuB5pPQeVHIub*Z zebqA6Riuun(*U(&T&Gr{bmsb5n6QK|Mi=>$W%pHrfJY%$^B$ zr}qVxc}oM!ily#~xXHg4qfQBym$|$ya<@dyYNU0gtlgAU_mI0LZkjPRRpkUN54cjf zkHc=;?xa5_%9RfX%JmPsFT_nz1$qq(aGD~+yuEYRKbm|Gt=tr(iBM+vGc zgKqrNNq<#5mOl|_)jr|A7B>ZtqfjS7%j0e=&2hi79uqUOQLL6f6Iiu908u7h`owVcTx%6C{)U=E&P_x?ogl+dKRB~$w zDr*97*SYDRiB?N(pw(IHei1iS&!Vthg2Gy^1;@MIWq!>QmnQuyDZH^RP~TqXcEn8s zH8CB}6EsOs_X3`cQ{bj|is$^b?ss(Oi<14K?DCxj;^+s-t9;4LO)+I_$!lL5)Mufa zeszkpj=LHPRWG}FDW>5i6w2xe8tPpy)l2(}Zn(~r{gQpH2tO8^hVPhx*@fS;YUlo7 zdN~a{4BNS;Z&~}wzem4NVpS5<=W^9o%_ZoNpzvzhJ6#EA?PYHF~_UxQ6MPv54zM%GxT zR_fUDk$KMa@BGL({Y$nPFY{D?di*DTv76#w;QCu!Kg;v?jQe$Qf6tWt{H3m6>-x{R z{`0P1;`;Zye!1&E;Q9}`{zI-`;rb7|{^PFyr0YN7`c%=MSM{tDM$ z>H4c&zsB{~xc;+lZ~so$znc%3Q~bSB{JUJg)b;Oi{qz)n?-YNZ6yrbT#{Jt}{{`2- z!}b5``m5c3p6d+l zx0=nT{&noLdkpZOGMmqMYmbZe*xYBL@vG=cx;@1|)Aj%C`cwIMD(=pY>|BjY z-ett+NAgM{@kfY1$tk|pK(Sp1w{eQCP%h9s z@pXsBAAoOY{#VM>>d^Pz%AZ5=IT9YNvQw4QHE$-Iqw#CuVvRox>omRrZs(LX_If(> znGO%q_$c^0jh_$mG=4L@om2YZUic8_)0|SL7vb9){|xqeCiE};F8MztJ(N@8C&P0z zJ{w-I@!Q~o8ea}y*7ydEOMSN!7dp$dZ|;>{_vd_(`k7^8T$XR4#$yqY_rD z>^WsiB=0Mgd22#H`zU{*9H~4Biod_W3p9Q;yqQzl+l#tLemUuPDscsHk9>!SBx;?Hx6Ux^DvNBFk#V`c35P`;P)C(6Of-$L>E7kHk=FVeX9yN0;b zLGBMl5xLcU0GXZFj}aG}dgT@-=T40gM+IYR@zoq<8*{(W!y=Y?laf**$D34VBLwSXA0TjRYLb(QQT&_d0U#j_X@09&a zPzPjnoRYr*N?X2!61Q{Z2jZeHI{nvbU7*k`|voDEqw>rhl%?QT|c+PbhVr2W|f@Qkh)y z_MUh@vPU_WX`WoavOY^$Zy=NY5}o%{N95ax3p%;UxP|B2hh3#9J%Q-5S_-NG~ zr<|mD7eYH%^NAN~ehKvO8NIfwZ_#^#Q_5Tg*K$g|-c(r|Y}a@v^!QGP=4APL1CO*J}I|_?5=LhbesVL-hB6`)d3^ z_zO*t?}vbpBkSHuhRH+@J3E)&tiBdr`@M7CH@Gfl=mcD zsqyFGD;j?jzQ-wb+pIFf_gB(5#V#EV;FSEIs%#uQL*oTM^^Snq$d81Qf0XiQAk&T6=@N`%S ze+TQ~I9LvU5Ban-_6JxEJ2}OVEoVRC;^&XB75){r!@WNV>u2@OMD8J*0QBR>!M6gUeOb4Kfb81e#Sm%v;& z8%lo-{xq!rUZmxi!+9{W%V2+aIjlkd->@8B0juDZn!ZZ&{{uUa=Ryy=xv-A()vyg- z16yDo6o1z$uY--GuZP*#<-;sEPxI$1L2%e{Eg>cKxdY~)eRIa{_YVAm%3@q<8BtnGbW2ZGq>(RyY$DaLQr({UhQs|F%Kt&l1fS9XXmbZRhx7l?JJOlhR|7(&LlTMVjudWe=yEsmMmaS#TuedkHaLHRv(PU1-Wa;SCE1Gn zIM@!4haNhk;ok5BScm*XxC^cdI-4_1HCx=391z;c|7-e7c2g*k96JQkj&>2YdL zGC2N5WDK%7D!1)96Zr&W=fIh8BAf~fRF7nEOd^u2G7(t$3?eelC6PSIPyIZ+XY`Q- z#~KNcy#Qn#ya2m$Y%YW~@FG|ZFNSS!7OaDpz)Cn9Zi1J>MmPty!^<@Pa@b7zU@h0S z?`19b4K4TI=AT^1*xmyts*h-W?nOQaIp41dJlpo&M=}@LQkV}PfJLe! zigw+20(lkkDp&)bgyoP|VzGKy4Vz#)ryO>DV*3=^gzOpE22;NX^TUw$dJ<8YwGsOd zIc1!;Ds8>3-FhPZu^XIZyBT>FvMq2B%+Y*n*Gfd@;TV-mS#so(mhx@Cd`5gGvM=Bq z_%(LpVF#QDzk%n$GR~-7yXt=hOUU~cJ-#j#>r^|IzQAt(_Hgf$hMpW9oE|b+pZA8} z!oE3%|fhkbdrCzX|bSmtGX;9WFd)W46As>YQ0dP1R2oI6+ z^ssvSA(!=Gf8_y6t4A_84kR)L`=7ugBYv#MY~WzeA*R1*^gX2gdwaAWw4bb~C^k?&r zA<~BYSl9vg)_gUO4I(WTw%wUTWZ!ch`umfYljLs}@ErAvAb|}vW;$O;_boBYa*61GO%h9)ojg|Evzpn>*IdZwa z>|tXM^q~J>lH9Jp70Bg&@-S?mUXQ?9_^75UH4TEp?o%HlCFArsl;@o%lvQv%>Hli_ zNhr@d_ORE_QwW+Vry7o-|DT5P9PkW`J_p$OxJvbF;Cbk+hVndMk9~f3xPltCV^k!hDhX2&F#5q0~px;z!bQNGSa$r##e!r{^4g(o*xFmiRk?t%09v#b|3T$MB?w4Q0BwIP@cQ~4~~Ps zQu(i;Ja-)e$3T1Z)yV0HuArRXNj~?raZvWzzlXBV{sWYK_8+0_v&Tc(Xa7n0XDIvZ zzd+e%p8@mm_g5(U`a+iS z2%+rPDquP3N1*KM9)(q;ABVDk+fG~#yMJCmvH=+%83fNet6(eX8rT9?t9%WV=bdL^ z6LMbT2m6ZWpzI@_SNRKY0%?2L@#nQ51K^gbgq0GBCU_I$Z zDC6E=Hd-8VFOcIMl6@KPX6TVOoKrMxKgx6OA;?+~X2Xq8_J!|5nO7eu#TU_-eeRRz z-?8ZTp&%KzzRG@ZH1a)^dn)@Y)0G*@y_9<^r5rh=EIIZ;J|2HFIpwhR{uS~G$bJoF ze{~3)O8QXc6{>I7)!(T8VM6XFgQ4t~3X}AFsYku)+wxCDUWx1^SPjQODZeR6?_}iiUTZ9r@=t?OzU+&Lc8zO4x}y!-Jzxj? z9hsZpI4Jv=Wc@u=zrX5_SN%Ul^vUY-pH8ALoAtkv@4>%C^rTHBgChgIL&)C?=D@vS zHar`JEO?IEO&~5d)@~p4#v|Joj)jxS7!9YWzSLjtb5=hKy<+kQzydfBmcjjCF5Dl^ zf`1o#_>YJmvby}px>`m4zsQ&8-uP^^CHfuMU8Q!}$V7!?aLBqV*V|kKS>#=KAZrrqo70J^^x+U?aM*0j{H$@ zIXoQ7{JR1DD$)fJJGu9e42~nv>$@X--y`)pigYvj@;)bq{216y`dHWse+$KLAr2Zz zFN*k;YtZ^V4!uLLKVFDmdA}p`@C2BR{1z0m;NplqSzY!giaz;E$RAC4xA&lT8hT^V zyG!(7X_B7!l;daYR&}$)oGHirXUMq2(yQ^~!8H+oWOdbVCJAZB z^W={~?}dn7wBIg7Zz}m0!7Jd!@C-N$&V(;vHxAZE?8)jX=MoaqZw=(Kp{(zG`}hl+z({^jrzTgMBh#m`<#3aexZ7@-pKVXryTRp z8$|wmcqF_54u)T&zc=L99RmM5;Qpk=9+jY8!UBSE$UDg&1HV&!q3pXwpJ0}cqWwoI}pL30pYmGJ*(t^aIbVT z@u|NK_rYgTiB3O!#*xoiHvIvA*|FFuIH;YDEpe8ZSi@%I{rSFDjJ`IE4{|B1cPjl# zJQaQUE>4X2ZRqU(CiiOM6d!w>hPl|vJe2ng4sp2;$h(3RbmTq51Zg93!q{+Lp#4AC CH5%Oj literal 0 HcmV?d00001 diff --git a/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin b/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin new file mode 100644 index 00000000..52daf05d --- /dev/null +++ b/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin @@ -0,0 +1 @@ +o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..1822258368a6e70582767bbd549022cf0820e99d GIT binary patch literal 137792 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 G=>GwX{8Zrp literal 0 HcmV?d00001 diff --git a/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin b/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin new file mode 100644 index 00000000..52daf05d --- /dev/null +++ b/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin @@ -0,0 +1 @@ +o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..d14c20953ff9657ae8bac2ed88acd76f2629adb5 GIT binary patch literal 120316 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

F=yg&eIBn% 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 z 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 CsbLWS literal 0 HcmV?d00001 diff --git a/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin b/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin new file mode 100644 index 00000000..52daf05d --- /dev/null +++ b/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin @@ -0,0 +1 @@ +o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..1c62d8894e783ed2b2e99a87ef6773a730a685cf GIT binary patch literal 138012 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 +xV`m<21H@w|=L&0vN~sbDI55 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 Date: Sun, 18 Aug 2024 10:58:55 +0530 Subject: [PATCH 09/10] Added comments in tests --- .../org/listenbrainz/android/UserPagesTest.kt | 27 +++- .../android/user/UserRepositoryTest.kt | 117 +++++++++++++++++- .../android/user/UserViewModelTest.kt | 26 +++- 3 files changed, 164 insertions(+), 6 deletions(-) diff --git a/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt index a761f378..b03b7583 100644 --- a/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt +++ b/app/src/androidTest/java/org/listenbrainz/android/UserPagesTest.kt @@ -114,7 +114,8 @@ class UserPagesTest { } @Test - fun allTabsExistenceTest () { + fun allTabsExistenceTest() { + // Verify that all tabs ("Listens", "Stats", "Taste") exist on the main screen rule.onNodeWithText("Listens").assertExists() rule.onNodeWithText("Stats").assertExists() rule.onNodeWithText("Taste").assertExists() @@ -122,36 +123,60 @@ class UserPagesTest { @Test fun listensTabScreenFlowTest() { + // Navigate to the "Listens" tab rule.onNodeWithText("Listens").performClick() + + // Verify that key elements on the "Listens" screen are present rule.onNodeWithText("You have listened to").assertExists() rule.onNodeWithText("Recent Listens").assertExists() rule.onNodeWithText("Followers").assertExists() + + // Locate the scrollable container for the "Listens" screen val scrollableContainer = rule.onNodeWithTag("listensScreenScrollableContainer") + + // Scroll to a specific index to ensure additional content is loaded scrollableContainer.performScrollToIndex(10) + + // Verify that more elements are present after scrolling rule.onNodeWithText("Similar Users").assertExists() } @Test fun statsTabScreenFlowTest() { + // Navigate to the "Stats" tab rule.onNodeWithText("Stats").performClick() + + // Verify that key elements on the "Stats" screen are present rule.onNodeWithText("Global").assertExists() rule.onNodeWithText("This Week").assertExists() rule.onNodeWithText("This Month").assertExists() rule.onNodeWithText("This Year").assertExists() + + // Locate the scrollable container for the "Stats" screen val scrollableContainer = rule.onNodeWithTag("statsScreenScrollableContainer") + + // Scroll to a specific index to ensure additional content is loaded scrollableContainer.performScrollToIndex(2) + + // Verify that more elements are present after scrolling rule.onNodeWithText("Artists").assertExists() rule.onNodeWithText("Albums").assertExists() rule.onNodeWithText("Songs").assertExists() + + // Scroll further to check the presence of additional content scrollableContainer.performScrollToIndex(3) rule.onNodeWithText("Load More").assertExists() } @Test fun tasteTabScreenFlowTest() { + // Navigate to the "Taste" tab rule.onNodeWithText("Taste").performClick() + + // Verify that key elements on the "Taste" screen are present rule.onNodeWithText("Loved").assertExists() rule.onNodeWithText("Hated").assertExists() rule.onNodeWithText("Pins").assertExists() } + } diff --git a/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt index 20c64fae..826c662b 100644 --- a/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt +++ b/app/src/test/java/org/listenbrainz/android/user/UserRepositoryTest.kt @@ -186,57 +186,97 @@ class UserRepositoryTest { fun teardown() { webServer.close() } - @Test fun `fetch listen count for existing user`() = runTest { + // Fetch listen count for a user known to exist val result = repository.fetchUserListenCount(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Verify that the listen count matches the expected data assertEquals(listenCountTestData.payload.count, result.data?.payload?.count) } @Test fun `fetch listen count for non-existing user`() = runTest { + // Attempt to fetch listen count for a user that does not exist val result = repository.fetchUserListenCount(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch similar users for valid comparison`() = runTest { + // Fetch similar users for a valid comparison between two different users val result = repository.fetchUserSimilarity(testUsername, testSomeOtherUser) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify that the similar user's username matches the expected value assertEquals("jivteshs20", result.data?.userSimilarity?.username) } @Test fun `fetch similar users for invalid comparison`() = runTest { + // Attempt to fetch similar users for a comparison with the same user val result = repository.fetchUserSimilarity(testUsername, testUsername) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the error message matches the expected value for invalid comparison assertEquals(similarUserErrorString, result.error?.actualResponse) } @Test fun `fetch current pins for existing user`() = runTest { + // Fetch current pins for a user known to exist val result = repository.fetchUserCurrentPins(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify that the pinned recording's creation time and blurb content match the expected values assertEquals(1.72335654E9f, result.data?.pinnedRecording?.created) assertEquals("Noice", result.data?.pinnedRecording?.blurbContent) } @Test fun `fetch current pins for non-existing user`() = runTest { + // Attempt to fetch current pins for a user that does not exist val result = repository.fetchUserCurrentPins(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch all pins for existing user`() = runTest { + // Fetch all pins for a user known to exist val result = repository.fetchUserPins(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the total count and check the first pinned recording's MSID and username assertEquals(12, result.data?.count) assertEquals("6f4a50ca-b636-4c0b-a6a0-5b84451ab014", result.data?.pinnedRecordings?.get(0)?.recordingMsid) assertEquals(testUsername, result.data?.userName) @@ -244,99 +284,174 @@ class UserRepositoryTest { @Test fun `fetch all pins for non-existing user`() = runTest { + // Attempt to fetch all pins for a user that does not exist val result = repository.fetchUserPins(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch top artists for existing user`() = runTest { + // Fetch top artists for a user known to exist val result = repository.getTopArtists(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify that the first artist's name and the total count of top artists match the expected values assertEquals("Karan Aujla", result.data?.payload?.artists?.get(0)?.artistName) assertEquals(25, result.data?.payload?.count) } @Test fun `fetch top artists for non-existing user`() = runTest { + // Attempt to fetch top artists for a user that does not exist val result = repository.getTopArtists(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch loved and hated songs for existing user`() = runTest { + // Fetch loved and hated songs for a user known to exist val result = repository.getUserFeedback(testUsername, null) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the count of feedback and the name of the first loved song assertEquals(25, result.data?.count) assertEquals("Calling", result.data?.feedback?.get(0)?.trackMetadata?.trackName) + + // Verify that the feedback user ID matches the expected username assertEquals(testUsername, result?.data?.feedback?.get(2)?.userId) } @Test fun `fetch loved and hated songs for non-existing user`() = runTest { + // Attempt to fetch loved and hated songs for a user that does not exist val result = repository.getUserFeedback(testUserDNE, null) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch user listening activity for existing user`() = runTest { + // Fetch user listening activity for a user known to exist val result = repository.getUserListeningActivity(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the user ID and listen count for a specific activity assertEquals(testUsername, result.data?.payload?.userId) assertEquals(2826, result.data?.payload?.listeningActivity?.get(21)?.listenCount) } @Test fun `fetch user listening activity for non-existing user`() = runTest { + // Attempt to fetch user listening activity for a user that does not exist val result = repository.getUserListeningActivity(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch global listening activity`() = runTest { + // Fetch global listening activity, which is not user-specific val result = repository.getGlobalListeningActivity() + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the listen count for a specific activity and ensure userId is null for global data assertEquals(4499100, result.data?.payload?.listeningActivity?.get(3)?.listenCount) assertNull(result.data?.payload?.userId) } @Test fun `fetch top albums for existing user`() = runTest { + // Fetch top albums for a user known to exist val result = repository.getTopAlbums(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the release name of the third album and the username associated with the data assertEquals("Small Circle", result.data?.payload?.releases?.get(2)?.releaseName) assertEquals(testUsername, result.data?.payload?.userId) } @Test fun `fetch top albums for non-existing user`() = runTest { + // Attempt to fetch top albums for a user that does not exist val result = repository.getTopAlbums(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } @Test fun `fetch top songs for existing user`() = runTest { + // Fetch top songs for a user known to exist val result = repository.getTopSongs(testUsername) + + // Assert that the operation was successful assertEquals(Resource.Status.SUCCESS, result.status) + + // Ensure that the result data is not null assertNotNull(result.data) + + // Verify the user ID and the name of the top song assertEquals(testUsername, result.data?.payload?.userId) assertEquals("Small Circle", result.data?.payload?.recordings?.get(0)?.releaseName) } @Test fun `fetch top songs for non-existing user`() = runTest { + // Attempt to fetch top songs for a user that does not exist val result = repository.getTopSongs(testUserDNE) + + // Assert that the operation failed assertEquals(Resource.Status.FAILED, result.status) + + // Verify that the correct error is returned for a non-existent user assertEquals(ResponseError.DOES_NOT_EXIST, result.error) } + } \ No newline at end of file diff --git a/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt b/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt index 9887d277..b0559c66 100644 --- a/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt +++ b/app/src/test/java/org/listenbrainz/android/user/UserViewModelTest.kt @@ -31,19 +31,37 @@ class UserViewModelTest { @OptIn(ExperimentalCoroutinesApi::class) @Test fun getDataTest() = runTest { + // Start the data retrieval process using the ViewModel viewModel.getUserDataFromRemote(testUsername) - // Ensure all coroutines and tasks are completed + + // Ensure all coroutines and background tasks are completed before assertions advanceUntilIdle() + + // Check that the statsTabUIState is not null, meaning data has been loaded assertNotNull(viewModel.uiState.value.statsTabUIState) + + // Check that the tasteTabUIState is not null, indicating successful data load assertNotNull(viewModel.uiState.value.tasteTabUIState) + + // Ensure the listensTabUiState is not null after data retrieval assertNotNull(viewModel.uiState.value.listensTabUiState) + + // Assert that the data loaded belongs to the user themselves assertEquals(true, viewModel.uiState.value.isSelf) + + // Verify the number of similar users loaded is as expected (3 in this case) assertEquals(3, viewModel.uiState.value.listensTabUiState.similarUsers?.size) + + // Confirm the listen count is accurate after data loading assertEquals(3252, viewModel.uiState.value.listensTabUiState.listenCount) + + // Validate that the first follower's username is correctly loaded assertEquals("jivteshs20", viewModel.uiState.value.listensTabUiState.followers?.get(0)?.first) - assertEquals("6b08f3d4-0d56-406c-b628-d0afe2ad5d44", viewModel.uiState.value.tasteTabUIState.lovedSongs?.feedback?.get(0)?.recordingMBID) - assertEquals(23,viewModel.uiState.value.statsTabUIState.userListeningActivity.get(Pair(UserGlobal.USER, StatsRange.ALL_TIME))?.size) - } + // Check that the correct MusicBrainz Identifier (MBID) for a loved song is loaded + assertEquals("6b08f3d4-0d56-406c-b628-d0afe2ad5d44", viewModel.uiState.value.tasteTabUIState.lovedSongs?.feedback?.get(0)?.recordingMBID) + // Ensure that the user listening activity data for all time is loaded with the correct size + assertEquals(23, viewModel.uiState.value.statsTabUIState.userListeningActivity.get(Pair(UserGlobal.USER, StatsRange.ALL_TIME))?.size) + } } From 97b98b9908640be9bc6d78f0f364e9a27feff5d2 Mon Sep 17 00:00:00 2001 From: Pranav <122373207+pranavkonidena@users.noreply.github.com> Date: Sun, 18 Aug 2024 11:01:44 +0530 Subject: [PATCH 10/10] Remove build files from commit --- .../results.bin | 1 - .../classes.dex | Bin 137744 -> 0 bytes .../results.bin | 1 - .../classes.dex | Bin 137792 -> 0 bytes .../results.bin | 1 - .../classes.dex | Bin 120316 -> 0 bytes .../results.bin | 1 - .../classes.dex | Bin 138012 -> 0 bytes 8 files changed, 4 deletions(-) delete mode 100644 spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin delete mode 100644 spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex delete mode 100644 spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin delete mode 100644 spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex delete mode 100644 spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin delete mode 100644 spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex delete mode 100644 spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin delete mode 100644 spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex diff --git a/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin b/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin deleted file mode 100644 index 52daf05d..00000000 --- a/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/results.bin +++ /dev/null @@ -1 +0,0 @@ -o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/02890a36f7f1b7de65370910e6d441c9/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex deleted file mode 100644 index bc99224bc5c3d828a98f8cb20ee6780ef815fb14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137744 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 CH5%Oj diff --git a/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin b/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin deleted file mode 100644 index 52daf05d..00000000 --- a/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/results.bin +++ /dev/null @@ -1 +0,0 @@ -o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/1acd802fc05d76d1989897fafaa4dcc1/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex deleted file mode 100644 index 1822258368a6e70582767bbd549022cf0820e99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137792 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 G=>GwX{8Zrp diff --git a/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin b/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin deleted file mode 100644 index 52daf05d..00000000 --- a/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/results.bin +++ /dev/null @@ -1 +0,0 @@ -o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/600d275753de81492ac32240018e723c/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex deleted file mode 100644 index d14c20953ff9657ae8bac2ed88acd76f2629adb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120316 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

F=yg&eIBn% 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 z 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 CsbLWS diff --git a/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin b/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin deleted file mode 100644 index 52daf05d..00000000 --- a/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/results.bin +++ /dev/null @@ -1 +0,0 @@ -o/spotify-app-remote-release-0.7.2-runtime diff --git a/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex b/spotify-app-remote/build/.transforms/a236cf5d8026cbceaedc55a536fdbf38/transformed/spotify-app-remote-release-0.7.2-runtime/spotify-app-remote-release-0.7.2-runtime_dex/classes.dex deleted file mode 100644 index 1c62d8894e783ed2b2e99a87ef6773a730a685cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138012 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 +xV`m<21H@w|=L&0vN~sbDI55 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