Asynchronous music-metadata updates while streaming (#1449)
* Ensure that default file/protocol handlers are re-installed after updating.
Previously, they were only installed when the preference was changed.
This caused the handlers to point to non-existing files after updates
occurred and older versions were removed by Squirrel.
Closes #791, #911.
* webtorrent/webtorrent-desktop#1340: Switch to async metadata updates.
* Use fat arrow
* Fix issue track number not displayed if total number of tracks is not defined (common.track.of === null).
* Add disk number in addition to track number.
* Update order of audio properties from: album, track, disk, format to track, disk, album, format
* #1340 Update music-metadata to 2.5.0, enabling async 'per' tag updates
#1452 Fix for playing some '.m4b' files
* #1340 Commented out the metadata event debug output.
* #1340 Remove line comment to get rid of max line length lint error
* Update music-metadata 2.6.0 to fix some async events are getting triggered.
* Return JSX block.
* Get rid of third parameter which is replaced by CSS capitalize
* Fixed error when value is undefined.
* Update music-metadata dependency to 2.6.1.
* fix(package): update music-metadata to version 3.1.0
Closes #1478
* Revert "Ensure that default file/protocol handlers are re-installed after updating."
This reverts commit 39145b2366.
This commit is contained in:
committed by
Mathias Rasmussen
parent
6a50fe7ced
commit
06566d37c2
@@ -32,7 +32,7 @@
|
|||||||
"location-history": "^1.0.0",
|
"location-history": "^1.0.0",
|
||||||
"material-ui": "^0.17.0",
|
"material-ui": "^0.17.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"music-metadata": "^2.4.2",
|
"music-metadata": "^3.1.0",
|
||||||
"network-address": "^1.1.0",
|
"network-address": "^1.1.0",
|
||||||
"parse-torrent": "^6.0.1",
|
"parse-torrent": "^6.0.1",
|
||||||
"prettier-bytes": "^1.0.1",
|
"prettier-bytes": "^1.0.1",
|
||||||
|
|||||||
@@ -238,9 +238,7 @@ function renderAudioMetadata (state) {
|
|||||||
const elems = []
|
const elems = []
|
||||||
|
|
||||||
// Audio metadata: artist(s)
|
// Audio metadata: artist(s)
|
||||||
const artist = common.albumartist || common.artist ||
|
const artist = common.artist || common.albumartist
|
||||||
(common.artists && common.artists.filter(function (a) { return a }).join(', ')) ||
|
|
||||||
'(Unknown Artist)'
|
|
||||||
if (artist) {
|
if (artist) {
|
||||||
elems.push((
|
elems.push((
|
||||||
<div key='artist' className='audio-artist'>
|
<div key='artist' className='audio-artist'>
|
||||||
|
|||||||
@@ -345,7 +345,12 @@ function getAudioMetadata (infoHash, index) {
|
|||||||
const metadata = { title: file.name }
|
const metadata = { title: file.name }
|
||||||
ipc.send('wt-audio-metadata', infoHash, index, metadata)
|
ipc.send('wt-audio-metadata', infoHash, index, metadata)
|
||||||
|
|
||||||
const options = { native: false, skipCovers: true, fileSize: file.length }
|
const options = { native: false,
|
||||||
|
skipCovers: true,
|
||||||
|
fileSize: file.length,
|
||||||
|
observer: event => {
|
||||||
|
ipc.send('wt-audio-metadata', infoHash, index, event.metadata)
|
||||||
|
} }
|
||||||
const onMetaData = file.done
|
const onMetaData = file.done
|
||||||
// If completed; use direct file access
|
// If completed; use direct file access
|
||||||
? mm.parseFile(path.join(torrent.path, file.path), options)
|
? mm.parseFile(path.join(torrent.path, file.path), options)
|
||||||
@@ -353,9 +358,8 @@ function getAudioMetadata (infoHash, index) {
|
|||||||
: mm.parseStream(file.createReadStream(), file.name, options)
|
: mm.parseStream(file.createReadStream(), file.name, options)
|
||||||
|
|
||||||
onMetaData
|
onMetaData
|
||||||
.then(function (metadata) {
|
.then(() => {
|
||||||
console.log('got audio metadata for %s (length=%s): %o', file.name, file.length, metadata)
|
console.log(`metadata for file='${file.name}' completed.`)
|
||||||
ipc.send('wt-audio-metadata', infoHash, index, metadata)
|
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
return console.log('error getting audio metadata for ' + infoHash + ':' + index, err)
|
return console.log('error getting audio metadata for ' + infoHash + ':' + index, err)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user