@@ -7,7 +7,7 @@ const path = require('path')
|
||||
let hasErrors = false
|
||||
|
||||
// Find all Javascript source files
|
||||
const files = walkSync('src', {globs: ['**/*.js']})
|
||||
const files = walkSync('src', { globs: ['**/*.js'] })
|
||||
console.log('Running extra-lint on ' + files.length + ' files...')
|
||||
|
||||
// Read each file, line by line
|
||||
|
||||
@@ -4,7 +4,7 @@ module.exports = {
|
||||
setBadge
|
||||
}
|
||||
|
||||
const {app, Menu} = require('electron')
|
||||
const { app, Menu } = require('electron')
|
||||
|
||||
const dialog = require('./dialog')
|
||||
const log = require('./log')
|
||||
|
||||
@@ -52,7 +52,7 @@ function spawnExternal (playerPath, args) {
|
||||
playerPath += `/Contents/MacOS/${path.basename(playerPath, '.app')}`
|
||||
}
|
||||
|
||||
proc = cp.spawn(playerPath, args, {stdio: 'ignore'})
|
||||
proc = cp.spawn(playerPath, args, { stdio: 'ignore' })
|
||||
|
||||
// If it works, close the modal after a second
|
||||
const closeModalTimeout = setTimeout(() =>
|
||||
|
||||
@@ -2,7 +2,7 @@ const chokidar = require('chokidar')
|
||||
const log = require('./log')
|
||||
|
||||
class FolderWatcher {
|
||||
constructor ({window, state}) {
|
||||
constructor ({ window, state }) {
|
||||
this.window = window
|
||||
this.state = state
|
||||
this.torrentsFolderPath = null
|
||||
|
||||
@@ -74,7 +74,7 @@ function init () {
|
||||
isReady = true
|
||||
const state = results.state
|
||||
|
||||
windows.main.init(state, {hidden: hidden})
|
||||
windows.main.init(state, { hidden: hidden })
|
||||
windows.webtorrent.init()
|
||||
menu.init()
|
||||
|
||||
@@ -86,7 +86,7 @@ function init () {
|
||||
// Report uncaught exceptions
|
||||
process.on('uncaughtException', (err) => {
|
||||
console.error(err)
|
||||
const error = {message: err.message, stack: err.stack}
|
||||
const error = { message: err.message, stack: err.stack }
|
||||
windows.main.dispatch('uncaughtError', 'main', error)
|
||||
})
|
||||
}
|
||||
@@ -131,7 +131,7 @@ function delayedInit (state) {
|
||||
const dock = require('./dock')
|
||||
const updater = require('./updater')
|
||||
const FolderWatcher = require('./folder-watcher')
|
||||
const folderWatcher = new FolderWatcher({window: windows.main, state})
|
||||
const folderWatcher = new FolderWatcher({ window: windows.main, state })
|
||||
|
||||
announcement.init()
|
||||
dock.init()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const React = require('react')
|
||||
|
||||
const {dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class CreateTorrentErrorPage extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const React = require('react')
|
||||
|
||||
const {dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
class Header extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -5,7 +5,7 @@ const RaisedButton = require('material-ui/RaisedButton').default
|
||||
module.exports = class ModalOKCancel extends React.Component {
|
||||
render () {
|
||||
const cancelStyle = { marginRight: 10, color: 'black' }
|
||||
const {cancelText, onCancel, okText, onOK} = this.props
|
||||
const { cancelText, onCancel, okText, onOK } = this.props
|
||||
return (
|
||||
<div className='float-right'>
|
||||
<FlatButton
|
||||
|
||||
@@ -2,7 +2,7 @@ const React = require('react')
|
||||
const TextField = require('material-ui/TextField').default
|
||||
|
||||
const ModalOKCancel = require('./modal-ok-cancel')
|
||||
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatch, dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class OpenTorrentAddressModal extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const React = require('react')
|
||||
|
||||
const ModalOKCancel = require('./modal-ok-cancel')
|
||||
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatch, dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class RemoveTorrentModal extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -2,7 +2,7 @@ const React = require('react')
|
||||
const electron = require('electron')
|
||||
|
||||
const ModalOKCancel = require('./modal-ok-cancel')
|
||||
const {dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class UnsupportedMediaModal extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -2,7 +2,7 @@ const React = require('react')
|
||||
const electron = require('electron')
|
||||
|
||||
const ModalOKCancel = require('./modal-ok-cancel')
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class UpdateAvailableModal extends React.Component {
|
||||
render () {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {ipcRenderer} = require('electron')
|
||||
const { ipcRenderer } = require('electron')
|
||||
|
||||
module.exports = class FolderWatcherController {
|
||||
start () {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {ipcRenderer} = require('electron')
|
||||
const { ipcRenderer } = require('electron')
|
||||
const telemetry = require('../lib/telemetry')
|
||||
const Playlist = require('../lib/playlist')
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ const electron = require('electron')
|
||||
const path = require('path')
|
||||
|
||||
const Cast = require('../lib/cast')
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
const telemetry = require('../lib/telemetry')
|
||||
const {UnplayableFileError, UnplayableTorrentError} = require('../lib/errors')
|
||||
const { UnplayableFileError, UnplayableTorrentError } = require('../lib/errors')
|
||||
const sound = require('../lib/sound')
|
||||
const TorrentPlayer = require('../lib/torrent-player')
|
||||
const TorrentSummary = require('../lib/torrent-summary')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
const ipcRenderer = require('electron').ipcRenderer
|
||||
|
||||
// Controls the Preferences screen
|
||||
|
||||
@@ -5,7 +5,7 @@ const parallel = require('run-parallel')
|
||||
|
||||
const remote = electron.remote
|
||||
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class SubtitlesController {
|
||||
constructor (state) {
|
||||
|
||||
@@ -3,7 +3,7 @@ const ipcRenderer = require('electron').ipcRenderer
|
||||
|
||||
const TorrentSummary = require('../lib/torrent-summary')
|
||||
const sound = require('../lib/sound')
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class TorrentController {
|
||||
constructor (state) {
|
||||
|
||||
@@ -2,8 +2,8 @@ const fs = require('fs')
|
||||
const path = require('path')
|
||||
const electron = require('electron')
|
||||
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const {TorrentKeyNotFoundError} = require('../lib/errors')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
const { TorrentKeyNotFoundError } = require('../lib/errors')
|
||||
const sound = require('../lib/sound')
|
||||
const TorrentSummary = require('../lib/torrent-summary')
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
|
||||
// Controls the UI checking for new versions of the app, prompting install
|
||||
module.exports = class UpdateController {
|
||||
|
||||
@@ -16,7 +16,7 @@ module.exports = {
|
||||
const http = require('http')
|
||||
|
||||
const config = require('../../config')
|
||||
const {CastingError} = require('./errors')
|
||||
const { CastingError } = require('./errors')
|
||||
|
||||
// Lazy load these for a ~300ms improvement in startup time
|
||||
let airplayer, chromecasts, dlnacasts
|
||||
@@ -83,7 +83,7 @@ function testPlayer (type) {
|
||||
}
|
||||
|
||||
function getDevices () {
|
||||
return [{name: type + '-1'}, {name: type + '-2'}]
|
||||
return [{ name: type + '-1' }, { name: type + '-2' }]
|
||||
}
|
||||
|
||||
function open () {}
|
||||
@@ -429,11 +429,11 @@ function toggleMenu (location) {
|
||||
}
|
||||
|
||||
// Show a menu
|
||||
state.devices.castMenu = {location, devices}
|
||||
state.devices.castMenu = { location, devices }
|
||||
}
|
||||
|
||||
function selectDevice (index) {
|
||||
const {location, devices} = state.devices.castMenu
|
||||
const { location, devices } = state.devices.castMenu
|
||||
|
||||
// Start casting
|
||||
const player = getPlayer(location)
|
||||
|
||||
@@ -3,7 +3,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
const config = require('../../config')
|
||||
const {InvalidSoundNameError} = require('./errors')
|
||||
const { InvalidSoundNameError } = require('./errors')
|
||||
const path = require('path')
|
||||
|
||||
const VOLUME = 0.25
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const appConfig = require('application-config')('WebTorrent')
|
||||
const path = require('path')
|
||||
const {EventEmitter} = require('events')
|
||||
const { EventEmitter } = require('events')
|
||||
|
||||
const config = require('../../config')
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ function getTorrentStats (state) {
|
||||
}
|
||||
|
||||
// Then, round all the counts and sums to the nearest power of 2
|
||||
const ret = roundTorrentStats({count, sizeMB})
|
||||
const ret = roundTorrentStats({ count, sizeMB })
|
||||
ret.byStatus = {
|
||||
new: roundTorrentStats(byStatus.new),
|
||||
downloading: roundTorrentStats(byStatus.downloading),
|
||||
@@ -198,7 +198,7 @@ function logUncaughtError (procName, e) {
|
||||
// Log the app version *at the time of the error*
|
||||
const version = config.APP_VERSION
|
||||
|
||||
telemetry.uncaughtErrors.push({process: procName, message, stack, version})
|
||||
telemetry.uncaughtErrors.push({ process: procName, message, stack, version })
|
||||
}
|
||||
|
||||
// Turns a DOM element into a string, eg "DIV.my-class.visible"
|
||||
|
||||
@@ -16,7 +16,7 @@ function torrentPoster (torrent, cb) {
|
||||
const bestScore = ['audio', 'video', 'image'].map(mediaType => {
|
||||
return {
|
||||
type: mediaType,
|
||||
size: calculateDataLengthByExtension(torrent, mediaExtensions[mediaType])}
|
||||
size: calculateDataLengthByExtension(torrent, mediaExtensions[mediaType]) }
|
||||
}).sort((a, b) => { // sort descending on size
|
||||
return b.size - a.size
|
||||
})[0]
|
||||
|
||||
@@ -450,7 +450,7 @@ function setDimensions (dimensions) {
|
||||
)
|
||||
|
||||
ipcRenderer.send('setAspectRatio', aspectRatio)
|
||||
ipcRenderer.send('setBounds', {contentBounds: true, x: null, y: null, width, height})
|
||||
ipcRenderer.send('setBounds', { contentBounds: true, x: null, y: null, width, height })
|
||||
state.playing.aspectRatio = aspectRatio
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ const path = require('path')
|
||||
const prettyBytes = require('prettier-bytes')
|
||||
const React = require('react')
|
||||
|
||||
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatch, dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
const FlatButton = require('material-ui/FlatButton').default
|
||||
const RaisedButton = require('material-ui/RaisedButton').default
|
||||
@@ -35,7 +35,7 @@ class CreateTorrentPage extends React.Component {
|
||||
// Then, exclude .DS_Store and other dotfiles
|
||||
const files = info.files
|
||||
.filter((f) => !containsDots(f.path, pathPrefix))
|
||||
.map((f) => ({name: f.name, path: f.path, size: f.size}))
|
||||
.map((f) => ({ name: f.name, path: f.path, size: f.size }))
|
||||
if (files.length === 0) return (<CreateTorrentErrorPage state={state} />)
|
||||
|
||||
// Then, use the name of the base folder (or sole file, for a single file torrent)
|
||||
@@ -65,9 +65,9 @@ class CreateTorrentPage extends React.Component {
|
||||
}
|
||||
|
||||
// Create React event handlers only once
|
||||
this.setIsPrivate = (_, isPrivate) => this.setState({isPrivate})
|
||||
this.setComment = (_, comment) => this.setState({comment})
|
||||
this.setTrackers = (_, trackers) => this.setState({trackers})
|
||||
this.setIsPrivate = (_, isPrivate) => this.setState({ isPrivate })
|
||||
this.setComment = (_, comment) => this.setState({ comment })
|
||||
this.setTrackers = (_, trackers) => this.setState({ trackers })
|
||||
this.handleSubmit = handleSubmit.bind(this)
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ class CreateTorrentPage extends React.Component {
|
||||
<label>Private:</label>
|
||||
<Checkbox
|
||||
className='torrent-is-private control'
|
||||
style={{display: ''}}
|
||||
style={{ display: '' }}
|
||||
checked={this.state.isPrivate}
|
||||
onCheck={this.setIsPrivate} />
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@ const zeroFill = require('zero-fill')
|
||||
|
||||
const TorrentSummary = require('../lib/torrent-summary')
|
||||
const Playlist = require('../lib/playlist')
|
||||
const {dispatch, dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatch, dispatcher } = require('../lib/dispatcher')
|
||||
const config = require('../../config')
|
||||
|
||||
// Shows a streaming video player. Standard features + Chromecast + Airplay
|
||||
@@ -397,7 +397,7 @@ function renderCastScreen (state) {
|
||||
function renderCastOptions (state) {
|
||||
if (!state.devices.castMenu) return
|
||||
|
||||
const {location, devices} = state.devices.castMenu
|
||||
const { location, devices } = state.devices.castMenu
|
||||
const player = state.devices[location]
|
||||
|
||||
const items = devices.map(function (device, ix) {
|
||||
@@ -520,9 +520,9 @@ function renderPlayerControls (state) {
|
||||
|
||||
// Add the cast buttons. Icons for each cast type, connected/disconnected:
|
||||
const buttonIcons = {
|
||||
'chromecast': {true: 'cast_connected', false: 'cast'},
|
||||
'airplay': {true: 'airplay', false: 'airplay'},
|
||||
'dlna': {true: 'tv', false: 'tv'}
|
||||
'chromecast': { true: 'cast_connected', false: 'cast' },
|
||||
'airplay': { true: 'airplay', false: 'airplay' },
|
||||
'dlna': { true: 'tv', false: 'tv' }
|
||||
}
|
||||
castTypes.forEach(function (castType) {
|
||||
// Do we show this button (eg. the Chromecast button) at all?
|
||||
@@ -677,7 +677,7 @@ function renderLoadingBar (state) {
|
||||
for (let i = fileProg.startPiece; i <= fileProg.endPiece; i++) {
|
||||
const partPresent = Bitfield.prototype.get.call(prog.bitfield, i)
|
||||
if (partPresent && !lastPiecePresent) {
|
||||
parts.push({start: i - fileProg.startPiece, count: 1})
|
||||
parts.push({ start: i - fileProg.startPiece, count: 1 })
|
||||
} else if (partPresent) {
|
||||
parts[parts.length - 1].count++
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ const RaisedButton = require('material-ui/RaisedButton').default
|
||||
const Heading = require('../components/heading')
|
||||
const PathSelector = require('../components/path-selector')
|
||||
|
||||
const {dispatch} = require('../lib/dispatcher')
|
||||
const { dispatch } = require('../lib/dispatcher')
|
||||
const config = require('../../config')
|
||||
|
||||
class PreferencesPage extends React.Component {
|
||||
|
||||
@@ -6,7 +6,7 @@ const LinearProgress = require('material-ui/LinearProgress').default
|
||||
|
||||
const TorrentSummary = require('../lib/torrent-summary')
|
||||
const TorrentPlayer = require('../lib/torrent-player')
|
||||
const {dispatcher} = require('../lib/dispatcher')
|
||||
const { dispatcher } = require('../lib/dispatcher')
|
||||
|
||||
module.exports = class TorrentList extends React.Component {
|
||||
render () {
|
||||
@@ -365,8 +365,8 @@ module.exports = class TorrentList extends React.Component {
|
||||
|
||||
renderRadialProgressBar (fraction, cssClass) {
|
||||
const rotation = 360 * fraction
|
||||
const transformFill = {transform: 'rotate(' + (rotation / 2) + 'deg)'}
|
||||
const transformFix = {transform: 'rotate(' + rotation + 'deg)'}
|
||||
const transformFill = { transform: 'rotate(' + (rotation / 2) + 'deg)' }
|
||||
const transformFix = { transform: 'rotate(' + rotation + 'deg)' }
|
||||
|
||||
return (
|
||||
<div key='radial-progress' className={'radial-progress ' + cssClass}>
|
||||
|
||||
@@ -16,7 +16,7 @@ const zeroFill = require('zero-fill')
|
||||
|
||||
const crashReporter = require('../crash-reporter')
|
||||
const config = require('../config')
|
||||
const {TorrentKeyNotFoundError} = require('./lib/errors')
|
||||
const { TorrentKeyNotFoundError } = require('./lib/errors')
|
||||
const torrentPoster = require('./lib/torrent-poster')
|
||||
|
||||
// Report when the process crashes
|
||||
@@ -97,7 +97,7 @@ function init () {
|
||||
ipc.send('ipcReadyWebTorrent')
|
||||
|
||||
window.addEventListener('error', (e) =>
|
||||
ipc.send('wt-uncaught-error', {message: e.error.message, stack: e.error.stack}),
|
||||
ipc.send('wt-uncaught-error', { message: e.error.message, stack: e.error.stack }),
|
||||
true)
|
||||
|
||||
setInterval(updateTorrentProgress, 1000)
|
||||
@@ -251,7 +251,7 @@ function generateTorrentPoster (torrentKey) {
|
||||
function updateTorrentProgress () {
|
||||
const progress = getTorrentProgress()
|
||||
// TODO: diff torrent-by-torrent, not once for the whole update
|
||||
if (prevProgress && deepEqual(progress, prevProgress, {strict: true})) {
|
||||
if (prevProgress && deepEqual(progress, prevProgress, { strict: true })) {
|
||||
return /* don't send heavy object if it hasn't changed */
|
||||
}
|
||||
ipc.send('wt-progress', progress)
|
||||
@@ -345,7 +345,7 @@ function getAudioMetadata (infoHash, index) {
|
||||
const metadata = { title: file.name }
|
||||
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 }
|
||||
const onMetaData = file.done
|
||||
// If completed; use direct file access
|
||||
? mm.parseFile(path.join(torrent.path, file.path), options)
|
||||
|
||||
@@ -32,7 +32,7 @@ function createApp (t) {
|
||||
path: path.join(__dirname, '..', 'node_modules', '.bin',
|
||||
'electron' + (process.platform === 'win32' ? '.cmd' : '')),
|
||||
args: ['-r', path.join(__dirname, 'mocks.js'), path.join(__dirname, '..')],
|
||||
env: {NODE_ENV: 'test'},
|
||||
env: { NODE_ENV: 'test' },
|
||||
waitTimeout: 10e3
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ test('audio-streaming', function (t) {
|
||||
|
||||
t.timeoutAfter(60e3)
|
||||
const app = setup.createApp()
|
||||
setup.waitForLoad(app, t, {online: true})
|
||||
setup.waitForLoad(app, t, { online: true })
|
||||
.then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny'))
|
||||
// Play Wired CD. Wait for it to start streaming.
|
||||
.then(() => app.client.moveToObject('#torrent-wired'))
|
||||
|
||||
@@ -6,7 +6,7 @@ test('video-streaming', function (t) {
|
||||
|
||||
t.timeoutAfter(30e3)
|
||||
const app = setup.createApp()
|
||||
setup.waitForLoad(app, t, {online: true})
|
||||
setup.waitForLoad(app, t, { online: true })
|
||||
.then(() => app.client.waitUntilTextExists('.torrent-list', 'Big Buck Bunny'))
|
||||
// Play Big Buck Bunny. Wait for it to start streaming.
|
||||
.then(() => app.client.moveToObject('.torrent'))
|
||||
|
||||
Reference in New Issue
Block a user