Browse Source

Merge pull request #1 from Borewit/music-metadata-browser

Maybe try music-metadata-browser?
20230320
MengYX 5 years ago
committed by GitHub
parent
commit
c7ed517ede
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 254
      package-lock.json
  2. 2
      package.json
  3. 25
      src/plugins/qmc.js
  4. 15
      src/plugins/raw.js

254
package-lock.json

@ -2075,8 +2075,7 @@
"base64-js": { "base64-js": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz",
"integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE="
"dev": true
}, },
"batch": { "batch": {
"version": "0.6.1", "version": "0.6.1",
@ -2500,6 +2499,14 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true "dev": true
}, },
"chainsaw": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz",
"integrity": "sha1-EaBRAtHEx4W20EFdM21aOhYSkT4=",
"requires": {
"traverse": ">=0.3.0 <0.4"
}
},
"chalk": { "chalk": {
"version": "2.4.2", "version": "2.4.2",
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
@ -2872,8 +2879,7 @@
"content-type": { "content-type": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
"integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
"dev": true
}, },
"convert-source-map": { "convert-source-map": {
"version": "1.6.0", "version": "1.6.0",
@ -3453,7 +3459,6 @@
"version": "4.1.1", "version": "4.1.1",
"resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz",
"integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
"dev": true,
"requires": { "requires": {
"ms": "^2.1.1" "ms": "^2.1.1"
} }
@ -3573,7 +3578,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
"integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
"dev": true,
"requires": { "requires": {
"object-keys": "^1.0.12" "object-keys": "^1.0.12"
} }
@ -3970,7 +3974,6 @@
"version": "1.13.0", "version": "1.13.0",
"resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz", "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz",
"integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=", "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=",
"dev": true,
"requires": { "requires": {
"es-to-primitive": "^1.2.0", "es-to-primitive": "^1.2.0",
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
@ -3984,13 +3987,17 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz",
"integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=", "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=",
"dev": true,
"requires": { "requires": {
"is-callable": "^1.1.4", "is-callable": "^1.1.4",
"is-date-object": "^1.0.1", "is-date-object": "^1.0.1",
"is-symbol": "^1.0.2" "is-symbol": "^1.0.2"
} }
}, },
"es6-object-assign": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
"integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
},
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
@ -4364,6 +4371,11 @@
"schema-utils": "^1.0.0" "schema-utils": "^1.0.0"
} }
}, },
"file-type": {
"version": "12.3.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.3.0.tgz",
"integrity": "sha512-4E4Esq9KLwjYCY32E7qSmd0h7LefcniZHX+XcdJ4Wfx1uGJX7QCigiqw/U0yT7WOslm28yhxl87DJ0wHYv0RAA=="
},
"filesize": { "filesize": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz",
@ -5127,8 +5139,7 @@
"function-bind": { "function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
"integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
"dev": true
}, },
"get-caller-file": { "get-caller-file": {
"version": "2.0.5", "version": "2.0.5",
@ -5279,7 +5290,6 @@
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
"integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
"dev": true,
"requires": { "requires": {
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
} }
@ -5310,8 +5320,7 @@
"has-symbols": { "has-symbols": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
"dev": true
}, },
"has-value": { "has-value": {
"version": "1.0.0", "version": "1.0.0",
@ -5371,6 +5380,14 @@
"minimalistic-assert": "^1.0.1" "minimalistic-assert": "^1.0.1"
} }
}, },
"hashish": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz",
"integrity": "sha1-bWC8b/r3Ebav1g5CbQd5iAFOZVQ=",
"requires": {
"traverse": ">=0.2.4"
}
},
"he": { "he": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
@ -5676,8 +5693,7 @@
"ieee754": { "ieee754": {
"version": "1.1.13", "version": "1.1.13",
"resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz",
"integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q="
"dev": true
}, },
"iferr": { "iferr": {
"version": "0.1.5", "version": "0.1.5",
@ -5760,8 +5776,7 @@
"inherits": { "inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz",
"integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
"dev": true
}, },
"internal-ip": { "internal-ip": {
"version": "4.3.0", "version": "4.3.0",
@ -5844,6 +5859,11 @@
} }
} }
}, },
"is-arguments": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
"integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA=="
},
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
@ -5868,8 +5888,7 @@
"is-callable": { "is-callable": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz",
"integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=", "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU="
"dev": true
}, },
"is-color-stop": { "is-color-stop": {
"version": "1.1.0", "version": "1.1.0",
@ -5908,8 +5927,7 @@
"is-date-object": { "is-date-object": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz",
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
"dev": true
}, },
"is-descriptor": { "is-descriptor": {
"version": "0.1.6", "version": "0.1.6",
@ -5954,6 +5972,11 @@
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true "dev": true
}, },
"is-generator-function": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",
"integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw=="
},
"is-glob": { "is-glob": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
@ -5963,6 +5986,14 @@
"is-extglob": "^2.1.1" "is-extglob": "^2.1.1"
} }
}, },
"is-nan": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.2.1.tgz",
"integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=",
"requires": {
"define-properties": "^1.1.1"
}
},
"is-number": { "is-number": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
@ -6032,7 +6063,6 @@
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz", "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": { "requires": {
"has": "^1.0.1" "has": "^1.0.1"
} }
@ -6068,7 +6098,6 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz", "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz",
"integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=", "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=",
"dev": true,
"requires": { "requires": {
"has-symbols": "^1.0.0" "has-symbols": "^1.0.0"
} }
@ -6076,8 +6105,7 @@
"is-typedarray": { "is-typedarray": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
"dev": true
}, },
"is-windows": { "is-windows": {
"version": "1.0.2", "version": "1.0.2",
@ -6190,14 +6218,6 @@
"integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
"dev": true "dev": true
}, },
"jsmediatags": {
"version": "3.9.1",
"resolved": "https://registry.npm.taobao.org/jsmediatags/download/jsmediatags-3.9.1.tgz",
"integrity": "sha1-yPFsVd2Es0HbQvcNSbEMVTFM8X0=",
"requires": {
"xhr2": "^0.1.4"
}
},
"json-parse-better-errors": { "json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
@ -6779,8 +6799,7 @@
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
"integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
"dev": true
}, },
"multicast-dns": { "multicast-dns": {
"version": "6.2.3", "version": "6.2.3",
@ -6798,6 +6817,85 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true "dev": true
}, },
"music-metadata": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-4.5.2.tgz",
"integrity": "sha512-uZuNeY1oY67QOFkaPiNDJ4ALtDLIEXr/B+E1HBBlc3Jub9kqdABgggJX5GQIo8E95fD8vZtXEyqZ5NMm1LM3IA==",
"requires": {
"content-type": "^1.0.4",
"debug": "^4.1.0",
"file-type": "^12.1.0",
"media-typer": "^1.1.0",
"strtok3": "^3.0.1",
"token-types": "^1.0.3"
},
"dependencies": {
"media-typer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
"integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="
}
}
},
"music-metadata-browser": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/music-metadata-browser/-/music-metadata-browser-1.3.0.tgz",
"integrity": "sha512-4w3rzlLaJoDthtPkzd9GyBzWzgWs1zJ7iOeIFoxJ7NDpOCS3iXRDBLSFv8mKjdn1jl77ASgvousBaw/MGtmxUA==",
"requires": {
"assert": "^2.0.0",
"buffer": "^5.2.1",
"debug": "^4.0.1",
"music-metadata": "^4.4.0",
"readable-stream": "^3.3.0",
"readable-web-to-node-stream": "^1.1.4",
"remove": "^0.1.5",
"typedarray-to-buffer": "^3.1.5"
},
"dependencies": {
"assert": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
"integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
"requires": {
"es6-object-assign": "^1.1.0",
"is-nan": "^1.2.1",
"object-is": "^1.0.1",
"util": "^0.12.0"
}
},
"buffer": {
"version": "5.4.2",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.2.tgz",
"integrity": "sha512-iy9koArjAFCzGnx3ZvNA6Z0clIbbFgbdWQ0mKD3hO0krOrZh8UgA6qMKcZvwLJxS+D6iVR76+5/pV56yMNYTag==",
"requires": {
"base64-js": "^1.0.2",
"ieee754": "^1.1.4"
}
},
"readable-stream": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"util": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.1.tgz",
"integrity": "sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ==",
"requires": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"object.entries": "^1.1.0",
"safe-buffer": "^5.1.2"
}
}
}
},
"mz": { "mz": {
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz",
@ -7035,11 +7133,15 @@
} }
} }
}, },
"object-is": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
"integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY="
},
"object-keys": { "object-keys": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
"integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4="
"dev": true
}, },
"object-visit": { "object-visit": {
"version": "1.0.1", "version": "1.0.1",
@ -7062,6 +7164,17 @@
"object-keys": "^1.0.11" "object-keys": "^1.0.11"
} }
}, },
"object.entries": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
"integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.12.0",
"function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
"object.getownpropertydescriptors": { "object.getownpropertydescriptors": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz", "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz",
@ -8285,6 +8398,11 @@
"util-deprecate": "~1.0.1" "util-deprecate": "~1.0.1"
} }
}, },
"readable-web-to-node-stream": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-1.1.4.tgz",
"integrity": "sha512-DfwzynATtPmyLSMETPMlgVAB4b/0NNPePAEFEjSzw8VkqUZfx75gjNkaSqa0fP6iul2TL+jheLn2np0SWtW4iw=="
},
"readdirp": { "readdirp": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
@ -8390,6 +8508,14 @@
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
"dev": true "dev": true
}, },
"remove": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/remove/-/remove-0.1.5.tgz",
"integrity": "sha1-CV/9gn1lyfQa2X0z5BanWBEHmVU=",
"requires": {
"seq": ">= 0.3.5"
}
},
"remove-trailing-separator": { "remove-trailing-separator": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
@ -8632,8 +8758,7 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
"integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
"dev": true
}, },
"safe-regex": { "safe-regex": {
"version": "1.1.0", "version": "1.1.0",
@ -8740,6 +8865,15 @@
} }
} }
}, },
"seq": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz",
"integrity": "sha1-rgKvOkJHk9jMvyEtaRdODFTf/jg=",
"requires": {
"chainsaw": ">=0.0.7 <0.1",
"hashish": ">=0.0.2 <0.1"
}
},
"serialize-javascript": { "serialize-javascript": {
"version": "1.8.0", "version": "1.8.0",
"resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.8.0.tgz?cache=0&sync_timestamp=1566305509447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.8.0.tgz", "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.8.0.tgz?cache=0&sync_timestamp=1566305509447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.8.0.tgz",
@ -9395,7 +9529,6 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
"integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
"dev": true,
"requires": { "requires": {
"safe-buffer": "~5.1.0" "safe-buffer": "~5.1.0"
} }
@ -9442,6 +9575,16 @@
"integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=",
"dev": true "dev": true
}, },
"strtok3": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-3.0.1.tgz",
"integrity": "sha512-1aRPsZAxNJ8xo0UPpJgI7VRLZsjal0lvjkF4kIvHL6u3RxHM+hbenfJA0hVmwoUcjbvHuo/HqeB+tTUYx2FciA==",
"requires": {
"debug": "^4.1.1",
"then-read-stream": "^2.0.6",
"token-types": "^1.0.1"
}
},
"stylehacks": { "stylehacks": {
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz",
@ -9552,6 +9695,11 @@
} }
} }
}, },
"then-read-stream": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/then-read-stream/-/then-read-stream-2.0.6.tgz",
"integrity": "sha512-5HA8j7O3NL6P4Pi0IzZx8/t46sK0+h3n+P/P0Yzi11ODwR+ZWjG+KILzLXPvJM7PvYjK7sDKfcN1YVCNGbPNEQ=="
},
"thenify": { "thenify": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz", "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz",
@ -9677,6 +9825,11 @@
"integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
"dev": true "dev": true
}, },
"token-types": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/token-types/-/token-types-1.0.3.tgz",
"integrity": "sha512-8THi5oekS/TLE01xOMknevTgHwVEcWOsO3zlqxGvzAz+tjZGiACyjcZuH1LTJuHvqmb8SsX/BeqcfQA0JRwqzA=="
},
"topo": { "topo": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npm.taobao.org/topo/download/topo-2.0.2.tgz", "resolved": "https://registry.npm.taobao.org/topo/download/topo-2.0.2.tgz",
@ -9710,6 +9863,11 @@
} }
} }
}, },
"traverse": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
},
"trim-right": { "trim-right": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz",
@ -9771,6 +9929,14 @@
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true "dev": true
}, },
"typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"requires": {
"is-typedarray": "^1.0.0"
}
},
"uglify-js": { "uglify-js": {
"version": "3.4.10", "version": "3.4.10",
"resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz",
@ -10015,8 +10181,7 @@
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
"dev": true
}, },
"util.promisify": { "util.promisify": {
"version": "1.0.0", "version": "1.0.0",
@ -10748,11 +10913,6 @@
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }
}, },
"xhr2": {
"version": "0.1.4",
"resolved": "https://registry.npm.taobao.org/xhr2/download/xhr2-0.1.4.tgz",
"integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
},
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",

