Merge branch 'master' into greenkeeper/music-metadata-3.2.2

# Conflicts:
#	package-lock.json
This commit is contained in:
Borewit
2018-12-16 17:15:16 +01:00
9 changed files with 811 additions and 2026 deletions

2727
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -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"

View File

@@ -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
}) })

View File

@@ -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
} }
} }

View File

@@ -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
} }

View File

@@ -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
} }
} }

View File

@@ -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

View File

@@ -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
} }
} }

View File

@@ -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>