daydreamer-json commited on
Commit
25ad6b2
·
verified ·
1 Parent(s): e99018f
Files changed (1) hide show
  1. script.js +23 -4
script.js CHANGED
@@ -273,10 +273,11 @@ function loadTrackInfoModal (trackUuid) {
273
  temp_dlButtonExtEl.classList.add('btn', 'btn-secondary', 'text-center');
274
  }
275
  temp_dlButtonEl.setAttribute('type', 'button');
276
- temp_dlButtonEl.addEventListener('click', async () => {
277
- await downloadAudioDataToBlob (trackParsedObject.uuid, obj.uuid)
278
- })
279
  temp_dlButtonExtEl.setAttribute('href', `${apiDataConfig.response.config.decrypted.rawMediaUrlBase64}/media/${albumParsedObject.uuid}/${obj.path}/${trackParsedObject.uuid}.${obj.extension}`);
 
280
  temp_dlButtonExtEl.setAttribute('role', 'button');
281
  temp_dlButtonExtEl.setAttribute('target', '_blank');
282
  temp_dlButtonExtEl.setAttribute('rel', 'noopener noreferrer');
@@ -287,7 +288,7 @@ function loadTrackInfoModal (trackUuid) {
287
  temp_dlTdBtnEl.classList.add('text-end');
288
  temp_dlButtonEl.appendChild(temp_dlButtonIconEl);
289
  temp_dlButtonExtEl.appendChild(temp_dlButtonExtIconEl);
290
- temp_dlButtonGroupEl.appendChild(temp_dlButtonEl);
291
  temp_dlButtonGroupEl.appendChild(temp_dlButtonExtEl);
292
  temp_dlTdBtnEl.appendChild(temp_dlButtonGroupEl);
293
  temp_dlTrEl.appendChild(temp_dlTdCodecEl);
@@ -534,6 +535,24 @@ async function downloadAudioDataToBlob (trackUuid, codecUuid) {
534
  document.body.removeChild(link);
535
  }
536
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  // ========== MasterDB/Configの暗号化を解く ==========
538
 
539
  async function decryptConfig () {
 
273
  temp_dlButtonExtEl.classList.add('btn', 'btn-secondary', 'text-center');
274
  }
275
  temp_dlButtonEl.setAttribute('type', 'button');
276
+ // temp_dlButtonEl.addEventListener('click', async () => {
277
+ // await downloadAudioDataToBlob (trackParsedObject.uuid, obj.uuid)
278
+ // })
279
  temp_dlButtonExtEl.setAttribute('href', `${apiDataConfig.response.config.decrypted.rawMediaUrlBase64}/media/${albumParsedObject.uuid}/${obj.path}/${trackParsedObject.uuid}.${obj.extension}`);
280
+ temp_dlButtonExtEl.setAttribute('download', determineDownloadFileName(trackParsedObject.uuid, obj.uuid));
281
  temp_dlButtonExtEl.setAttribute('role', 'button');
282
  temp_dlButtonExtEl.setAttribute('target', '_blank');
283
  temp_dlButtonExtEl.setAttribute('rel', 'noopener noreferrer');
 
288
  temp_dlTdBtnEl.classList.add('text-end');
289
  temp_dlButtonEl.appendChild(temp_dlButtonIconEl);
290
  temp_dlButtonExtEl.appendChild(temp_dlButtonExtIconEl);
291
+ // temp_dlButtonGroupEl.appendChild(temp_dlButtonEl);
292
  temp_dlButtonGroupEl.appendChild(temp_dlButtonExtEl);
293
  temp_dlTdBtnEl.appendChild(temp_dlButtonGroupEl);
294
  temp_dlTrEl.appendChild(temp_dlTdCodecEl);
 
535
  document.body.removeChild(link);
536
  }
537
 
538
+ function determineDownloadFileName (trackUuid, codecUuid) {
539
+ const albumParsedObject = getParsedAlbumObjectFromAlbumUuid(getAlbumUuidFromTrackUuid(trackUuid));
540
+ const trackParsedObject = albumParsedObject.tracks.find((obj) => obj.uuid === trackUuid);
541
+ let codecParsedObject = null;
542
+ if (albumParsedObject.isAllTrackSameCodecs === false) {
543
+ codecParsedObject = trackParsedObject.codecs.find((obj) => obj.uuid === codecUuid);
544
+ } else {
545
+ codecParsedObject = albumParsedObject.codecs.find((obj) => obj.uuid === codecUuid);
546
+ }
547
+ let saveFileName = null;
548
+ if (trackParsedObject.titleFileName !== null) {
549
+ saveFileName = `${trackParsedObject.disc}_${('00' + trackParsedObject.index).slice(-2)}_${trackParsedObject.titleFileName}.${codecParsedObject.extension}`;
550
+ } else {
551
+ saveFileName = `${trackParsedObject.disc}_${('00' + trackParsedObject.index).slice(-2)}_${trackParsedObject.title}.${codecParsedObject.extension}`;
552
+ }
553
+ return saveFileName;
554
+ }
555
+
556
  // ========== MasterDB/Configの暗号化を解く ==========
557
 
558
  async function decryptConfig () {