2
package.json

@ -11,7 +11,7 @@
"core-js": "^2.6.5", "core-js": "^2.6.5",
"crypto-js": "^3.1.9-1", "crypto-js": "^3.1.9-1",
"element-ui": "^2.11.1", "element-ui": "^2.11.1",
"jsmediatags": "3.9.1", "music-metadata-browser": "^1.3.0",
"register-service-worker": "^1.6.2", "register-service-worker": "^1.6.2",
"vue": "^2.6.10" "vue": "^2.6.10"
}, },

25
src/plugins/qmc.js

@ -1,4 +1,4 @@
const jsmediatags = require("jsmediatags"); const musicMetadata = require("music-metadata-browser");
export {Decrypt} export {Decrypt}
const SEED_MAP = [ const SEED_MAP = [
[0x4a, 0xd6, 0xca, 0x90, 0x67, 0xf7, 0x52], [0x4a, 0xd6, 0xca, 0x90, 0x67, 0xf7, 0x52],
@ -31,7 +31,7 @@ async function Decrypt(file) {
} }
const mime = audio_mime_type[new_ext]; const mime = audio_mime_type[new_ext];
// 读取文件 // 读取文件
const fileBuffer = await new Promise(reslove => { const fileBuffer = await new Promise(() => {
const reader = new FileReader(); const reader = new FileReader();
reader.onload = (e) => { reader.onload = (e) => {
reslove(e.target.result); reslove(e.target.result);
@ -51,20 +51,12 @@ async function Decrypt(file) {
}); });
const musicUrl = URL.createObjectURL(musicData); const musicUrl = URL.createObjectURL(musicData);
// 读取Meta // 读取Meta
let tag = await new Promise(resolve => { let tag = await musicMetadata.parseBlob(file);
new jsmediatags.Reader(musicData).read({
onSuccess: resolve,
onError: (err) => {
console.log(err);
resolve({tags: {}})
}
});
});
// 处理无标题歌手 // 处理无标题歌手
let filename_array = file.name.substring(0, file.name.lastIndexOf(".")).split("-"); let filename_array = file.name.substring(0, file.name.lastIndexOf(".")).split("-");
let title = tag.tags.title; let title = tag.common.title;
let artist = tag.tags.artist; let artist = tag.common.artist;
if (filename_array.length > 1) { if (filename_array.length > 1) {
if (artist === undefined) artist = filename_array[0].trim(); if (artist === undefined) artist = filename_array[0].trim();
if (title === undefined) title = filename_array[1].trim(); if (title === undefined) title = filename_array[1].trim();
@ -74,9 +66,10 @@ async function Decrypt(file) {
const filename = artist + " - " + title + "." + new_ext; const filename = artist + " - " + title + "." + new_ext;
// 处理无封面 // 处理无封面
let pic_url = ""; let pic_url = "";
if (tag.tags.picture !== undefined) { if (tag.common.picture !== undefined && tag.common.picture.length >= 1) {
let pic = new Blob([new Uint8Array(tag.tags.picture.data)], {type: tag.tags.picture.format}); const picture = tag.common.picture[0];
pic_url = URL.createObjectURL(pic); const blobPic = new Blob([picture.data], {type: picture.format});
pic_url = URL.createObjectURL(blobPic);
} }
// 返回 // 返回
return { return {

15
src/plugins/raw.js

@ -1,4 +1,4 @@
const jsmediatags = require("jsmediatags"); const musicMetadata = require("music-metadata-browser");
export {Decrypt} export {Decrypt}
const audio_mime_type = { const audio_mime_type = {
@ -7,14 +7,7 @@ const audio_mime_type = {
}; };
async function Decrypt(file) { async function Decrypt(file) {
let tag = await new Promise(resolve => { let tag = await musicMetadata.parseBlob(file);
new jsmediatags.Reader(file).read({
onSuccess: resolve,
onError: () => {
resolve({tags: {}})
}
});
});
let pic_url = ""; let pic_url = "";
if (tag.tags.picture !== undefined) { if (tag.tags.picture !== undefined) {
let pic = new Blob([new Uint8Array(tag.tags.picture.data)], {type: tag.tags.picture.format}); let pic = new Blob([new Uint8Array(tag.tags.picture.data)], {type: tag.tags.picture.format});
@ -28,8 +21,8 @@ async function Decrypt(file) {
let filename_array = filename_no_ext.split("-"); let filename_array = filename_no_ext.split("-");
let filename_ext = file.name.substring(file.name.lastIndexOf(".") + 1, file.name.length).toLowerCase(); let filename_ext = file.name.substring(file.name.lastIndexOf(".") + 1, file.name.length).toLowerCase();
const mime = audio_mime_type[filename_ext]; const mime = audio_mime_type[filename_ext];
let title = tag.tags.title; let title = tag.common.title;
let artist = tag.tags.artist; let artist = tag.common.artist;
if (filename_array.length > 1) { if (filename_array.length > 1) {
if (artist === undefined) artist = filename_array[0].trim(); if (artist === undefined) artist = filename_array[0].trim();

Loading…
Cancel
Save