Merge branch 'master' into greenkeeper/music-metadata-3.2.2
# Conflicts: # package-lock.json
This commit is contained in:
2727
package-lock.json
generated
2727
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
32
package.json
32
package.json
@@ -14,13 +14,13 @@
|
|||||||
"airplayer": "^2.0.0",
|
"airplayer": "^2.0.0",
|
||||||
"application-config": "^1.0.0",
|
"application-config": "^1.0.0",
|
||||||
"arch": "^2.0.0",
|
"arch": "^2.0.0",
|
||||||
"auto-launch": "^4.0.1",
|
"auto-launch": "^5.0.5",
|
||||||
"bitfield": "^1.0.2",
|
"bitfield": "^1.0.2",
|
||||||
"capture-frame": "^2.0.0",
|
"capture-frame": "^2.0.0",
|
||||||
"chokidar": "^2.0.4",
|
"chokidar": "^2.0.4",
|
||||||
"chromecasts": "^1.9.1",
|
"chromecasts": "^1.9.1",
|
||||||
"cp-file": "^6.0.0",
|
"cp-file": "^6.0.0",
|
||||||
"create-torrent": "^3.24.5",
|
"create-torrent": "^3.33.0",
|
||||||
"debounce": "^1.0.0",
|
"debounce": "^1.0.0",
|
||||||
"deep-equal": "^1.0.1",
|
"deep-equal": "^1.0.1",
|
||||||
"dlnacasts": "^0.1.0",
|
"dlnacasts": "^0.1.0",
|
||||||
@@ -28,20 +28,20 @@
|
|||||||
"es6-error": "^4.0.0",
|
"es6-error": "^4.0.0",
|
||||||
"fn-getter": "^1.0.0",
|
"fn-getter": "^1.0.0",
|
||||||
"iso-639-1": "^1.2.1",
|
"iso-639-1": "^1.2.1",
|
||||||
"languagedetect": "^1.1.1",
|
"languagedetect": "^1.2.0",
|
||||||
"location-history": "^1.0.0",
|
"location-history": "^1.0.0",
|
||||||
"material-ui": "^0.17.0",
|
"material-ui": "^0.20.2",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"music-metadata": "^3.3.0",
|
"music-metadata": "^3.3.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",
|
||||||
"react": "^15.4.2",
|
"prop-types": "^15.6.2",
|
||||||
"react-dom": "^15.4.2",
|
"react": "^16.5.2",
|
||||||
"react-tap-event-plugin": "^2.0.1",
|
"react-dom": "^16.5.2",
|
||||||
"rimraf": "^2.5.2",
|
"rimraf": "^2.5.2",
|
||||||
"run-parallel": "^1.1.6",
|
"run-parallel": "^1.1.6",
|
||||||
"semver": "^5.1.0",
|
"semver": "^5.6.0",
|
||||||
"simple-concat": "^1.0.0",
|
"simple-concat": "^1.0.0",
|
||||||
"simple-get": "^3.0.3",
|
"simple-get": "^3.0.3",
|
||||||
"srt-to-vtt": "^1.1.1",
|
"srt-to-vtt": "^1.1.1",
|
||||||
@@ -52,25 +52,25 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^9.0.0",
|
"babel-eslint": "^9.0.0",
|
||||||
"buble": "^0.19.3",
|
"buble": "^0.19.6",
|
||||||
"cross-zip": "^2.0.1",
|
"cross-zip": "^2.0.1",
|
||||||
"depcheck": "^0.6.4",
|
"depcheck": "^0.6.11",
|
||||||
"electron": "1.6.16",
|
"electron": "^1.8.8",
|
||||||
"electron-osx-sign": "^0.4.10",
|
"electron-osx-sign": "^0.4.11",
|
||||||
"electron-packager": "~8.5.1",
|
"electron-packager": "~8.5.1",
|
||||||
"electron-winstaller": "^2.6.4",
|
"electron-winstaller": "^2.6.4",
|
||||||
"gh-release": "^3.2.1",
|
"gh-release": "^3.4.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"nobin-debian-installer": "0.0.10",
|
"nobin-debian-installer": "0.0.10",
|
||||||
"nodemon": "^1.10.2",
|
"nodemon": "^1.18.8",
|
||||||
"opn": "^5.4.0",
|
"opn": "^5.4.0",
|
||||||
"plist": "^3.0.1",
|
"plist": "^3.0.1",
|
||||||
"pngjs": "^3.0.0",
|
"pngjs": "^3.0.0",
|
||||||
"run-series": "^1.1.4",
|
"run-series": "^1.1.4",
|
||||||
"spectron": "^3.3.0",
|
"spectron": "^3.3.0",
|
||||||
"standard": "*",
|
"standard": "*",
|
||||||
"tape": "^4.6.0",
|
"tape": "^4.9.1",
|
||||||
"walk-sync": "^0.3.1"
|
"walk-sync": "^0.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4.0.0"
|
"node": ">=4.0.0"
|
||||||
|
|||||||
@@ -3,19 +3,11 @@ module.exports = {
|
|||||||
uninstall
|
uninstall
|
||||||
}
|
}
|
||||||
|
|
||||||
const config = require('../config')
|
const { APP_NAME } = require('../config')
|
||||||
const AutoLaunch = require('auto-launch')
|
const AutoLaunch = require('auto-launch')
|
||||||
const { app } = require('electron')
|
|
||||||
|
|
||||||
// On Mac, work around a bug in auto-launch where it opens a Terminal window
|
|
||||||
// See https://github.com/Teamwork/node-auto-launch/issues/28#issuecomment-222194437
|
|
||||||
const appPath = process.platform === 'darwin'
|
|
||||||
? app.getPath('exe').replace(/\.app\/Content.*/, '.app')
|
|
||||||
: undefined // Use the default
|
|
||||||
|
|
||||||
const appLauncher = new AutoLaunch({
|
const appLauncher = new AutoLaunch({
|
||||||
name: config.APP_NAME,
|
name: APP_NAME,
|
||||||
path: appPath,
|
|
||||||
isHidden: true
|
isHidden: true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
const React = require('react')
|
const React = require('react')
|
||||||
|
const PropTypes = require('prop-types')
|
||||||
|
|
||||||
const colors = require('material-ui/styles/colors')
|
const colors = require('material-ui/styles/colors')
|
||||||
|
|
||||||
class Heading extends React.Component {
|
class Heading extends React.Component {
|
||||||
static get propTypes () {
|
static get propTypes () {
|
||||||
return {
|
return {
|
||||||
level: React.PropTypes.number
|
level: PropTypes.number
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
const colors = require('material-ui/styles/colors')
|
const colors = require('material-ui/styles/colors')
|
||||||
const electron = require('electron')
|
const electron = require('electron')
|
||||||
const React = require('react')
|
const React = require('react')
|
||||||
|
const PropTypes = require('prop-types')
|
||||||
|
|
||||||
const remote = electron.remote
|
const remote = electron.remote
|
||||||
|
|
||||||
@@ -11,15 +12,15 @@ const TextField = require('material-ui/TextField').default
|
|||||||
// Uses the system Open File dialog.
|
// Uses the system Open File dialog.
|
||||||
// You can't edit the text field directly.
|
// You can't edit the text field directly.
|
||||||
class PathSelector extends React.Component {
|
class PathSelector extends React.Component {
|
||||||
static get propTypes () {
|
static propTypes () {
|
||||||
return {
|
return {
|
||||||
className: React.PropTypes.string,
|
className: PropTypes.string,
|
||||||
dialog: React.PropTypes.object,
|
dialog: PropTypes.object,
|
||||||
displayValue: React.PropTypes.string,
|
displayValue: PropTypes.string,
|
||||||
id: React.PropTypes.string,
|
id: PropTypes.string,
|
||||||
onChange: React.PropTypes.func,
|
onChange: PropTypes.func,
|
||||||
title: React.PropTypes.string.isRequired,
|
title: PropTypes.string.isRequired,
|
||||||
value: React.PropTypes.string
|
value: PropTypes.string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +65,8 @@ class PathSelector extends React.Component {
|
|||||||
const textFieldStyle = {
|
const textFieldStyle = {
|
||||||
flex: '1'
|
flex: '1'
|
||||||
}
|
}
|
||||||
const text = this.props.displayValue || this.props.value
|
|
||||||
|
const text = this.props.displayValue || this.props.value || ''
|
||||||
const buttonStyle = {
|
const buttonStyle = {
|
||||||
marginLeft: 10
|
marginLeft: 10
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
const React = require('react')
|
const React = require('react')
|
||||||
|
const PropTypes = require('prop-types')
|
||||||
|
|
||||||
const RaisedButton = require('material-ui/RaisedButton').default
|
const RaisedButton = require('material-ui/RaisedButton').default
|
||||||
|
|
||||||
class ShowMore extends React.Component {
|
class ShowMore extends React.Component {
|
||||||
static get propTypes () {
|
static get propTypes () {
|
||||||
return {
|
return {
|
||||||
defaultExpanded: React.PropTypes.bool,
|
defaultExpanded: PropTypes.bool,
|
||||||
hideLabel: React.PropTypes.string,
|
hideLabel: PropTypes.string,
|
||||||
showLabel: React.PropTypes.string
|
showLabel: PropTypes.string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,9 +39,6 @@ const TorrentPlayer = require('./lib/torrent-player')
|
|||||||
// Perf optimization: Needed immediately, so do not lazy load it below
|
// Perf optimization: Needed immediately, so do not lazy load it below
|
||||||
const TorrentListController = require('./controllers/torrent-list-controller')
|
const TorrentListController = require('./controllers/torrent-list-controller')
|
||||||
|
|
||||||
// Required by Material UI -- adds `onTouchTap` event
|
|
||||||
require('react-tap-event-plugin')()
|
|
||||||
|
|
||||||
const App = require('./pages/app')
|
const App = require('./pages/app')
|
||||||
|
|
||||||
// Electron apps have two processes: a main process (node) runs first and starts
|
// Electron apps have two processes: a main process (node) runs first and starts
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const React = require('react')
|
const React = require('react')
|
||||||
|
const PropTypes = require('prop-types')
|
||||||
|
|
||||||
const colors = require('material-ui/styles/colors')
|
const colors = require('material-ui/styles/colors')
|
||||||
const Checkbox = require('material-ui/Checkbox').default
|
const Checkbox = require('material-ui/Checkbox').default
|
||||||
@@ -238,7 +239,7 @@ class PreferencesPage extends React.Component {
|
|||||||
class PreferencesSection extends React.Component {
|
class PreferencesSection extends React.Component {
|
||||||
static get propTypes () {
|
static get propTypes () {
|
||||||
return {
|
return {
|
||||||
title: React.PropTypes.string
|
title: PropTypes.string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ module.exports = class TorrentList extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div style={styles.wrapper}>
|
<div key='progress-bar' style={styles.wrapper}>
|
||||||
<LinearProgress style={styles.progress} mode='determinate' value={progress} />
|
<LinearProgress style={styles.progress} mode='determinate' value={progress} />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@@ -200,7 +200,7 @@ module.exports = class TorrentList extends React.Component {
|
|||||||
const minutesStr = (hours || minutes) ? minutes + 'm' : ''
|
const minutesStr = (hours || minutes) ? minutes + 'm' : ''
|
||||||
const secondsStr = seconds + 's'
|
const secondsStr = seconds + 's'
|
||||||
|
|
||||||
return (<span>{hoursStr} {minutesStr} {secondsStr} remaining</span>)
|
return (<span key='eta'>{hoursStr} {minutesStr} {secondsStr} remaining</span>)
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderTorrentStatus () {
|
function renderTorrentStatus () {
|
||||||
@@ -370,16 +370,16 @@ module.exports = class TorrentList extends React.Component {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div key='radial-progress' className={'radial-progress ' + cssClass}>
|
<div key='radial-progress' className={'radial-progress ' + cssClass}>
|
||||||
<div key='circle' className='circle'>
|
<div className='circle'>
|
||||||
<div key='mask-full' className='mask full' style={transformFill}>
|
<div className='mask full' style={transformFill}>
|
||||||
<div key='fill' className='fill' style={transformFill} />
|
<div className='fill' style={transformFill} />
|
||||||
</div>
|
</div>
|
||||||
<div key='mask-half' className='mask half'>
|
<div className='mask half'>
|
||||||
<div key='fill' className='fill' style={transformFill} />
|
<div className='fill' style={transformFill} />
|
||||||
<div key='fill-fix' className='fill fix' style={transformFix} />
|
<div className='fill fix' style={transformFix} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div key='inset' className='inset' />
|
<div className='inset' />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -393,7 +393,7 @@ function getErrorMessage (torrentSummary) {
|
|||||||
const err = torrentSummary.error
|
const err = torrentSummary.error
|
||||||
if (err === 'path-missing') {
|
if (err === 'path-missing') {
|
||||||
return (
|
return (
|
||||||
<span>
|
<span key='path-missing'>
|
||||||
Path missing.<br />
|
Path missing.<br />
|
||||||
Fix and restart the app, or delete the torrent.
|
Fix and restart the app, or delete the torrent.
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user