Update
Browse files- db/master.json +361 -1
- index.html +60 -54
- script.js +20 -7
db/master.json
CHANGED
|
@@ -114,6 +114,18 @@
|
|
| 114 |
"spotify": "1Ogp4yK6RFM50S1RKqU21b",
|
| 115 |
"youtube": "UCdGCfJqGjqmIOkpskWVz8Jw"
|
| 116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
}
|
| 118 |
],
|
| 119 |
"codecs": [
|
|
@@ -143,7 +155,35 @@
|
|
| 143 |
"bitDepth": 24,
|
| 144 |
"sampleRate": 48000,
|
| 145 |
"channelCount": 2,
|
| 146 |
-
"encodeParams":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
},
|
| 148 |
{
|
| 149 |
"uuid": "018d2821-51f1-7203-bd3d-34ff786250f3",
|
|
@@ -159,6 +199,20 @@
|
|
| 159 |
"channelCount": 2,
|
| 160 |
"encodeParams": "qaac64 --tvbr 127 -q 2 --rate keep --no-delay --gapless-mode 0 --threading"
|
| 161 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 162 |
{
|
| 163 |
"uuid": "018d2821-51f2-75aa-856a-a02ff306eb55",
|
| 164 |
"nameBasic": "HE-AAC",
|
|
@@ -173,6 +227,20 @@
|
|
| 173 |
"channelCount": 2,
|
| 174 |
"encodeParams": "qaac64 --cvbr 64 --he -q 2 --rate keep --gapless-mode 0 --threading"
|
| 175 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
{
|
| 177 |
"uuid": "018d5a94-8aac-740d-b5f7-4d9b87396715",
|
| 178 |
"nameBasic": "Opus",
|
|
@@ -542,6 +610,298 @@
|
|
| 542 |
"durationSamples": 29235967
|
| 543 |
}
|
| 544 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 545 |
}
|
| 546 |
]
|
| 547 |
}
|
|
|
|
| 114 |
"spotify": "1Ogp4yK6RFM50S1RKqU21b",
|
| 115 |
"youtube": "UCdGCfJqGjqmIOkpskWVz8Jw"
|
| 116 |
}
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"uuid": "018dadeb-101f-7ae2-a287-ad5d4b98d011",
|
| 120 |
+
"mbid": "fbd0f271-dc3d-444a-868b-c97d3b861608",
|
| 121 |
+
"name": "Alva Gracia",
|
| 122 |
+
"nameLatin": null,
|
| 123 |
+
"nameFileName": null,
|
| 124 |
+
"link": {
|
| 125 |
+
"itunes": 1408806188,
|
| 126 |
+
"spotify": "3XIfUQhOkgdfKXzL6bUX07",
|
| 127 |
+
"youtube": "UCr4NUDFAd9wchdDk-EtQl7Q"
|
| 128 |
+
}
|
| 129 |
}
|
| 130 |
],
|
| 131 |
"codecs": [
|
|
|
|
| 155 |
"bitDepth": 24,
|
| 156 |
"sampleRate": 48000,
|
| 157 |
"channelCount": 2,
|
| 158 |
+
"encodeParams": "flac -V -l 12 -b 4608 -m -r 8 -A subdivide_tukey(5)"
|
| 159 |
+
},
|
| 160 |
+
{
|
| 161 |
+
"uuid": "018dade4-df3d-7552-92f4-6babc27d7c2d",
|
| 162 |
+
"nameBasic": "FLAC",
|
| 163 |
+
"nameLong": "Free Lossless Audio Codec",
|
| 164 |
+
"extension": "flac",
|
| 165 |
+
"isCompress": true,
|
| 166 |
+
"isLossless": true,
|
| 167 |
+
"bitRateAvg": null,
|
| 168 |
+
"bitRateMax": 2116800,
|
| 169 |
+
"bitDepth": 24,
|
| 170 |
+
"sampleRate": 44100,
|
| 171 |
+
"channelCount": 2,
|
| 172 |
+
"encodeParams": "flac -V -l 12 -b 4608 -m -r 8 -A subdivide_tukey(5)"
|
| 173 |
+
},
|
| 174 |
+
{
|
| 175 |
+
"uuid": "018db181-e98a-78d1-acc3-84590681af8d",
|
| 176 |
+
"nameBasic": "FLAC",
|
| 177 |
+
"nameLong": "Free Lossless Audio Codec",
|
| 178 |
+
"extension": "flac",
|
| 179 |
+
"isCompress": true,
|
| 180 |
+
"isLossless": true,
|
| 181 |
+
"bitRateAvg": null,
|
| 182 |
+
"bitRateMax": 1411200,
|
| 183 |
+
"bitDepth": 16,
|
| 184 |
+
"sampleRate": 44100,
|
| 185 |
+
"channelCount": 2,
|
| 186 |
+
"encodeParams": "flac -V -l 12 -b 4608 -m -r 8 -A subdivide_tukey(5)"
|
| 187 |
},
|
| 188 |
{
|
| 189 |
"uuid": "018d2821-51f1-7203-bd3d-34ff786250f3",
|
|
|
|
| 199 |
"channelCount": 2,
|
| 200 |
"encodeParams": "qaac64 --tvbr 127 -q 2 --rate keep --no-delay --gapless-mode 0 --threading"
|
| 201 |
},
|
| 202 |
+
{
|
| 203 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67ccfbda28b0",
|
| 204 |
+
"nameBasic": "AAC-LC",
|
| 205 |
+
"nameLong": "Advanced Audio Coding - Low Complexity",
|
| 206 |
+
"extension": "m4a",
|
| 207 |
+
"isCompress": true,
|
| 208 |
+
"isLossless": false,
|
| 209 |
+
"bitRateAvg": 320000,
|
| 210 |
+
"bitRateMax": 384000,
|
| 211 |
+
"bitDepth": null,
|
| 212 |
+
"sampleRate": 44100,
|
| 213 |
+
"channelCount": 2,
|
| 214 |
+
"encodeParams": "qaac64 --tvbr 127 -q 2 --rate keep --no-delay --gapless-mode 0 --threading"
|
| 215 |
+
},
|
| 216 |
{
|
| 217 |
"uuid": "018d2821-51f2-75aa-856a-a02ff306eb55",
|
| 218 |
"nameBasic": "HE-AAC",
|
|
|
|
| 227 |
"channelCount": 2,
|
| 228 |
"encodeParams": "qaac64 --cvbr 64 --he -q 2 --rate keep --gapless-mode 0 --threading"
|
| 229 |
},
|
| 230 |
+
{
|
| 231 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67cd22beae91",
|
| 232 |
+
"nameBasic": "HE-AAC",
|
| 233 |
+
"nameLong": "Advanced Audio Coding - High Efficiency",
|
| 234 |
+
"extension": "m4a",
|
| 235 |
+
"isCompress": true,
|
| 236 |
+
"isLossless": false,
|
| 237 |
+
"bitRateAvg": 64000,
|
| 238 |
+
"bitRateMax": 72000,
|
| 239 |
+
"bitDepth": null,
|
| 240 |
+
"sampleRate": 44100,
|
| 241 |
+
"channelCount": 2,
|
| 242 |
+
"encodeParams": "qaac64 --cvbr 64 --he -q 2 --rate keep --gapless-mode 0 --threading"
|
| 243 |
+
},
|
| 244 |
{
|
| 245 |
"uuid": "018d5a94-8aac-740d-b5f7-4d9b87396715",
|
| 246 |
"nameBasic": "Opus",
|
|
|
|
| 610 |
"durationSamples": 29235967
|
| 611 |
}
|
| 612 |
]
|
| 613 |
+
},
|
| 614 |
+
{
|
| 615 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67ca1174150f",
|
| 616 |
+
"mbid": null,
|
| 617 |
+
"releaseDate": "2022-02-10",
|
| 618 |
+
"title": "Emotions Like",
|
| 619 |
+
"titleLatin": null,
|
| 620 |
+
"artist": ["018dadeb-101f-7ae2-a287-ad5d4b98d011"],
|
| 621 |
+
"barCode": 0,
|
| 622 |
+
"isCompilation": false,
|
| 623 |
+
"copyright": "(C) 2022 NCS",
|
| 624 |
+
"link": {
|
| 625 |
+
"itunes": 1600594931,
|
| 626 |
+
"spotify": "4j3Nf5FXhfkkQg45VMR8kB"
|
| 627 |
+
},
|
| 628 |
+
"isAllTrackSameCodecs": true,
|
| 629 |
+
"codecs": [
|
| 630 |
+
{
|
| 631 |
+
"uuid": "018dade4-df3d-7552-92f4-6babc27d7c2d",
|
| 632 |
+
"isOriginal": true,
|
| 633 |
+
"path": "flac"
|
| 634 |
+
},
|
| 635 |
+
{
|
| 636 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67ccfbda28b0",
|
| 637 |
+
"isOriginal": false,
|
| 638 |
+
"path": "aac_320k"
|
| 639 |
+
},
|
| 640 |
+
{
|
| 641 |
+
"uuid": "018d5a94-8aac-740d-b5f7-4d9b87396715",
|
| 642 |
+
"isOriginal": false,
|
| 643 |
+
"path": "opus_144k"
|
| 644 |
+
},
|
| 645 |
+
{
|
| 646 |
+
"uuid": "018d5a94-8aac-740d-b5f7-4d9cc9b69c80",
|
| 647 |
+
"isOriginal": false,
|
| 648 |
+
"path": "opus_64k"
|
| 649 |
+
},
|
| 650 |
+
{
|
| 651 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67cd22beae91",
|
| 652 |
+
"isOriginal": false,
|
| 653 |
+
"path": "aac_64k"
|
| 654 |
+
}
|
| 655 |
+
],
|
| 656 |
+
"isCoverArtsUseDefault": true,
|
| 657 |
+
"coverArts": null,
|
| 658 |
+
"coverArtPotatoWebp16pxBase64": "UklGRogAAABXRUJQVlA4IHwAAACwAgCdASoQABAAAsBMJbACdFQgFP6Vz2DJZk4TAEAA9nf6Nl24aeSn/h35Ew6k9s21LQiHfti34M/xDWoIJr1w+sWP0hQFVFfNUxPc1Rr6zx+oLqPmTtf5xgz4a0jQ+6IAMoZ9jYHScTu801+xX+HmAJTFZ5et7oprzwAA",
|
| 659 |
+
"tracks": [
|
| 660 |
+
{
|
| 661 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67cb223970ec",
|
| 662 |
+
"disc": 1,
|
| 663 |
+
"index": 1,
|
| 664 |
+
"title": "Emotions Like",
|
| 665 |
+
"titleLatin": null,
|
| 666 |
+
"titleFileName": null,
|
| 667 |
+
"artist": ["018dadeb-101f-7ae2-a287-ad5d4b98d011"],
|
| 668 |
+
"lyricist": null,
|
| 669 |
+
"composer": null,
|
| 670 |
+
"arranger": null,
|
| 671 |
+
"codecs": null,
|
| 672 |
+
"durationSamples": 6846000
|
| 673 |
+
}
|
| 674 |
+
]
|
| 675 |
+
},
|
| 676 |
+
{
|
| 677 |
+
"uuid": "018dae76-ab7d-7287-a65c-50f5493a7456",
|
| 678 |
+
"mbid": "1d721d0c-82a7-4667-b28a-c58a2429e8e2",
|
| 679 |
+
"releaseDate": "2022-11-22",
|
| 680 |
+
"title": "planetarium",
|
| 681 |
+
"titleLatin": null,
|
| 682 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 683 |
+
"barCode": 859758916831,
|
| 684 |
+
"isCompilation": false,
|
| 685 |
+
"copyright": "(C) 2022 Aqu3ra",
|
| 686 |
+
"link": {
|
| 687 |
+
"itunes": 1652622029,
|
| 688 |
+
"spotify": "0wrOe41JwHY2fTeueb9Cbu"
|
| 689 |
+
},
|
| 690 |
+
"isAllTrackSameCodecs": true,
|
| 691 |
+
"codecs": [
|
| 692 |
+
{
|
| 693 |
+
"uuid": "018db181-e98a-78d1-acc3-84590681af8d",
|
| 694 |
+
"isOriginal": true,
|
| 695 |
+
"path": "flac"
|
| 696 |
+
},
|
| 697 |
+
{
|
| 698 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67ccfbda28b0",
|
| 699 |
+
"isOriginal": false,
|
| 700 |
+
"path": "aac_320k"
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"uuid": "018d5a94-8aac-740d-b5f7-4d9b87396715",
|
| 704 |
+
"isOriginal": false,
|
| 705 |
+
"path": "opus_144k"
|
| 706 |
+
},
|
| 707 |
+
{
|
| 708 |
+
"uuid": "018d5a94-8aac-740d-b5f7-4d9cc9b69c80",
|
| 709 |
+
"isOriginal": false,
|
| 710 |
+
"path": "opus_64k"
|
| 711 |
+
},
|
| 712 |
+
{
|
| 713 |
+
"uuid": "018dadbb-c8d6-7a2f-ab0c-67cd22beae91",
|
| 714 |
+
"isOriginal": false,
|
| 715 |
+
"path": "aac_64k"
|
| 716 |
+
}
|
| 717 |
+
],
|
| 718 |
+
"isCoverArtsUseDefault": true,
|
| 719 |
+
"coverArts": null,
|
| 720 |
+
"coverArtPotatoWebp16pxBase64": "UklGRoAAAABXRUJQVlA4IHQAAAAQAgCdASoQABAAAsBMJbACdAEO+W9L0HFAAP75R85WcMwQulyASIsZfYcJSGfPgcYcdqBsf3bTqVyxaUpZ0mVG3pyqv8JZCXK3fkTEobJ/y3H+uaRf8Qmi4iF7dBbwk1zoNvHDgcYbTD8FNz4wsSUIPwAAAA==",
|
| 721 |
+
"tracks": [
|
| 722 |
+
{
|
| 723 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d4f03a570d",
|
| 724 |
+
"disc": 1,
|
| 725 |
+
"index": 1,
|
| 726 |
+
"title": "Sleeping Awake",
|
| 727 |
+
"titleLatin": null,
|
| 728 |
+
"titleFileName": null,
|
| 729 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 730 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 731 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 732 |
+
"arranger": null,
|
| 733 |
+
"codecs": null,
|
| 734 |
+
"durationSamples": 9599019
|
| 735 |
+
},
|
| 736 |
+
{
|
| 737 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d5fa064c3d",
|
| 738 |
+
"disc": 1,
|
| 739 |
+
"index": 2,
|
| 740 |
+
"title": "アイボリー",
|
| 741 |
+
"titleLatin": "Ivory",
|
| 742 |
+
"titleFileName": null,
|
| 743 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 744 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 745 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 746 |
+
"arranger": null,
|
| 747 |
+
"codecs": null,
|
| 748 |
+
"durationSamples": 8690668
|
| 749 |
+
},
|
| 750 |
+
{
|
| 751 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d6038a8268",
|
| 752 |
+
"disc": 1,
|
| 753 |
+
"index": 3,
|
| 754 |
+
"title": "ロンリーユニバース",
|
| 755 |
+
"titleLatin": "Lonely Universe",
|
| 756 |
+
"titleFileName": null,
|
| 757 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 758 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 759 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 760 |
+
"arranger": null,
|
| 761 |
+
"codecs": null,
|
| 762 |
+
"durationSamples": 9657900
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d7bf4c12af",
|
| 766 |
+
"disc": 1,
|
| 767 |
+
"index": 4,
|
| 768 |
+
"title": "メーデー",
|
| 769 |
+
"titleLatin": "Mayday",
|
| 770 |
+
"titleFileName": null,
|
| 771 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 772 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 773 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 774 |
+
"arranger": null,
|
| 775 |
+
"codecs": null,
|
| 776 |
+
"durationSamples": 9641865
|
| 777 |
+
},
|
| 778 |
+
{
|
| 779 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d802fed938",
|
| 780 |
+
"disc": 1,
|
| 781 |
+
"index": 5,
|
| 782 |
+
"title": "ラムネ",
|
| 783 |
+
"titleLatin": "Ramune",
|
| 784 |
+
"titleFileName": null,
|
| 785 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 786 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 787 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 788 |
+
"arranger": null,
|
| 789 |
+
"codecs": null,
|
| 790 |
+
"durationSamples": 9426375
|
| 791 |
+
},
|
| 792 |
+
{
|
| 793 |
+
"uuid": "018dae75-e118-7e89-bfaf-46d9ad4b6697",
|
| 794 |
+
"disc": 1,
|
| 795 |
+
"index": 6,
|
| 796 |
+
"title": "ゴーストダンス",
|
| 797 |
+
"titleLatin": "Ghost Dance",
|
| 798 |
+
"titleFileName": null,
|
| 799 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 800 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 801 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 802 |
+
"arranger": null,
|
| 803 |
+
"codecs": null,
|
| 804 |
+
"durationSamples": 10079290
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"uuid": "018dae75-e118-7e89-bfaf-46da55192a4c",
|
| 808 |
+
"disc": 1,
|
| 809 |
+
"index": 7,
|
| 810 |
+
"title": "シックス・フィート・アンダー",
|
| 811 |
+
"titleLatin": "Six Feet Under",
|
| 812 |
+
"titleFileName": null,
|
| 813 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 814 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 815 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 816 |
+
"arranger": null,
|
| 817 |
+
"codecs": null,
|
| 818 |
+
"durationSamples": 9497747
|
| 819 |
+
},
|
| 820 |
+
{
|
| 821 |
+
"uuid": "018dae75-e118-7e89-bfaf-46db82fdf937",
|
| 822 |
+
"disc": 1,
|
| 823 |
+
"index": 8,
|
| 824 |
+
"title": "ミッドナイトサン",
|
| 825 |
+
"titleLatin": "MidnightSun",
|
| 826 |
+
"titleFileName": null,
|
| 827 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 828 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 829 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 830 |
+
"arranger": null,
|
| 831 |
+
"codecs": null,
|
| 832 |
+
"durationSamples": 9523328
|
| 833 |
+
},
|
| 834 |
+
{
|
| 835 |
+
"uuid": "018dae75-e118-7e89-bfaf-46dce8f44275",
|
| 836 |
+
"disc": 1,
|
| 837 |
+
"index": 9,
|
| 838 |
+
"title": "Day&Night",
|
| 839 |
+
"titleLatin": null,
|
| 840 |
+
"titleFileName": null,
|
| 841 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 842 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 843 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 844 |
+
"arranger": null,
|
| 845 |
+
"codecs": null,
|
| 846 |
+
"durationSamples": 9235721
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"uuid": "018dae75-e118-7e89-bfaf-46ddf81d0461",
|
| 850 |
+
"disc": 1,
|
| 851 |
+
"index": 10,
|
| 852 |
+
"title": "解けない夏",
|
| 853 |
+
"titleLatin": "Tokenai Natsu",
|
| 854 |
+
"titleFileName": null,
|
| 855 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 856 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 857 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 858 |
+
"arranger": null,
|
| 859 |
+
"codecs": null,
|
| 860 |
+
"durationSamples": 9525600
|
| 861 |
+
},
|
| 862 |
+
{
|
| 863 |
+
"uuid": "018dae75-e118-7e89-bfaf-46de48d8d5ea",
|
| 864 |
+
"disc": 1,
|
| 865 |
+
"index": 11,
|
| 866 |
+
"title": "アイスドロップ",
|
| 867 |
+
"titleLatin": "Ice Drop",
|
| 868 |
+
"titleFileName": null,
|
| 869 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 870 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 871 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 872 |
+
"arranger": null,
|
| 873 |
+
"codecs": null,
|
| 874 |
+
"durationSamples": 9916150
|
| 875 |
+
},
|
| 876 |
+
{
|
| 877 |
+
"uuid": "018dae75-e118-7e89-bfaf-46dfd37e561d",
|
| 878 |
+
"disc": 1,
|
| 879 |
+
"index": 12,
|
| 880 |
+
"title": "真夜中のダイバー",
|
| 881 |
+
"titleLatin": "Midnight Diver",
|
| 882 |
+
"titleFileName": null,
|
| 883 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 884 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 885 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 886 |
+
"arranger": null,
|
| 887 |
+
"codecs": null,
|
| 888 |
+
"durationSamples": 6968825
|
| 889 |
+
},
|
| 890 |
+
{
|
| 891 |
+
"uuid": "018dae75-e119-784d-93da-3566d8057f01",
|
| 892 |
+
"disc": 1,
|
| 893 |
+
"index": 13,
|
| 894 |
+
"title": "Namioto",
|
| 895 |
+
"titleLatin": null,
|
| 896 |
+
"titleFileName": null,
|
| 897 |
+
"artist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 898 |
+
"lyricist": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 899 |
+
"composer": ["018d286b-9507-70d9-b4cd-17416f6d8d64"],
|
| 900 |
+
"arranger": null,
|
| 901 |
+
"codecs": null,
|
| 902 |
+
"durationSamples": 8424000
|
| 903 |
+
}
|
| 904 |
+
]
|
| 905 |
}
|
| 906 |
]
|
| 907 |
}
|
index.html
CHANGED
|
@@ -38,7 +38,11 @@
|
|
| 38 |
<div id="mainContainer" class="container px-4 my-4">
|
| 39 |
<h1 class="user-select-none text-center">discography_v2_cdn_front</h1>
|
| 40 |
<hr class="my-4">
|
| 41 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
<div class="modal fade user-select-none" id="settingsModal" tabindex="-1">
|
| 43 |
<div class="modal-dialog modal-dialog-scrollable">
|
| 44 |
<div class="modal-content">
|
|
@@ -66,7 +70,7 @@
|
|
| 66 |
</div>
|
| 67 |
</div>
|
| 68 |
<hr class="my-4">
|
| 69 |
-
<h3 class="mb-3 user-select-none">Album List</h3>
|
| 70 |
<div class="fetchingDataNowLabel user-select-none d-none">
|
| 71 |
<div class="d-inline-flex align-items-center mb-3">
|
| 72 |
<div class="spinner-border text-primary me-2" role="status">
|
|
@@ -77,7 +81,7 @@
|
|
| 77 |
</div>
|
| 78 |
<div id="albumAllCardGroup" class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5 g-4 user-select-none"></div>
|
| 79 |
<hr class="my-4">
|
| 80 |
-
<h3 class="mb-3 user-select-none">Track List</h3>
|
| 81 |
<div class="fetchingDataNowLabel user-select-none d-none">
|
| 82 |
<div class="d-inline-flex align-items-center mb-3">
|
| 83 |
<div class="spinner-border text-primary me-2" role="status">
|
|
@@ -101,57 +105,59 @@
|
|
| 101 |
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
| 102 |
</div>
|
| 103 |
<div class="modal-body">
|
| 104 |
-
<
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
<
|
| 108 |
-
<
|
| 109 |
-
<
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
<
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
<
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
<
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
<
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
<
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
<
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
<
|
| 147 |
-
|
| 148 |
-
<div class="accordion-
|
| 149 |
-
<
|
| 150 |
-
<
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
<div class="accordion-
|
| 154 |
-
<
|
|
|
|
|
|
|
| 155 |
</div>
|
| 156 |
</div>
|
| 157 |
</div>
|
|
|
|
| 38 |
<div id="mainContainer" class="container px-4 my-4">
|
| 39 |
<h1 class="user-select-none text-center">discography_v2_cdn_front</h1>
|
| 40 |
<hr class="my-4">
|
| 41 |
+
<div id="topMenuButtonContainer" class="text-center">
|
| 42 |
+
<a class="btn btn-primary mx-1" href="#albumAllListTitleLabel" role="button">Album List</a>
|
| 43 |
+
<a class="btn btn-primary mx-1" href="#trackAllListTitleLabel" role="button">Track List</a>
|
| 44 |
+
<button id="showSettingsModalButton" class="btn btn-primary mx-1" type="button" data-bs-toggle="modal" data-bs-target="#settingsModal"><!-- <i class="bi bi-gear-wide-connected me-1"></i> -->Settings</button>
|
| 45 |
+
</div>
|
| 46 |
<div class="modal fade user-select-none" id="settingsModal" tabindex="-1">
|
| 47 |
<div class="modal-dialog modal-dialog-scrollable">
|
| 48 |
<div class="modal-content">
|
|
|
|
| 70 |
</div>
|
| 71 |
</div>
|
| 72 |
<hr class="my-4">
|
| 73 |
+
<h3 id="albumAllListTitleLabel" class="mb-3 user-select-none">Album List</h3>
|
| 74 |
<div class="fetchingDataNowLabel user-select-none d-none">
|
| 75 |
<div class="d-inline-flex align-items-center mb-3">
|
| 76 |
<div class="spinner-border text-primary me-2" role="status">
|
|
|
|
| 81 |
</div>
|
| 82 |
<div id="albumAllCardGroup" class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5 g-4 user-select-none"></div>
|
| 83 |
<hr class="my-4">
|
| 84 |
+
<h3 id="trackAllListTitleLabel" class="mb-3 user-select-none">Track List</h3>
|
| 85 |
<div class="fetchingDataNowLabel user-select-none d-none">
|
| 86 |
<div class="d-inline-flex align-items-center mb-3">
|
| 87 |
<div class="spinner-border text-primary me-2" role="status">
|
|
|
|
| 105 |
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
| 106 |
</div>
|
| 107 |
<div class="modal-body">
|
| 108 |
+
<div id="albumInfoModalContent" class="bg-transparent position-relative">
|
| 109 |
+
<h3>Metadata</h3>
|
| 110 |
+
<h4>General</h4>
|
| 111 |
+
<table class="table table-sm table-responsive table-hover table-borderless align-middle">
|
| 112 |
+
<tbody>
|
| 113 |
+
<tr>
|
| 114 |
+
<td>Album Title</td>
|
| 115 |
+
<td id="albumInfoModal-metadataTable-albumTitle">---</td>
|
| 116 |
+
</tr>
|
| 117 |
+
<tr>
|
| 118 |
+
<td>Album Artist</td>
|
| 119 |
+
<td id="albumInfoModal-metadataTable-albumArtist">---</td>
|
| 120 |
+
</tr>
|
| 121 |
+
<tr>
|
| 122 |
+
<td>Album Released</td>
|
| 123 |
+
<td id="albumInfoModal-metadataTable-albumReleaseDate">YYYY/MM/DD</td>
|
| 124 |
+
</tr>
|
| 125 |
+
<tr>
|
| 126 |
+
<td>Album Barcode</td>
|
| 127 |
+
<td id="albumInfoModal-metadataTable-albumBarcode">Sample Number</td>
|
| 128 |
+
</tr>
|
| 129 |
+
<tr>
|
| 130 |
+
<td>Album Copyright</td>
|
| 131 |
+
<td id="albumInfoModal-metadataTable-albumCopyright">---</td>
|
| 132 |
+
</tr>
|
| 133 |
+
</tbody>
|
| 134 |
+
</table>
|
| 135 |
+
<h4>Track List</h4>
|
| 136 |
+
<div id="albumInfoModal-trackAllListGroup" class="list-group user-select-none mb-4">
|
| 137 |
+
<!-- <button type="button" class="list-group-item list-group-item-action d-flex" disabled>
|
| 138 |
+
<div class="flex-fill w-100">Artist</div>
|
| 139 |
+
<div class="flex-fill w-100">Track</div>
|
| 140 |
+
</button> -->
|
| 141 |
+
</div>
|
| 142 |
+
<h4>External Links</h4>
|
| 143 |
+
<table id="albumInfoModal-externalLinkTableRoot" class="table table-sm table-responsive table-hover table-borderless align-middle">
|
| 144 |
+
<tbody id="albumInfoModal-externalLinkTable">
|
| 145 |
+
</tbody>
|
| 146 |
+
</table>
|
| 147 |
+
<h4>Cover Artwork Images</h4>
|
| 148 |
+
<div class="mb-3" id="albumInfoModal-coverArtLinkDiv">
|
| 149 |
+
</div>
|
| 150 |
+
<div id="debugAreaSection" class="d-none">
|
| 151 |
+
<h3>Debug Area</h3>
|
| 152 |
+
<div class="accordion" id="albumInfoModal-DebugAcd">
|
| 153 |
+
<div class="accordion-item">
|
| 154 |
+
<h2 class="accordion-header">
|
| 155 |
+
<button class="accordion-button collapsed user-select-none" type="button" data-bs-toggle="collapse" data-bs-target="#albumInfoModal-DebugAcdInCollapse">Parsed data output (album)</button>
|
| 156 |
+
</h2>
|
| 157 |
+
<div id="albumInfoModal-DebugAcdInCollapse" class="accordion-collapse collapse" data-bs-parent="#albumInfoModal-DebugAcd">
|
| 158 |
+
<div class="accordion-body">
|
| 159 |
+
<pre class=""><code id="albumInfoModal-DebugAcdOutputEl"></code></pre>
|
| 160 |
+
</div>
|
| 161 |
</div>
|
| 162 |
</div>
|
| 163 |
</div>
|
script.js
CHANGED
|
@@ -188,8 +188,8 @@ function loadTrackInfoModal (trackUuid) {
|
|
| 188 |
document.getElementById('trackInfoModal-metadataTable-artists').setAttribute('data-bs-toggle', 'tooltip');
|
| 189 |
document.getElementById('trackInfoModal-metadataTable-artists').setAttribute('data-bs-title', trackParsedObject.artist.map((obj) => {if (obj.nameLatin !== null) {return obj.nameLatin} else {return obj.name}}).join(', '));
|
| 190 |
} else {
|
| 191 |
-
document.getElementById('trackInfoModal-metadataTable-
|
| 192 |
-
document.getElementById('trackInfoModal-metadataTable-
|
| 193 |
}
|
| 194 |
if (trackParsedObject.lyricist === null) {
|
| 195 |
document.getElementById('trackInfoModal-metadataTable-lyricist').parentNode.classList.add('d-none');
|
|
@@ -237,7 +237,7 @@ function loadTrackInfoModal (trackUuid) {
|
|
| 237 |
}
|
| 238 |
}
|
| 239 |
document.getElementById('trackInfoModal-metadataTable-trackDurationReadable').innerHTML = msecToReadableTime(trackParsedObject.durationMsecs);
|
| 240 |
-
document.getElementById('trackInfoModal-metadataTable-trackDurationMsec').innerHTML = `${trackParsedObject.durationMsecs} ms`;
|
| 241 |
document.getElementById('trackInfoModal-metadataTable-trackDurationSamples').innerHTML = `${trackParsedObject.durationSamples} samples`;
|
| 242 |
document.getElementById('trackInfoModal-metadataTable-albumTitle').innerHTML = albumParsedObject.title;
|
| 243 |
if (albumParsedObject.titleLatin === null) {
|
|
@@ -369,6 +369,8 @@ function loadTrackInfoModal (trackUuid) {
|
|
| 369 |
const bootstrapTooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
| 370 |
bootstrapTooltipList = [...bootstrapTooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
|
| 371 |
document.getElementById('trackInfoModal-DebugAcdOutputEl').innerHTML = JSON.stringify(albumParsedObject, '', ' ');
|
|
|
|
|
|
|
| 372 |
const trackInfoModal = new bootstrap.Modal(document.getElementById('trackInfoModal'));
|
| 373 |
trackInfoModal.show();
|
| 374 |
}
|
|
@@ -389,8 +391,8 @@ function loadTrackInfoModal2 (trackUuid) {
|
|
| 389 |
document.getElementById('trackInfoModal2-metadataTable-artists').setAttribute('data-bs-toggle', 'tooltip');
|
| 390 |
document.getElementById('trackInfoModal2-metadataTable-artists').setAttribute('data-bs-title', trackParsedObject.artist.map((obj) => {if (obj.nameLatin !== null) {return obj.nameLatin} else {return obj.name}}).join(', '));
|
| 391 |
} else {
|
| 392 |
-
document.getElementById('trackInfoModal2-metadataTable-
|
| 393 |
-
document.getElementById('trackInfoModal2-metadataTable-
|
| 394 |
}
|
| 395 |
if (trackParsedObject.lyricist === null) {
|
| 396 |
document.getElementById('trackInfoModal2-metadataTable-lyricist').parentNode.classList.add('d-none');
|
|
@@ -438,7 +440,7 @@ function loadTrackInfoModal2 (trackUuid) {
|
|
| 438 |
}
|
| 439 |
}
|
| 440 |
document.getElementById('trackInfoModal2-metadataTable-trackDurationReadable').innerHTML = msecToReadableTime(trackParsedObject.durationMsecs);
|
| 441 |
-
document.getElementById('trackInfoModal2-metadataTable-trackDurationMsec').innerHTML = `${trackParsedObject.durationMsecs} ms`;
|
| 442 |
document.getElementById('trackInfoModal2-metadataTable-trackDurationSamples').innerHTML = `${trackParsedObject.durationSamples} samples`;
|
| 443 |
document.getElementById('trackInfoModal2-metadataTable-albumTitle').innerHTML = albumParsedObject.title;
|
| 444 |
if (albumParsedObject.titleLatin === null) {
|
|
@@ -570,6 +572,8 @@ function loadTrackInfoModal2 (trackUuid) {
|
|
| 570 |
const bootstrapTooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
| 571 |
bootstrapTooltipList = [...bootstrapTooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
|
| 572 |
document.getElementById('trackInfoModal2-DebugAcdOutputEl').innerHTML = JSON.stringify(albumParsedObject, '', ' ');
|
|
|
|
|
|
|
| 573 |
const trackInfoModal2 = new bootstrap.Modal(document.getElementById('trackInfoModal2'));
|
| 574 |
trackInfoModal2.show();
|
| 575 |
}
|
|
@@ -998,6 +1002,15 @@ function writeAppSettingsToLocalStorage () {
|
|
| 998 |
console.log(`Wrote appSettings:\n${JSON.stringify(appSettingsSaveData)}`);
|
| 999 |
}
|
| 1000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1001 |
// ========== その他使い回す汎用関数など ==========
|
| 1002 |
|
| 1003 |
function msecToReadableTime (msec) {
|
|
@@ -1006,4 +1019,4 @@ function msecToReadableTime (msec) {
|
|
| 1006 |
let min = ('00' + Math.floor(sec / 60)).slice(-2);
|
| 1007 |
let secPart = ('00' + Math.floor(sec % 60)).slice(-2);
|
| 1008 |
return `${min}:${secPart}.${('000' + msecCeiled % 1000).slice(-3)}`;
|
| 1009 |
-
}
|
|
|
|
| 188 |
document.getElementById('trackInfoModal-metadataTable-artists').setAttribute('data-bs-toggle', 'tooltip');
|
| 189 |
document.getElementById('trackInfoModal-metadataTable-artists').setAttribute('data-bs-title', trackParsedObject.artist.map((obj) => {if (obj.nameLatin !== null) {return obj.nameLatin} else {return obj.name}}).join(', '));
|
| 190 |
} else {
|
| 191 |
+
document.getElementById('trackInfoModal-metadataTable-artists').removeAttribute('data-bs-toggle');
|
| 192 |
+
document.getElementById('trackInfoModal-metadataTable-artists').removeAttribute('data-bs-title');
|
| 193 |
}
|
| 194 |
if (trackParsedObject.lyricist === null) {
|
| 195 |
document.getElementById('trackInfoModal-metadataTable-lyricist').parentNode.classList.add('d-none');
|
|
|
|
| 237 |
}
|
| 238 |
}
|
| 239 |
document.getElementById('trackInfoModal-metadataTable-trackDurationReadable').innerHTML = msecToReadableTime(trackParsedObject.durationMsecs);
|
| 240 |
+
document.getElementById('trackInfoModal-metadataTable-trackDurationMsec').innerHTML = `${Math.ceil(trackParsedObject.durationMsecs)} ms`;
|
| 241 |
document.getElementById('trackInfoModal-metadataTable-trackDurationSamples').innerHTML = `${trackParsedObject.durationSamples} samples`;
|
| 242 |
document.getElementById('trackInfoModal-metadataTable-albumTitle').innerHTML = albumParsedObject.title;
|
| 243 |
if (albumParsedObject.titleLatin === null) {
|
|
|
|
| 369 |
const bootstrapTooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
| 370 |
bootstrapTooltipList = [...bootstrapTooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
|
| 371 |
document.getElementById('trackInfoModal-DebugAcdOutputEl').innerHTML = JSON.stringify(albumParsedObject, '', ' ');
|
| 372 |
+
document.getElementById('trackInfoModal-ModalCloseButton').addEventListener('click', () => {allAudioElementStop()});
|
| 373 |
+
document.getElementById('trackInfoModal-ModalCloseIconButton').addEventListener('click', () => {allAudioElementStop()});
|
| 374 |
const trackInfoModal = new bootstrap.Modal(document.getElementById('trackInfoModal'));
|
| 375 |
trackInfoModal.show();
|
| 376 |
}
|
|
|
|
| 391 |
document.getElementById('trackInfoModal2-metadataTable-artists').setAttribute('data-bs-toggle', 'tooltip');
|
| 392 |
document.getElementById('trackInfoModal2-metadataTable-artists').setAttribute('data-bs-title', trackParsedObject.artist.map((obj) => {if (obj.nameLatin !== null) {return obj.nameLatin} else {return obj.name}}).join(', '));
|
| 393 |
} else {
|
| 394 |
+
document.getElementById('trackInfoModal2-metadataTable-artists').removeAttribute('data-bs-toggle');
|
| 395 |
+
document.getElementById('trackInfoModal2-metadataTable-artists').removeAttribute('data-bs-title');
|
| 396 |
}
|
| 397 |
if (trackParsedObject.lyricist === null) {
|
| 398 |
document.getElementById('trackInfoModal2-metadataTable-lyricist').parentNode.classList.add('d-none');
|
|
|
|
| 440 |
}
|
| 441 |
}
|
| 442 |
document.getElementById('trackInfoModal2-metadataTable-trackDurationReadable').innerHTML = msecToReadableTime(trackParsedObject.durationMsecs);
|
| 443 |
+
document.getElementById('trackInfoModal2-metadataTable-trackDurationMsec').innerHTML = `${Math.ceil(trackParsedObject.durationMsecs)} ms`;
|
| 444 |
document.getElementById('trackInfoModal2-metadataTable-trackDurationSamples').innerHTML = `${trackParsedObject.durationSamples} samples`;
|
| 445 |
document.getElementById('trackInfoModal2-metadataTable-albumTitle').innerHTML = albumParsedObject.title;
|
| 446 |
if (albumParsedObject.titleLatin === null) {
|
|
|
|
| 572 |
const bootstrapTooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
| 573 |
bootstrapTooltipList = [...bootstrapTooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
|
| 574 |
document.getElementById('trackInfoModal2-DebugAcdOutputEl').innerHTML = JSON.stringify(albumParsedObject, '', ' ');
|
| 575 |
+
document.getElementById('trackInfoModal2-ModalCloseButton').addEventListener('click', () => {allAudioElementStop()});
|
| 576 |
+
document.getElementById('trackInfoModal2-ModalCloseIconButton').addEventListener('click', () => {allAudioElementStop()});
|
| 577 |
const trackInfoModal2 = new bootstrap.Modal(document.getElementById('trackInfoModal2'));
|
| 578 |
trackInfoModal2.show();
|
| 579 |
}
|
|
|
|
| 1002 |
console.log(`Wrote appSettings:\n${JSON.stringify(appSettingsSaveData)}`);
|
| 1003 |
}
|
| 1004 |
|
| 1005 |
+
// ========== 全てのAudio要素をStop ==========
|
| 1006 |
+
|
| 1007 |
+
function allAudioElementStop () {
|
| 1008 |
+
let audioElements = document.getElementsByTagName('audio');
|
| 1009 |
+
for (let i = 0; i < audioElements.length; i++) {
|
| 1010 |
+
audioElements[i].pause();
|
| 1011 |
+
}
|
| 1012 |
+
}
|
| 1013 |
+
|
| 1014 |
// ========== その他使い回す汎用関数など ==========
|
| 1015 |
|
| 1016 |
function msecToReadableTime (msec) {
|
|
|
|
| 1019 |
let min = ('00' + Math.floor(sec / 60)).slice(-2);
|
| 1020 |
let secPart = ('00' + Math.floor(sec % 60)).slice(-2);
|
| 1021 |
return `${min}:${secPart}.${('000' + msecCeiled % 1000).slice(-3)}`;
|
| 1022 |
+
}
|