Merge pull request #233 from ltctceplrm/album-length
Added total duration for a music release/album
This commit is contained in:
commit
94e17cb1f4
3 changed files with 13 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -36,3 +36,4 @@ exampleVault/.obsidian/plugins/obsidian-media-db-plugin/*
|
|||
!exampleVault/.obsidian/plugins/obsidian-media-db-plugin/.hotreload
|
||||
|
||||
exampleVault/Media DB/*
|
||||
meta.txt
|
||||
|
|
|
|||
|
|
@ -191,6 +191,14 @@ export class MusicBrainzAPI extends APIModel {
|
|||
const releaseData = (await releaseResponse.json) as MediaResponse;
|
||||
const tracks = extractTracksFromMedia(releaseData.media);
|
||||
|
||||
// Calculate total album length for the first release
|
||||
const totalrawLength =
|
||||
releaseData.media[0]?.tracks.reduce((sum, track) => {
|
||||
const len = track.length ?? track.recording?.length;
|
||||
return typeof len === 'number' && !isNaN(len) ? sum + len : sum;
|
||||
}, 0) ?? 0;
|
||||
const albumLengthCalc = millisecondsToMinutes(totalrawLength);
|
||||
|
||||
console.log(releaseData);
|
||||
|
||||
return new MusicReleaseModel({
|
||||
|
|
@ -208,7 +216,8 @@ export class MusicBrainzAPI extends APIModel {
|
|||
language: releaseData['text-representation'].language ? getLanguageName(releaseData['text-representation'].language) : 'Unknown',
|
||||
genres: result.genres.map(g => g.name),
|
||||
subType: result['primary-type'],
|
||||
trackCount: releaseData.media[0]['track-count'] ?? 0,
|
||||
albumDuration: albumLengthCalc,
|
||||
trackCount: releaseData.media[0]?.['track-count'] ?? 0,
|
||||
tracks: tracks,
|
||||
rating: result.rating.value * 2,
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export class MusicReleaseModel extends MediaTypeModel {
|
|||
image: string;
|
||||
rating: number;
|
||||
releaseDate: string;
|
||||
albumDuration: string;
|
||||
trackCount: number;
|
||||
tracks: {
|
||||
number: number;
|
||||
|
|
@ -44,6 +45,7 @@ export class MusicReleaseModel extends MediaTypeModel {
|
|||
}
|
||||
|
||||
this.type = this.getMediaType();
|
||||
this.albumDuration = obj.albumDuration ?? '0:00';
|
||||
this.trackCount = obj.trackCount ?? 0;
|
||||
this.tracks = obj.tracks ?? [];
|
||||
this.language = obj.language ?? '';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue