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/.obsidian/plugins/obsidian-media-db-plugin/.hotreload
|
||||||
|
|
||||||
exampleVault/Media DB/*
|
exampleVault/Media DB/*
|
||||||
|
meta.txt
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,14 @@ export class MusicBrainzAPI extends APIModel {
|
||||||
const releaseData = (await releaseResponse.json) as MediaResponse;
|
const releaseData = (await releaseResponse.json) as MediaResponse;
|
||||||
const tracks = extractTracksFromMedia(releaseData.media);
|
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);
|
console.log(releaseData);
|
||||||
|
|
||||||
return new MusicReleaseModel({
|
return new MusicReleaseModel({
|
||||||
|
|
@ -208,7 +216,8 @@ export class MusicBrainzAPI extends APIModel {
|
||||||
language: releaseData['text-representation'].language ? getLanguageName(releaseData['text-representation'].language) : 'Unknown',
|
language: releaseData['text-representation'].language ? getLanguageName(releaseData['text-representation'].language) : 'Unknown',
|
||||||
genres: result.genres.map(g => g.name),
|
genres: result.genres.map(g => g.name),
|
||||||
subType: result['primary-type'],
|
subType: result['primary-type'],
|
||||||
trackCount: releaseData.media[0]['track-count'] ?? 0,
|
albumDuration: albumLengthCalc,
|
||||||
|
trackCount: releaseData.media[0]?.['track-count'] ?? 0,
|
||||||
tracks: tracks,
|
tracks: tracks,
|
||||||
rating: result.rating.value * 2,
|
rating: result.rating.value * 2,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ export class MusicReleaseModel extends MediaTypeModel {
|
||||||
image: string;
|
image: string;
|
||||||
rating: number;
|
rating: number;
|
||||||
releaseDate: string;
|
releaseDate: string;
|
||||||
|
albumDuration: string;
|
||||||
trackCount: number;
|
trackCount: number;
|
||||||
tracks: {
|
tracks: {
|
||||||
number: number;
|
number: number;
|
||||||
|
|
@ -44,6 +45,7 @@ export class MusicReleaseModel extends MediaTypeModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.type = this.getMediaType();
|
this.type = this.getMediaType();
|
||||||
|
this.albumDuration = obj.albumDuration ?? '0:00';
|
||||||
this.trackCount = obj.trackCount ?? 0;
|
this.trackCount = obj.trackCount ?? 0;
|
||||||
this.tracks = obj.tracks ?? [];
|
this.tracks = obj.tracks ?? [];
|
||||||
this.language = obj.language ?? '';
|
this.language = obj.language ?? '';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue