mirror of https://github.com/lidarr/Lidarr
Updates to UI, Update NLog to 4.4.12
This commit is contained in:
parent
31db4e2026
commit
c8ed46850a
|
@ -240,7 +240,6 @@
|
||||||
one-var-declaration-per-line: ["error", "always"],
|
one-var-declaration-per-line: ["error", "always"],
|
||||||
operator-assignment: ["off", "never"],
|
operator-assignment: ["off", "never"],
|
||||||
operator-linebreak: ["error", "after"],
|
operator-linebreak: ["error", "after"],
|
||||||
padded-blocks: ["error", "never"],
|
|
||||||
quote-props: ["error", "as-needed"],
|
quote-props: ["error", "as-needed"],
|
||||||
quotes: ["error", "single"],
|
quotes: ["error", "single"],
|
||||||
require-jsdoc: "off",
|
require-jsdoc: "off",
|
||||||
|
@ -283,6 +282,6 @@
|
||||||
"react/react-in-jsx-scope": 2,
|
"react/react-in-jsx-scope": 2,
|
||||||
"react/self-closing-comp": 2,
|
"react/self-closing-comp": 2,
|
||||||
"react/sort-comp": 2,
|
"react/sort-comp": 2,
|
||||||
"react/wrap-multilines": 2
|
"react/jsx-wrap-multilines": 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,9 @@
|
||||||
const _ = require('lodash');
|
|
||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
const simpleVars = require('postcss-simple-vars');
|
|
||||||
const nested = require('postcss-nested');
|
|
||||||
const autoprefixer = require('autoprefixer');
|
|
||||||
const webpackStream = require('webpack-stream');
|
const webpackStream = require('webpack-stream');
|
||||||
const livereload = require('gulp-livereload');
|
const livereload = require('gulp-livereload');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const errorHandler = require('./helpers/errorHandler');
|
const errorHandler = require('./helpers/errorHandler');
|
||||||
const reload = require('require-nocache')(module);
|
|
||||||
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||||||
|
|
||||||
const uiFolder = 'UI';
|
const uiFolder = 'UI';
|
||||||
|
@ -18,13 +13,20 @@ const isProduction = process.argv.indexOf('--production') > -1;
|
||||||
console.log('ROOT:', root);
|
console.log('ROOT:', root);
|
||||||
console.log('isProduction:', isProduction);
|
console.log('isProduction:', isProduction);
|
||||||
|
|
||||||
const cssVariables = [
|
const cssVarsFiles = [
|
||||||
'../src/Styles/Variables/colors',
|
'../src/Styles/Variables/colors',
|
||||||
'../src/Styles/Variables/dimensions',
|
'../src/Styles/Variables/dimensions',
|
||||||
'../src/Styles/Variables/fonts',
|
'../src/Styles/Variables/fonts',
|
||||||
'../src/Styles/Variables/animations'
|
'../src/Styles/Variables/animations'
|
||||||
].map(require.resolve);
|
].map(require.resolve);
|
||||||
|
|
||||||
|
const extractCSSPlugin = new ExtractTextPlugin({
|
||||||
|
filename: path.join('_output', uiFolder, 'Content', 'styles.css'),
|
||||||
|
allChunks: true,
|
||||||
|
disable: false,
|
||||||
|
ignoreOrder: true
|
||||||
|
});
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
devtool: '#source-map',
|
devtool: '#source-map',
|
||||||
stats: {
|
stats: {
|
||||||
|
@ -39,9 +41,10 @@ const config = {
|
||||||
index: 'index.js'
|
index: 'index.js'
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
root: [
|
modules: [
|
||||||
root,
|
root,
|
||||||
path.join(root, 'Shims')
|
path.join(root, 'Shims'),
|
||||||
|
'node_modules'
|
||||||
],
|
],
|
||||||
alias: {
|
alias: {
|
||||||
jquery: 'jquery/src/jquery'
|
jquery: 'jquery/src/jquery'
|
||||||
|
@ -52,10 +55,11 @@ const config = {
|
||||||
sourceMapFilename: '[file].map'
|
sourceMapFilename: '[file].map'
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new ExtractTextPlugin(path.join('_output', uiFolder, 'Content', 'styles.css'), { allChunks: true }),
|
extractCSSPlugin,
|
||||||
new webpack.optimize.CommonsChunkPlugin({
|
new webpack.optimize.CommonsChunkPlugin({
|
||||||
name: 'vendor'
|
name: 'vendor'
|
||||||
}),
|
}),
|
||||||
|
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
__DEV__: !isProduction,
|
__DEV__: !isProduction,
|
||||||
'process.env': {
|
'process.env': {
|
||||||
|
@ -64,22 +68,23 @@ const config = {
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
resolveLoader: {
|
resolveLoader: {
|
||||||
modulesDirectories: [
|
modules: [
|
||||||
'node_modules',
|
'node_modules',
|
||||||
'gulp/webpack/'
|
'frontend/gulp/webpack/'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
eslint: {
|
// TODO: Do we need this loader?
|
||||||
formatter: function(results) {
|
// eslint: {
|
||||||
return JSON.stringify(results);
|
// formatter: function(results) {
|
||||||
}
|
// return JSON.stringify(results);
|
||||||
},
|
// }
|
||||||
|
// },
|
||||||
module: {
|
module: {
|
||||||
loaders: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.js?$/,
|
test: /\.js?$/,
|
||||||
exclude: /(node_modules|JsLibraries)/,
|
exclude: /(node_modules|JsLibraries)/,
|
||||||
loader: 'babel',
|
loader: 'babel-loader',
|
||||||
query: {
|
query: {
|
||||||
plugins: ['transform-class-properties'],
|
plugins: ['transform-class-properties'],
|
||||||
presets: ['es2015', 'decorators-legacy', 'react', 'stage-2'],
|
presets: ['es2015', 'decorators-legacy', 'react', 'stage-2'],
|
||||||
|
@ -95,51 +100,80 @@ const config = {
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
exclude: /(node_modules|globals.css)/,
|
exclude: /(node_modules|globals.css)/,
|
||||||
loader: ExtractTextPlugin.extract('style', 'css-loader?modules&importLoaders=1&sourceMap&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader')
|
use: extractCSSPlugin.extract({
|
||||||
|
fallback: 'style-loader',
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'css-variables-loader',
|
||||||
|
options: {
|
||||||
|
cssVarsFiles
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
loader: 'css-loader',
|
||||||
|
options: {
|
||||||
|
modules: true,
|
||||||
|
importLoaders: 1,
|
||||||
|
localIdentName: '[name]-[local]-[hash:base64:5]',
|
||||||
|
sourceMap: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
loader: 'postcss-loader',
|
||||||
|
options: {
|
||||||
|
config: {
|
||||||
|
ctx: {
|
||||||
|
cssVarsFiles
|
||||||
|
},
|
||||||
|
path: 'frontend/postcss.config.js'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
// Global styles
|
// Global styles
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
include: /(node_modules|globals.css)/,
|
include: /(node_modules|globals.css)/,
|
||||||
loader: 'style!css-loader'
|
use: [
|
||||||
|
'style-loader',
|
||||||
|
{
|
||||||
|
loader: 'css-loader'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
// Fonts
|
// Fonts
|
||||||
{
|
{
|
||||||
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
loader: 'url?limit=10240&mimetype=application/font-woff&emitFile=false&name=Content/Fonts/[name].[ext]'
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'url-loader',
|
||||||
|
options: {
|
||||||
|
limit: 10240,
|
||||||
|
mimetype: 'application/font-woff',
|
||||||
|
emitFile: false,
|
||||||
|
name: 'Content/Fonts/[name].[ext]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
loader: 'file-loader?emitFile=false&name=Content/Fonts/[name].[ext]'
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'file-loader',
|
||||||
|
options: {
|
||||||
|
emitFile: false,
|
||||||
|
name: 'Content/Fonts/[name].[ext]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
postcss: function(wpack) {
|
|
||||||
cssVariables.forEach(wpack.addDependency);
|
|
||||||
|
|
||||||
return [
|
|
||||||
simpleVars({
|
|
||||||
variables: function() {
|
|
||||||
return cssVariables.reduce(function(obj, vars) {
|
|
||||||
return _.extend(obj, reload(vars));
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
nested(),
|
|
||||||
autoprefixer({
|
|
||||||
browsers: [
|
|
||||||
'Chrome >= 30',
|
|
||||||
'Firefox >= 30',
|
|
||||||
'Safari >= 6',
|
|
||||||
'Edge >= 12',
|
|
||||||
'Explorer >= 10',
|
|
||||||
'iOS >= 7',
|
|
||||||
'Android >= 4.4'
|
|
||||||
]
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
const loaderUtils = require('loader-utils');
|
||||||
|
|
||||||
|
module.exports = function cssVariablesLoader(source) {
|
||||||
|
const options = loaderUtils.getOptions(this);
|
||||||
|
|
||||||
|
options.cssVarsFiles.forEach((cssVarsFile) => {
|
||||||
|
this.addDependency(cssVarsFile);
|
||||||
|
});
|
||||||
|
|
||||||
|
return source;
|
||||||
|
};
|
|
@ -0,0 +1,33 @@
|
||||||
|
const reload = require('require-nocache')(module);
|
||||||
|
|
||||||
|
module.exports = (ctx, configPath, options) => {
|
||||||
|
const config = {
|
||||||
|
plugins: {
|
||||||
|
'postcss-simple-vars': {
|
||||||
|
variables: () =>
|
||||||
|
ctx.options.cssVarsFiles.reduce((acc, vars) => {
|
||||||
|
return Object.assign(acc, reload(vars));
|
||||||
|
}, {})
|
||||||
|
},
|
||||||
|
'postcss-nested': {},
|
||||||
|
'postcss-mixins': {
|
||||||
|
mixinsDir: [
|
||||||
|
'frontend/src/Styles/Mixins'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
autoprefixer: {
|
||||||
|
browsers: [
|
||||||
|
'Chrome >= 30',
|
||||||
|
'Firefox >= 30',
|
||||||
|
'Safari >= 6',
|
||||||
|
'Edge >= 12',
|
||||||
|
'Explorer >= 11',
|
||||||
|
'iOS >= 7',
|
||||||
|
'Android >= 4.4'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return config;
|
||||||
|
};
|
|
@ -3,16 +3,19 @@ import React, { Component } from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { createSelector } from 'reselect';
|
import { createSelector } from 'reselect';
|
||||||
import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions';
|
import { fetchHistory, markAsFailed } from 'Store/Actions/historyActions';
|
||||||
|
import createArtistSelector from 'Store/Selectors/createArtistSelector';
|
||||||
import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector';
|
import createEpisodeSelector from 'Store/Selectors/createEpisodeSelector';
|
||||||
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
|
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
|
||||||
import HistoryRow from './HistoryRow';
|
import HistoryRow from './HistoryRow';
|
||||||
|
|
||||||
function createMapStateToProps() {
|
function createMapStateToProps() {
|
||||||
return createSelector(
|
return createSelector(
|
||||||
|
createArtistSelector(),
|
||||||
createEpisodeSelector(),
|
createEpisodeSelector(),
|
||||||
createUISettingsSelector(),
|
createUISettingsSelector(),
|
||||||
(episode, uiSettings) => {
|
(artist, episode, uiSettings) => {
|
||||||
return {
|
return {
|
||||||
|
artist,
|
||||||
episode,
|
episode,
|
||||||
shortDateFormat: uiSettings.shortDateFormat,
|
shortDateFormat: uiSettings.shortDateFormat,
|
||||||
timeFormat: uiSettings.timeFormat
|
timeFormat: uiSettings.timeFormat
|
||||||
|
@ -28,6 +31,9 @@ const mapDispatchToProps = {
|
||||||
|
|
||||||
class HistoryRowConnector extends Component {
|
class HistoryRowConnector extends Component {
|
||||||
|
|
||||||
|
//
|
||||||
|
// Lifecycle
|
||||||
|
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
if (
|
if (
|
||||||
prevProps.isMarkingAsFailed &&
|
prevProps.isMarkingAsFailed &&
|
||||||
|
|
|
@ -52,8 +52,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.addButton {
|
.addButton {
|
||||||
|
@add-mixin truncate;
|
||||||
composes: button from 'Components/Link/SpinnerButton.css';
|
composes: button from 'Components/Link/SpinnerButton.css';
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hideLanguageProfile {
|
.hideLanguageProfile {
|
||||||
|
|
|
@ -42,7 +42,7 @@ $hoverScale: 1.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
background-color: $defaultColor;
|
background-color: $defaultColor;
|
||||||
color: $white;
|
color: $white;
|
||||||
|
|
|
@ -41,7 +41,7 @@ $hoverScale: 1.05;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
background-color: $defaultColor;
|
background-color: $defaultColor;
|
||||||
color: $white;
|
color: $white;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
.artistName,
|
.artistName,
|
||||||
.albumTitle {
|
.albumTitle {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex: 0 1 300px;
|
flex: 0 1 300px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
.artistName,
|
.artistName,
|
||||||
.albumTitle {
|
.albumTitle {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex: 1 0 1px;
|
flex: 1 0 1px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.title {
|
.title {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
float: left;
|
float: left;
|
||||||
clear: left;
|
clear: left;
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.pathContainer {
|
.pathContainer {
|
||||||
composes: scrollbar from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbar;
|
||||||
composes: scrollbarTrack from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarTrack;
|
||||||
composes: scrollbarThumb from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarThumb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pathInputContainerOpen {
|
.pathInputContainerOpen {
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.path {
|
.path {
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.freeSpace {
|
.freeSpace {
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
|
|
|
@ -14,7 +14,7 @@ function Icon(props) {
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<icon
|
<i
|
||||||
className={classNames(
|
className={classNames(
|
||||||
name,
|
name,
|
||||||
className,
|
className,
|
||||||
|
@ -25,7 +25,7 @@ function Icon(props) {
|
||||||
fontSize: `${size}px`
|
fontSize: `${size}px`
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</icon>
|
</i>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.menuItem {
|
.menuItem {
|
||||||
composes: truncate from 'Styles/mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.modalHeader {
|
.modalHeader {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
padding: 15px 50px 15px 30px;
|
padding: 15px 50px 15px 30px;
|
||||||
|
|
|
@ -37,9 +37,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.seriesContainer {
|
.seriesContainer {
|
||||||
composes: scrollbar from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbar;
|
||||||
composes: scrollbarTrack from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarTrack;
|
||||||
composes: scrollbarThumb from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarThumb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.containerOpen {
|
.containerOpen {
|
||||||
|
|
|
@ -29,6 +29,6 @@
|
||||||
.titles,
|
.titles,
|
||||||
.title,
|
.title,
|
||||||
.alternateTitle {
|
.alternateTitle {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,9 +330,9 @@ class PageSidebar extends Component {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isSidebarVisible && (touchStartX > 210 || touchStartX < 50)) {
|
if (isSidebarVisible && (touchStartX > 210 || touchStartX < 180)) {
|
||||||
return;
|
return;
|
||||||
} else if (!isSidebarVisible && touchStartX > 50) {
|
} else if (!isSidebarVisible && touchStartX > 30) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,6 +373,15 @@ class PageSidebar extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Math.abs(this._touchStartY - currentTouchY) > 20) {
|
if (Math.abs(this._touchStartY - currentTouchY) > 20) {
|
||||||
|
this.setState({
|
||||||
|
transition: 'none',
|
||||||
|
transform: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Math.abs(this._touchStartX - currentTouchX) < 20) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ class PageSidebarItem extends Component {
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
|
|
||||||
<span className={isChildItem && styles.noIcon}>
|
<span className={isChildItem ? styles.noIcon : null}>
|
||||||
{title}
|
{title}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
.scroller {
|
.scroller {
|
||||||
composes: scrollbar from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbar;
|
||||||
composes: scrollbarTrack from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarTrack;
|
||||||
composes: scrollbarThumb from 'Styles/Mixins/scroller.css';
|
@add-mixin scrollbarThumb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.none {
|
.none {
|
||||||
|
|
|
@ -306,15 +306,17 @@ class SignalRConnector extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
onDisconnected = () => {
|
onDisconnected = () => {
|
||||||
if (this.props.isReconnecting) {
|
if (window.Sonarr.unloading) {
|
||||||
this.props.setAppValue({
|
return;
|
||||||
isConnected: false,
|
|
||||||
isReconnecting: true,
|
|
||||||
isDisconnected: true
|
|
||||||
});
|
|
||||||
|
|
||||||
this.retryConnection();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.props.setAppValue({
|
||||||
|
isConnected: false,
|
||||||
|
isReconnecting: true,
|
||||||
|
isDisconnected: true
|
||||||
|
});
|
||||||
|
|
||||||
|
this.retryConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.cell {
|
.cell {
|
||||||
|
@add-mixin truncate;
|
||||||
composes: cell from 'Components/Table/Cells/TableRowCell.css';
|
composes: cell from 'Components/Table/Cells/TableRowCell.css';
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
|
||||||
|
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.path {
|
.path {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
flex: 1 0 1px;
|
flex: 1 0 1px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.underlay {
|
.underlay {
|
||||||
composes: cover from 'Styles/Mixins/cover.css';
|
@add-mixin cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css';
|
@add-mixin linkOverlay;
|
||||||
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.underlay {
|
.underlay {
|
||||||
composes: cover from 'Styles/Mixins/cover.css';
|
@add-mixin cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css';
|
@add-mixin linkOverlay;
|
||||||
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.underlay {
|
.underlay {
|
||||||
composes: cover from 'Styles/Mixins/cover.css';
|
@add-mixin cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay {
|
||||||
composes: linkOverlay from 'Styles/Mixins/linkOverlay.css';
|
@add-mixin linkOverlay;
|
||||||
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
composes: truncate from 'Styles/Mixins/truncate.css';
|
@add-mixin truncate;
|
||||||
|
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
|
@ -25,25 +25,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar {
|
.bar {
|
||||||
top: 6px;
|
top: 9px;
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
height: 10px;
|
height: 3px;
|
||||||
border: 1px solid $sliderAccentColor;
|
|
||||||
border-radius: 4px;
|
|
||||||
background-color: $sliderAccentColor;
|
background-color: $sliderAccentColor;
|
||||||
box-shadow: 0 0 0 #000;
|
box-shadow: 0 0 0 #000;
|
||||||
|
|
||||||
&:nth-child(odd) {
|
&:nth-child(odd) {
|
||||||
background-color: $white;
|
background-color: #ddd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.handle {
|
.handle {
|
||||||
top: 1px;
|
top: 1px;
|
||||||
z-index: 0 !important;
|
z-index: 0 !important;
|
||||||
width: 20px;
|
width: 18px;
|
||||||
height: 20px;
|
height: 18px;
|
||||||
border: 1px solid $sliderAccentColor;
|
border: 3px solid $sliderAccentColor;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.cover {
|
@define-mixin cover {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.linkOverlay {
|
@define-mixin linkOverlay {
|
||||||
composes: cover from 'Styles/Mixins/cover.css';
|
@add-mixin cover;
|
||||||
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
.scrollbar {
|
@define-mixin scrollbar {
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 6px;
|
width: 6px;
|
||||||
height: 6px;
|
height: 6px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollbarTrack {
|
@define-mixin scrollbarTrack {
|
||||||
&&::-webkit-scrollbar-track {
|
&&::-webkit-scrollbar-track {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollbarThumb {
|
@define-mixin scrollbarThumb {
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
min-height: 50px;
|
min-height: 50px;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
* occur.
|
* occur.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.truncate {
|
@define-mixin truncate {
|
||||||
overflow: hidden !important;
|
overflow: hidden !important;
|
||||||
max-width: 100%; /* 1 */
|
max-width: 100%; /* 1 */
|
||||||
text-overflow: ellipsis !important;
|
text-overflow: ellipsis !important;
|
||||||
|
|
|
@ -20,7 +20,7 @@ import FilterMenu from 'Components/Menu/FilterMenu';
|
||||||
import MenuContent from 'Components/Menu/MenuContent';
|
import MenuContent from 'Components/Menu/MenuContent';
|
||||||
import FilterMenuItem from 'Components/Menu/FilterMenuItem';
|
import FilterMenuItem from 'Components/Menu/FilterMenuItem';
|
||||||
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
||||||
import CutoffUnmetRow from './CutoffUnmetRow';
|
import CutoffUnmetRowConnector from './CutoffUnmetRowConnector';
|
||||||
|
|
||||||
class CutoffUnmet extends Component {
|
class CutoffUnmet extends Component {
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ class CutoffUnmet extends Component {
|
||||||
{
|
{
|
||||||
items.map((item) => {
|
items.map((item) => {
|
||||||
return (
|
return (
|
||||||
<CutoffUnmetRow
|
<CutoffUnmetRowConnector
|
||||||
key={item.id}
|
key={item.id}
|
||||||
isSelected={selectedState[item.id]}
|
isSelected={selectedState[item.id]}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { connect } from 'react-redux';
|
||||||
|
import { createSelector } from 'reselect';
|
||||||
|
import createArtistSelector from 'Store/Selectors/createArtistSelector';
|
||||||
|
import CutoffUnmetRow from './CutoffUnmetRow';
|
||||||
|
|
||||||
|
function createMapStateToProps() {
|
||||||
|
return createSelector(
|
||||||
|
createArtistSelector(),
|
||||||
|
(artist) => {
|
||||||
|
return {
|
||||||
|
artist
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(createMapStateToProps)(CutoffUnmetRow);
|
|
@ -21,7 +21,7 @@ import MenuContent from 'Components/Menu/MenuContent';
|
||||||
import FilterMenuItem from 'Components/Menu/FilterMenuItem';
|
import FilterMenuItem from 'Components/Menu/FilterMenuItem';
|
||||||
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
import ConfirmModal from 'Components/Modal/ConfirmModal';
|
||||||
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
|
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
|
||||||
import MissingRow from './MissingRow';
|
import MissingRowConnector from './MissingRowConnector';
|
||||||
|
|
||||||
class Missing extends Component {
|
class Missing extends Component {
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ class Missing extends Component {
|
||||||
{
|
{
|
||||||
items.map((item) => {
|
items.map((item) => {
|
||||||
return (
|
return (
|
||||||
<MissingRow
|
<MissingRowConnector
|
||||||
key={item.id}
|
key={item.id}
|
||||||
isSelected={selectedState[item.id]}
|
isSelected={selectedState[item.id]}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { connect } from 'react-redux';
|
||||||
|
import { createSelector } from 'reselect';
|
||||||
|
import createArtistSelector from 'Store/Selectors/createArtistSelector';
|
||||||
|
import MissingRow from './MissingRow';
|
||||||
|
|
||||||
|
function createMapStateToProps() {
|
||||||
|
return createSelector(
|
||||||
|
createArtistSelector(),
|
||||||
|
(artist) => {
|
||||||
|
return {
|
||||||
|
artist
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(createMapStateToProps)(MissingRow);
|
|
@ -48,8 +48,8 @@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="root" class="root">
|
<div id="modal-root"></div>
|
||||||
</div>
|
<div id="root" class="root"></div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
127
package.json
127
package.json
|
@ -13,94 +13,97 @@
|
||||||
"author": "Team Lidarr",
|
"author": "Team Lidarr",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"readmeFilename": "readme.md",
|
"readmeFilename": "readme.md",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "6.3.6",
|
"autoprefixer": "7.1.4",
|
||||||
"babel-core": "6.9.0",
|
"babel-core": "6.26.0",
|
||||||
"babel-eslint": "7.1.0",
|
"babel-eslint": "8.0.1",
|
||||||
"babel-loader": "6.2.4",
|
"babel-loader": "7.1.2",
|
||||||
"babel-plugin-transform-class-properties": "6.16.0",
|
"babel-plugin-transform-class-properties": "6.24.1",
|
||||||
"babel-preset-decorators-legacy": "1.0.0",
|
"babel-preset-decorators-legacy": "1.0.0",
|
||||||
"babel-preset-es2015": "6.9.0",
|
"babel-preset-es2015": "6.24.1",
|
||||||
"babel-preset-react": "6.22.0",
|
"babel-preset-react": "6.24.1",
|
||||||
"babel-preset-stage-2": "6.5.0",
|
"babel-preset-stage-2": "6.24.1",
|
||||||
"classnames": "2.2.5",
|
"classnames": "2.2.5",
|
||||||
"clipboard": "1.7.1",
|
"clipboard": "1.7.1",
|
||||||
"css-loader": "0.23.1",
|
"create-react-class": "^15.6.2",
|
||||||
"del": "2.2.0",
|
"css-loader": "0.28.7",
|
||||||
|
"del": "3.0.0",
|
||||||
"element-class": "0.2.2",
|
"element-class": "0.2.2",
|
||||||
"esformatter": "0.9.3",
|
"esformatter": "0.10.0",
|
||||||
"eslint": "2.10.2",
|
"eslint": "4.7.2",
|
||||||
"eslint-loader": "1.3.0",
|
"eslint-loader": "1.9.0",
|
||||||
"eslint-plugin-filenames": "1.0.0",
|
"eslint-plugin-filenames": "1.2.0",
|
||||||
"eslint-plugin-react": "5.2.2",
|
"eslint-plugin-react": "7.4.0",
|
||||||
"extract-text-webpack-plugin": "1.0.1",
|
"extract-text-webpack-plugin": "3.0.0",
|
||||||
"file-loader": "0.9.0",
|
"file-loader": "0.11.2",
|
||||||
"filesize": "3.5.4",
|
"filesize": "3.5.10",
|
||||||
"gulp": "3.9.1",
|
"gulp": "3.9.1",
|
||||||
"gulp-cached": "1.1.0",
|
"gulp-cached": "1.1.1",
|
||||||
"gulp-clean-css": "3.3.1",
|
"gulp-clean-css": "3.9.0",
|
||||||
"gulp-concat": "2.6.0",
|
"gulp-concat": "2.6.1",
|
||||||
"gulp-declare": "0.3.0",
|
"gulp-declare": "0.3.0",
|
||||||
"gulp-livereload": "3.8.1",
|
"gulp-livereload": "3.8.1",
|
||||||
"gulp-postcss": "6.1.1",
|
"gulp-postcss": "7.0.0",
|
||||||
"gulp-print": "2.0.1",
|
"gulp-print": "2.0.1",
|
||||||
"gulp-sourcemaps": "1.6.0",
|
"gulp-sourcemaps": "2.6.1",
|
||||||
"gulp-stripbom": "1.0.4",
|
"gulp-stripbom": "1.0.4",
|
||||||
"gulp-util": "3.0.7",
|
"gulp-util": "3.0.8",
|
||||||
"gulp-watch": "4.3.5",
|
"gulp-watch": "4.3.11",
|
||||||
"gulp-wrap": "0.13.0",
|
"gulp-wrap": "0.13.0",
|
||||||
"history": "4.6.3",
|
"history": "4.7.2",
|
||||||
"jdu": "1.0.0",
|
"jdu": "1.0.0",
|
||||||
"jquery": "2.2.4",
|
"jquery": "2.2.4",
|
||||||
|
"loader-utils": "^1.1.0",
|
||||||
"lodash": "4.17.4",
|
"lodash": "4.17.4",
|
||||||
"mobile-detect": "1.3.6",
|
"mobile-detect": "1.3.7",
|
||||||
"moment": "2.17.1",
|
"moment": "2.18.1",
|
||||||
"mousetrap": "1.6.0",
|
"mousetrap": "1.6.1",
|
||||||
"normalize.css": "5.0.0",
|
"normalize.css": "7.0.0",
|
||||||
"postcss-loader": "0.9.1",
|
"postcss-loader": "2.0.6",
|
||||||
"postcss-nested": "1.0.0",
|
"postcss-mixins": "6.1.1",
|
||||||
"postcss-simple-vars": "3.0.0",
|
"postcss-nested": "2.1.2",
|
||||||
"prop-types": "15.5.10",
|
"postcss-simple-vars": "4.1.0",
|
||||||
"query-string": "https://registry.npmjs.org/query-string/-/query-string-4.2.2.tgz",
|
"prop-types": "15.6.0",
|
||||||
"raven-js": "3.17.0",
|
"query-string": "5.0.0",
|
||||||
"raven-for-redux": "1.0.0",
|
"react": "15.6.0",
|
||||||
"react": "15.6.1",
|
"react-addons-shallow-compare": "15.6.2",
|
||||||
"react-addons-shallow-compare": "15.6.0",
|
|
||||||
"react-async-script": "0.9.1",
|
"react-async-script": "0.9.1",
|
||||||
"react-autosuggest": "9.3.0",
|
"react-autosuggest": "9.3.2",
|
||||||
"react-custom-scrollbars": "4.1.2",
|
"react-custom-scrollbars": "4.1.2",
|
||||||
"react-dnd": "2.4.0",
|
"react-dnd": "2.5.3",
|
||||||
"react-dnd-html5-backend": "2.4.1",
|
"react-dnd-html5-backend": "2.5.3",
|
||||||
"react-document-title": "2.0.3",
|
"react-document-title": "2.0.3",
|
||||||
"react-dom": "15.6.1",
|
"react-dom": "15.6.0",
|
||||||
"react-google-recaptcha": "0.9.6",
|
"react-google-recaptcha": "0.9.7",
|
||||||
"react-lazyload": "2.2.7",
|
"react-lazyload": "2.2.7",
|
||||||
"react-measure": "1.4.7",
|
"react-measure": "1.4.7",
|
||||||
"react-portal": "3.1.0",
|
"react-portal": "3.1.0",
|
||||||
"react-redux": "5.0.5",
|
"react-redux": "5.0.6",
|
||||||
"react-router-dom": "4.1.1",
|
"react-router-dom": "4.2.2",
|
||||||
"react-router-redux": "5.0.0-alpha.6",
|
"react-router-redux": "5.0.0-alpha.6",
|
||||||
"react-slider": "0.8.0",
|
"react-slider": "0.9.0",
|
||||||
"react-tabs": "1.1.0",
|
"react-tabs": "1.1.0",
|
||||||
"react-tag-autocomplete": "5.4.0",
|
"react-tag-autocomplete": "5.4.1",
|
||||||
"react-tether": "0.5.7",
|
"react-tether": "0.5.7",
|
||||||
"react-virtualized": "9.8.0",
|
"react-virtualized": "9.10.1",
|
||||||
"redux": "3.7.0",
|
"redux": "3.7.2",
|
||||||
"redux-actions": "2.0.3",
|
"redux-actions": "2.2.1",
|
||||||
"redux-batched-actions": "0.2.0",
|
"redux-batched-actions": "0.2.0",
|
||||||
"redux-localstorage": "0.4.1",
|
"redux-localstorage": "0.4.1",
|
||||||
|
"redux-raven-middleware": "1.2.0",
|
||||||
"redux-thunk": "2.2.0",
|
"redux-thunk": "2.2.0",
|
||||||
"require-nocache": "1.0.0",
|
"require-nocache": "1.0.0",
|
||||||
"reselect": "3.0.1",
|
"reselect": "3.0.1",
|
||||||
"run-sequence": "1.2.0",
|
"run-sequence": "2.2.0",
|
||||||
"signalr": "2.2.2",
|
"signalr": "2.2.2",
|
||||||
"streamqueue": "1.1.1",
|
"streamqueue": "1.1.1",
|
||||||
"style-loader": "0.13.1",
|
"style-loader": "^0.18.2",
|
||||||
"stylelint": "7.3.1",
|
"stylelint": "8.1.1",
|
||||||
"stylelint-order": "0.6.0",
|
"stylelint-order": "0.7.0",
|
||||||
"tar.gz": "1.0.3",
|
"tar.gz": "1.0.5",
|
||||||
"url-loader": "0.5.7",
|
"url-loader": "0.5.9",
|
||||||
"webpack": "1.13.1",
|
"webpack": "3.6.0",
|
||||||
"webpack-stream": "2.1.1"
|
"webpack-stream": "^4.0.0"
|
||||||
}
|
},
|
||||||
}
|
"main": "index.js"
|
||||||
|
}
|
|
@ -30,13 +30,23 @@ namespace Lidarr.Api.V3.History
|
||||||
Post["/failed"] = x => MarkAsFailed();
|
Post["/failed"] = x => MarkAsFailed();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected HistoryResource MapToResource(NzbDrone.Core.History.History model)
|
protected HistoryResource MapToResource(NzbDrone.Core.History.History model, bool includeArtist, bool includeAlbum, bool includeTrack)
|
||||||
{
|
{
|
||||||
var resource = model.ToResource();
|
var resource = model.ToResource();
|
||||||
|
|
||||||
resource.Artist = model.Artist.ToResource();
|
if (includeArtist)
|
||||||
resource.Album = model.Album.ToResource();
|
{
|
||||||
resource.Track = model.Track.ToResource();
|
resource.Artist = model.Artist.ToResource();
|
||||||
|
}
|
||||||
|
if (includeAlbum)
|
||||||
|
{
|
||||||
|
resource.Album = model.Album.ToResource();
|
||||||
|
}
|
||||||
|
if (includeTrack)
|
||||||
|
{
|
||||||
|
resource.Track = model.Track.ToResource();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (model.Artist != null)
|
if (model.Artist != null)
|
||||||
{
|
{
|
||||||
|
@ -52,6 +62,9 @@ namespace Lidarr.Api.V3.History
|
||||||
private PagingResource<HistoryResource> GetHistory(PagingResource<HistoryResource> pagingResource)
|
private PagingResource<HistoryResource> GetHistory(PagingResource<HistoryResource> pagingResource)
|
||||||
{
|
{
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, NzbDrone.Core.History.History>("date", SortDirection.Descending);
|
var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, NzbDrone.Core.History.History>("date", SortDirection.Descending);
|
||||||
|
var includeArtist = Request.GetBooleanQueryParameter("includeArtist");
|
||||||
|
var includeAlbum = Request.GetBooleanQueryParameter("includeAlbum");
|
||||||
|
var includeTrack = Request.GetBooleanQueryParameter("includeTrack");
|
||||||
|
|
||||||
if (pagingResource.FilterKey == "eventType")
|
if (pagingResource.FilterKey == "eventType")
|
||||||
{
|
{
|
||||||
|
@ -65,7 +78,7 @@ namespace Lidarr.Api.V3.History
|
||||||
pagingSpec.FilterExpression = h => h.AlbumId == albumId;
|
pagingSpec.FilterExpression = h => h.AlbumId == albumId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ApplyToPage(_historyService.Paged, pagingSpec, MapToResource);
|
return ApplyToPage(_historyService.Paged, pagingSpec, h => MapToResource(h, includeArtist, includeAlbum, includeTrack));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Response MarkAsFailed()
|
private Response MarkAsFailed()
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NodaTime, Version=1.3.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL">
|
<Reference Include="NodaTime, Version=1.3.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Ical.Net.2.2.32\lib\net40\NodaTime.dll</HintPath>
|
<HintPath>..\packages\Ical.Net.2.2.32\lib\net40\NodaTime.dll</HintPath>
|
||||||
|
|
|
@ -30,7 +30,7 @@ namespace Lidarr.Api.V3.Queue
|
||||||
{
|
{
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>("timeleft", SortDirection.Ascending);
|
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>("timeleft", SortDirection.Ascending);
|
||||||
var includeSeries = Request.GetBooleanQueryParameter("includeSeries");
|
var includeSeries = Request.GetBooleanQueryParameter("includeSeries");
|
||||||
var includeEpisode = Request.GetBooleanQueryParameter("includeEpisode", true);
|
var includeEpisode = Request.GetBooleanQueryParameter("includeEpisode");
|
||||||
|
|
||||||
return ApplyToPage(GetQueue, pagingSpec, (q) => MapToResource(q, includeSeries, includeEpisode));
|
return ApplyToPage(GetQueue, pagingSpec, (q) => MapToResource(q, includeSeries, includeEpisode));
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ using NzbDrone.Core.ArtistStats;
|
||||||
using NzbDrone.SignalR;
|
using NzbDrone.SignalR;
|
||||||
using Lidarr.Api.V3.Albums;
|
using Lidarr.Api.V3.Albums;
|
||||||
using Lidarr.Http;
|
using Lidarr.Http;
|
||||||
|
using Lidarr.Http.Extensions;
|
||||||
|
|
||||||
namespace Lidarr.Api.V3.Wanted
|
namespace Lidarr.Api.V3.Wanted
|
||||||
{
|
{
|
||||||
|
@ -35,6 +36,9 @@ namespace Lidarr.Api.V3.Wanted
|
||||||
SortDirection = pagingResource.SortDirection
|
SortDirection = pagingResource.SortDirection
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var includeArtist = Request.GetBooleanQueryParameter("includeArtist");
|
||||||
|
var includeTrackFile = Request.GetBooleanQueryParameter("includeTrackFile");
|
||||||
|
|
||||||
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
|
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
|
||||||
{
|
{
|
||||||
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
|
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
|
||||||
|
@ -44,7 +48,7 @@ namespace Lidarr.Api.V3.Wanted
|
||||||
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
|
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//var resource = ApplyToPage(_episodeCutoffService.EpisodesWhereCutoffUnmet, pagingSpec, v => MapToResource(v, true));
|
//var resource = ApplyToPage(_episodeCutoffService.EpisodesWhereCutoffUnmet, pagingSpec, v => MapToResource(v, includeSeries, includeEpisodeFile));
|
||||||
return null;
|
return null;
|
||||||
//return resource;
|
//return resource;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ using NzbDrone.Core.ArtistStats;
|
||||||
using NzbDrone.SignalR;
|
using NzbDrone.SignalR;
|
||||||
using Lidarr.Api.V3.Albums;
|
using Lidarr.Api.V3.Albums;
|
||||||
using Lidarr.Http;
|
using Lidarr.Http;
|
||||||
|
using Lidarr.Http.Extensions;
|
||||||
|
|
||||||
namespace Lidarr.Api.V3.Wanted
|
namespace Lidarr.Api.V3.Wanted
|
||||||
{
|
{
|
||||||
|
@ -30,6 +31,8 @@ namespace Lidarr.Api.V3.Wanted
|
||||||
SortDirection = pagingResource.SortDirection
|
SortDirection = pagingResource.SortDirection
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var includeArtist = Request.GetBooleanQueryParameter("includeSeries");
|
||||||
|
|
||||||
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
|
if (pagingResource.FilterKey == "monitored" && pagingResource.FilterValue == "false")
|
||||||
{
|
{
|
||||||
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
|
pagingSpec.FilterExpression = v => v.Monitored == false || v.Artist.Monitored == false;
|
||||||
|
@ -39,7 +42,7 @@ namespace Lidarr.Api.V3.Wanted
|
||||||
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
|
pagingSpec.FilterExpression = v => v.Monitored == true && v.Artist.Monitored == true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var resource = ApplyToPage(_albumService.AlbumsWithoutFiles, pagingSpec, v => MapToResource(v, true));
|
var resource = ApplyToPage(_albumService.AlbumsWithoutFiles, pagingSpec, v => MapToResource(v, includeArtist));
|
||||||
|
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,5 +6,5 @@
|
||||||
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -54,7 +54,7 @@
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -5,5 +5,5 @@
|
||||||
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Authentication.Basic" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Authentication.Forms" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -52,7 +52,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net40\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net40" />
|
<package id="NLog" version="4.4.12" targetFramework="net40" />
|
||||||
</packages>
|
</packages>
|
|
@ -53,7 +53,7 @@
|
||||||
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
||||||
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
||||||
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -48,7 +48,7 @@
|
||||||
<HintPath>..\packages\FluentAssertions.4.19.0\lib\net45\FluentAssertions.Core.dll</HintPath>
|
<HintPath>..\packages\FluentAssertions.4.19.0\lib\net45\FluentAssertions.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
<package id="Selenium.Support" version="3.2.0" targetFramework="net461" />
|
<package id="Selenium.Support" version="3.2.0" targetFramework="net461" />
|
||||||
<package id="Selenium.WebDriver" version="3.2.0" targetFramework="net461" />
|
<package id="Selenium.WebDriver" version="3.2.0" targetFramework="net461" />
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
<packages>
|
<packages>
|
||||||
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
||||||
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
@ -18,7 +18,10 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
private readonly IDiskProvider _diskProvider;
|
private readonly IDiskProvider _diskProvider;
|
||||||
private readonly Logger _logger;
|
private readonly Logger _logger;
|
||||||
|
|
||||||
public AppFolderFactory(IAppFolderInfo appFolderInfo, IDiskProvider diskProvider)
|
public AppFolderFactory(IAppFolderInfo appFolderInfo,
|
||||||
|
IStartupContext startupContext,
|
||||||
|
IDiskProvider diskProvider,
|
||||||
|
IDiskTransferService diskTransferService)
|
||||||
{
|
{
|
||||||
_appFolderInfo = appFolderInfo;
|
_appFolderInfo = appFolderInfo;
|
||||||
_diskProvider = diskProvider;
|
_diskProvider = diskProvider;
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Org.Mentalis, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Org.Mentalis, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\DotNet4.SocksProxy.1.3.4.0\lib\net40\Org.Mentalis.dll</HintPath>
|
<HintPath>..\packages\DotNet4.SocksProxy.1.3.4.0\lib\net40\Org.Mentalis.dll</HintPath>
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<package id="DotNet4.SocksProxy" version="1.3.4.0" targetFramework="net461" />
|
<package id="DotNet4.SocksProxy" version="1.3.4.0" targetFramework="net461" />
|
||||||
<package id="ICSharpCode.SharpZipLib.Patched" version="0.86.5" targetFramework="net461" />
|
<package id="ICSharpCode.SharpZipLib.Patched" version="0.86.5" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="SharpRaven" version="2.2.0" targetFramework="net461" />
|
<package id="SharpRaven" version="2.2.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -78,7 +78,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
|
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
|
||||||
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
|
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net461" />
|
<package id="Owin" version="1.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Core.HealthCheck.Checks;
|
using NzbDrone.Core.HealthCheck.Checks;
|
||||||
|
@ -18,11 +18,13 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
.Returns(new Version(version));
|
.Returns(new Version(version));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase("3.10")]
|
|
||||||
[TestCase("4.0.0.0")]
|
|
||||||
[TestCase("4.2")]
|
|
||||||
[TestCase("4.6")]
|
[TestCase("4.6")]
|
||||||
[TestCase("4.4.2")]
|
[TestCase("4.4.2")]
|
||||||
|
[TestCase("4.6")]
|
||||||
|
[TestCase("4.8")]
|
||||||
|
[TestCase("5.0")]
|
||||||
|
[TestCase("5.2")]
|
||||||
|
[TestCase("5.4")]
|
||||||
public void should_return_ok(string version)
|
public void should_return_ok(string version)
|
||||||
{
|
{
|
||||||
GivenOutput(version);
|
GivenOutput(version);
|
||||||
|
@ -38,6 +40,9 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
|
||||||
[TestCase("3.2.7")]
|
[TestCase("3.2.7")]
|
||||||
[TestCase("3.6.1")]
|
[TestCase("3.6.1")]
|
||||||
[TestCase("3.8")]
|
[TestCase("3.8")]
|
||||||
|
[TestCase("3.10")]
|
||||||
|
[TestCase("4.0.0.0")]
|
||||||
|
[TestCase("4.2")]
|
||||||
public void should_return_warning(string version)
|
public void should_return_warning(string version)
|
||||||
{
|
{
|
||||||
GivenOutput(version);
|
GivenOutput(version);
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
||||||
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
<package id="NUnit3TestAdapter" version="3.7.0" targetFramework="net461" />
|
<package id="NUnit3TestAdapter" version="3.7.0" targetFramework="net461" />
|
||||||
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />
|
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
@ -26,21 +26,15 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
var monoVersion = _platformInfo.Version;
|
var monoVersion = _platformInfo.Version;
|
||||||
|
|
||||||
if (monoVersion == new Version("3.4.0") && HasMonoBug18599())
|
|
||||||
{
|
|
||||||
_logger.Debug("Mono version 3.4.0, checking for Mono bug #18599 returned positive.");
|
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, "You are running an old and unsupported version of Mono with a known bug. You should upgrade to a higher version");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (monoVersion == new Version("4.4.0") || monoVersion == new Version("4.4.1"))
|
if (monoVersion == new Version("4.4.0") || monoVersion == new Version("4.4.1"))
|
||||||
{
|
{
|
||||||
_logger.Debug("Mono version {0}", monoVersion);
|
_logger.Debug("Mono version {0}", monoVersion);
|
||||||
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Your Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version");
|
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Your Mono version {monoVersion} has a bug that causes issues connecting to indexers/download clients. You should upgrade to a higher version");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (monoVersion >= new Version("3.10"))
|
if (monoVersion >= new Version("4.4"))
|
||||||
{
|
{
|
||||||
_logger.Debug("Mono version is 3.10 or better: {0}", monoVersion);
|
_logger.Debug("Mono version is 4.6 or better: {0}", monoVersion);
|
||||||
return new HealthCheck(GetType());
|
return new HealthCheck(GetType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,33 +45,5 @@ namespace NzbDrone.Core.HealthCheck.Checks
|
||||||
|
|
||||||
public override bool CheckOnSchedule => false;
|
public override bool CheckOnSchedule => false;
|
||||||
|
|
||||||
private bool HasMonoBug18599()
|
|
||||||
{
|
|
||||||
_logger.Debug("mono version 3.4.0, checking for mono bug #18599.");
|
|
||||||
var numberFormatterType = Type.GetType("System.NumberFormatter");
|
|
||||||
|
|
||||||
if (numberFormatterType == null)
|
|
||||||
{
|
|
||||||
_logger.Debug("Couldn't find System.NumberFormatter. Aborting test.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var fieldInfo = numberFormatterType.GetField("userFormatProvider",
|
|
||||||
BindingFlags.Static | BindingFlags.NonPublic);
|
|
||||||
|
|
||||||
if (fieldInfo == null)
|
|
||||||
{
|
|
||||||
_logger.Debug("userFormatProvider field not found, version likely preceeds the official v3.4.0.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fieldInfo.GetCustomAttributes(false).Any(v => v is ThreadStaticAttribute))
|
|
||||||
{
|
|
||||||
_logger.Debug("userFormatProvider field doesn't contain the ThreadStatic Attribute, version is affected by the critical bug #18599.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="OAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=75b3c62967edc2a2, processorArchitecture=MSIL">
|
<Reference Include="OAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=75b3c62967edc2a2, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\OAuth.1.0.3\lib\net40\OAuth.dll</HintPath>
|
<HintPath>..\packages\OAuth.1.0.3\lib\net40\OAuth.dll</HintPath>
|
||||||
|
|
|
@ -167,7 +167,7 @@ namespace NzbDrone.Core.Update
|
||||||
throw new UpdateFailedException("Update Script: '{0}' does not exist", scriptPath);
|
throw new UpdateFailedException("Update Script: '{0}' does not exist", scriptPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Info("Removing NzbDrone.Update");
|
_logger.Info("Removing Lidarr.Update");
|
||||||
_diskProvider.DeleteFolder(_appFolderInfo.GetUpdateClientFolder(), true);
|
_diskProvider.DeleteFolder(_appFolderInfo.GetUpdateClientFolder(), true);
|
||||||
|
|
||||||
_logger.ProgressInfo("Starting update script: {0}", _configFileProvider.UpdateScriptPath);
|
_logger.ProgressInfo("Starting update script: {0}", _configFileProvider.UpdateScriptPath);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
|
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
|
||||||
<package id="ImageResizer" version="3.4.3" targetFramework="net461" />
|
<package id="ImageResizer" version="3.4.3" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="OAuth" version="1.0.3" targetFramework="net461" />
|
<package id="OAuth" version="1.0.3" targetFramework="net461" />
|
||||||
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />
|
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net461" />
|
||||||
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
|
|
|
@ -13,6 +13,6 @@
|
||||||
<package id="Nancy" version="1.4.4" targetFramework="net461" />
|
<package id="Nancy" version="1.4.4" targetFramework="net461" />
|
||||||
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net461" />
|
<package id="Owin" version="1.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -75,7 +75,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<package id="Nancy" version="1.4.4" targetFramework="net461" />
|
<package id="Nancy" version="1.4.4" targetFramework="net461" />
|
||||||
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
|
<package id="Nancy.Owin" version="1.4.1" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net461" />
|
<package id="Owin" version="1.0" targetFramework="net461" />
|
||||||
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -65,7 +65,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
|
<package id="FluentValidation" version="6.2.1.0" targetFramework="net461" />
|
||||||
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
<package id="RestSharp" version="105.2.3" targetFramework="net461" />
|
||||||
<package id="Unity" version="2.1.505.2" targetFramework="net461" />
|
<package id="Unity" version="2.1.505.2" targetFramework="net461" />
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
<package id="FluentAssertions" version="4.19.0" targetFramework="net461" />
|
||||||
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
<package id="Moq" version="4.0.10827" targetFramework="net461" />
|
||||||
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
<package id="NBuilder" version="4.0.0" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
<package id="NUnit" version="3.6.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -46,7 +46,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -57,7 +57,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
|
@ -78,7 +78,7 @@
|
||||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.4.3\lib\net45\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
|
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" />
|
||||||
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
|
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
|
||||||
<package id="NLog" version="4.4.3" targetFramework="net461" />
|
<package id="NLog" version="4.4.12" targetFramework="net461" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net461" />
|
<package id="Owin" version="1.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue