mirror of
https://github.com/navidrome/navidrome.git
synced 2026-05-03 06:51:16 +00:00
Compare commits
3 Commits
0c3f2f1e40
...
cdf4e735a0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdf4e735a0 | ||
|
|
e86dc03619 | ||
|
|
775626e037 |
@ -400,23 +400,16 @@ func (r *artistRepository) RefreshStats(allArtists bool) (int64, error) {
|
|||||||
// This now calculates per-library statistics and stores them in library_artist.stats
|
// This now calculates per-library statistics and stores them in library_artist.stats
|
||||||
batchUpdateStatsSQL := `
|
batchUpdateStatsSQL := `
|
||||||
WITH artist_role_counters AS (
|
WITH artist_role_counters AS (
|
||||||
SELECT jt.atom AS artist_id,
|
SELECT mfa.artist_id,
|
||||||
mf.library_id,
|
mf.library_id,
|
||||||
substr(
|
mfa.role,
|
||||||
replace(jt.path, '$.', ''),
|
|
||||||
1,
|
|
||||||
CASE WHEN instr(replace(jt.path, '$.', ''), '[') > 0
|
|
||||||
THEN instr(replace(jt.path, '$.', ''), '[') - 1
|
|
||||||
ELSE length(replace(jt.path, '$.', ''))
|
|
||||||
END
|
|
||||||
) AS role,
|
|
||||||
count(DISTINCT mf.album_id) AS album_count,
|
count(DISTINCT mf.album_id) AS album_count,
|
||||||
count(mf.id) AS count,
|
count(DISTINCT mf.id) AS count,
|
||||||
sum(mf.size) AS size
|
sum(mf.size) AS size
|
||||||
FROM media_file mf
|
FROM media_file_artists mfa
|
||||||
JOIN json_tree(mf.participants) jt ON jt.key = 'id' AND jt.atom IS NOT NULL
|
JOIN media_file mf ON mfa.media_file_id = mf.id
|
||||||
WHERE jt.atom IN (ROLE_IDS_PLACEHOLDER) -- Will replace with actual placeholders
|
WHERE mfa.artist_id IN (ROLE_IDS_PLACEHOLDER) -- Will replace with actual placeholders
|
||||||
GROUP BY jt.atom, mf.library_id, role
|
GROUP BY mfa.artist_id, mf.library_id, mfa.role
|
||||||
),
|
),
|
||||||
artist_total_counters AS (
|
artist_total_counters AS (
|
||||||
SELECT mfa.artist_id,
|
SELECT mfa.artist_id,
|
||||||
@ -445,16 +438,16 @@ func (r *artistRepository) RefreshStats(allArtists bool) (int64, error) {
|
|||||||
),
|
),
|
||||||
combined_counters AS (
|
combined_counters AS (
|
||||||
SELECT artist_id, library_id, role, album_count, count, size FROM artist_role_counters
|
SELECT artist_id, library_id, role, album_count, count, size FROM artist_role_counters
|
||||||
UNION
|
UNION ALL
|
||||||
SELECT artist_id, library_id, role, album_count, count, size FROM artist_total_counters
|
SELECT artist_id, library_id, role, album_count, count, size FROM artist_total_counters
|
||||||
UNION
|
UNION ALL
|
||||||
SELECT artist_id, library_id, role, album_count, count, size FROM artist_participant_counter
|
SELECT artist_id, library_id, role, album_count, count, size FROM artist_participant_counter
|
||||||
),
|
),
|
||||||
library_artist_counters AS (
|
library_artist_counters AS (
|
||||||
SELECT artist_id,
|
SELECT artist_id,
|
||||||
library_id,
|
library_id,
|
||||||
json_group_object(
|
json_group_object(
|
||||||
replace(role, '"', ''),
|
role,
|
||||||
json_object('a', album_count, 'm', count, 's', size)
|
json_object('a', album_count, 'm', count, 's', size)
|
||||||
) AS counters
|
) AS counters
|
||||||
FROM combined_counters
|
FROM combined_counters
|
||||||
|
|||||||
@ -127,6 +127,7 @@ const Player = () => {
|
|||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
locale: locale(translate),
|
locale: locale(translate),
|
||||||
|
sortableOptions: { delay: 200, delayOnTouchOnly: true },
|
||||||
}),
|
}),
|
||||||
[gainInfo, isDesktop, playerTheme, translate, playerState.mode],
|
[gainInfo, isDesktop, playerTheme, translate, playerState.mode],
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user