Skip to content

Commit ae05f1f

Browse files
committed
Add route and button for populating userAlbumGenres
1 parent e817a78 commit ae05f1f

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

backend/src/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def create_app():
2525
SESSION_COOKIE_SECURE="True",
2626
)
2727

28-
cors = CORS(
28+
CORS(
2929
app,
3030
resources={
3131
r"/*": {

backend/src/controllers/database.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,20 @@ def populate_additional_album_details():
107107
)
108108
update_album(db_album)
109109

110-
return make_response("Playlist data populated", 201)
110+
return make_response("Playlist details populated", 201)
111111

112112
@database_controller.route("populate_universal_genre_list", methods=["GET"])
113113
def populate_universal_genre_list():
114114
genre_list = musicbrainz.get_genre_list()
115115
[create_genre(genre) for genre in genre_list]
116-
return make_response("Playlist data populated", 201)
116+
return make_response("Genre data populated", 201)
117+
118+
@database_controller.route("populate_user_album_genres", methods=["GET"])
119+
def populate_user_album_genres():
120+
access_token = request.cookies.get("spotify_access_token")
121+
user = spotify.get_current_user(access_token)
122+
populate_album_genres_by_user_id(user.id, musicbrainz)
123+
return make_response("User album genres populated", 201)
117124

118125
return database_controller
119126

@@ -124,7 +131,9 @@ def split_list(input_list, max_length=20):
124131
]
125132

126133

127-
def populate_user_album_genres(user_id: str):
134+
def populate_album_genres_by_user_id(
135+
user_id: str, musicbrainz: MusicbrainzClient = MusicbrainzClient()
136+
):
128137
albums = get_user_albums(user_id=user_id)
129138
print(f"processing album {0} of {len(albums)}")
130139
skip_count = 0
@@ -135,7 +144,7 @@ def populate_user_album_genres(user_id: str):
135144
skip_count += 1
136145
continue
137146
album_artists = get_album_artists(db_album)
138-
genres = MusicbrainzClient().get_album_genres(
147+
genres = musicbrainz.get_album_genres(
139148
artist_name=album_artists[0].name, album_title=db_album.name
140149
)
141150
add_genres_to_album(db_album, genres)

frontend/src/api/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,8 @@ export const populateAdditionalAlbumDetails = async (): Promise<Response> => {
145145

146146
export const populateUniversalGenreList = async (): Promise<Response> => {
147147
return request('database/populate_universal_genre_list', RequestMethod.GET)
148+
}
149+
150+
export const populateUserAlbumGenres = async (): Promise<Response> => {
151+
return request('database/populate_user_album_genres', RequestMethod.GET)
148152
}

frontend/src/settingsPage/SettingsPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { FC } from "react";
22
import { ButtonWithLoadingState } from "./PopulateUserDatabaseButton";
3-
import { populateAdditionalAlbumDetails, populateUniversalGenreList, populateUserData } from "../api";
3+
import { populateAdditionalAlbumDetails, populateUniversalGenreList, populateUserAlbumGenres, populateUserData } from "../api";
44

55
export const SettingsPage: FC = () => {
66
return (
@@ -10,6 +10,7 @@ export const SettingsPage: FC = () => {
1010
<ButtonWithLoadingState text="Populate user data" actionCallback={populateUserData} />
1111
<ButtonWithLoadingState text="Populate additional album details" actionCallback={populateAdditionalAlbumDetails} />
1212
<ButtonWithLoadingState text="Populate universal genre list" actionCallback={populateUniversalGenreList} />
13+
<ButtonWithLoadingState text="Populate user album genres" actionCallback={populateUserAlbumGenres} />
1314
</div>
1415
</div>
1516
);

0 commit comments

Comments
 (0)