Commit a3a83b7b authored by echel0n's avatar echel0n
Browse files

Merge branch 'release/9.3.56'

parents e233cb68 b1dc06dd
{
"registry": "https://registry.bower.io",
"directory": "bower_components",
"strict-ssl": false
}
{
"env": {
"browser": true,
"es6": true,
"node": true,
"jquery": true
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": false
}
},
"parser": "babel-eslint",
"plugins": [],
"extends": "eslint:recommended",
"rules": {
//
}
}
\ No newline at end of file
......@@ -61,15 +61,8 @@ Thumbs.db
/.directory
/.DS_Store
# GruntJS Files #
# Build Files #
######################
/.sass-cache
# NodeJS Files #
######################
/node_modules/
# Bower Files #
######################
_bower.js
/bower_components/
/node_modules/
/src/spritesmith-generated/
\ No newline at end of file
{
"bitwise": false,
"browser": true,
"camelcase": false,
"curly": true,
"devel": true,
"expr": true,
"eqeqeq": true,
"forin": true,
"freeze": true,
"indent": 4,
"latedef": true,
"maxerr": 100,
"maxlen": 1000,
"mocha": true,
"noarg": true,
"noempty": true,
"nonbsp": true,
"undef": true,
"unused": "vars",
"node": true,
"jquery": true,
"globals": {
"jQuery": true,
"PNotify": true,
"URI": true,
"chai": true,
"mocha": true,
"_": true,
"window": true,
"Bloodhound": true,
"Gettext": true,
"jconfirm": true,
"CH": true
}
}
\ No newline at end of file
const webpackConfig = require('./webpack.config');
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
clean: {
bower_components: 'bower_components',
options: {
force: true
}
},
bower: {
install: {
options: {
copy: false
}
}
},
bower_concat: {
all: {
dest: {
js: 'dist/js/bower.js',
css: 'dist/css/bower.css'
},
callback: function (mainFiles) {
return mainFiles.map(function (filepath) {
var min = filepath.replace(/\.js$/, '.min.js');
return grunt.file.exists(min) ? min : filepath;
});
},
mainFiles: {
'bootstrap': [
'dist/css/bootstrap.min.css',
'dist/js/bootstrap.min.js'
],
'bootstrap-formhelpers': [
'dist/js/bootstrap-formhelpers.min.js',
'dist/css/bootstrap-formhelpers.min.css'
],
'jquery-ui': [
'jquery-ui.min.js',
'themes/base/jquery-ui.min.css'
],
'jquery.tablesorter': [
'dist/js/jquery.tablesorter.js',
'dist/js/widgets/widget-columnSelector.min.js',
'dist/js/widgets/widget-stickyHeaders.min.js',
'dist/js/widgets/widget-reflow.min.js',
'dist/js/widgets/widget-filter.min.js',
'dist/js/widgets/widget-saveSort.min.js',
'dist/js/widgets/widget-storage.min.js',
'dist/css/theme.blue.css'
],
'isotope': [
"dist/isotope.pkgd.min.js"
],
'jquery-json': [
'dist/jquery.json.min.js'
],
'pnotify': [
'dist/pnotify.js',
'dist/pnotify.desktop.js',
'dist/pnotify.nonblock.js',
'dist/pnotify.css'
],
"outlayer": [
"item.js",
"outlayer.js"
],
"bootstrap-tokenfield": [
"dist/bootstrap-tokenfield.js",
"dist/css/tokenfield-typeahead.css",
"dist/css/bootstrap-tokenfield.css"
]
},
bowerOptions: {
relative: false
},
dependencies: {
'selectboxes': 'jquery',
'bookmarkscroll': 'jquery'
}
}
},
googlefonts: {
build: {
options: {
fontPath: 'sickrage/core/webserver/static/fonts/',
cssFile: 'dist/css/fonts.css',
httpPath: '../fonts/',
formats: {
eot: true,
ttf: true,
woff: true,
woff2: true,
svg: true
},
fonts: [
{
family: 'Open Sans',
styles: [
300, '300italic',
400, '400italic',
600, '600italic',
700, '700italic',
800, '800italic'
]
},
{
family: 'Droid Sans',
styles: [
400, 700
]
},
{
family: 'Roboto',
styles: [
400, 700
]
}
]
}
}
},
copy: {
glyphicon: {
files: [{
expand: true,
flatten: true,
cwd: 'bower_components/bootstrap/fonts/',
src: ['**/*.{eot,svg,ttf,woff,woff2}'],
dest: 'sickrage/core/webserver/static/fonts/'
}]
},
fontawesome: {
files: [{
expand: true,
flatten: true,
cwd: 'bower_components/components-font-awesome/fonts/',
src: ['**/*.{eot,svg,ttf,woff,woff2}'],
dest: 'sickrage/core/webserver/static/fonts/'
}]
}
},
imagemin: {
jquery_ui: {
files: [{
expand: true,
flatten: true,
cwd: 'bower_components/jquery-ui/themes/',
src: ['**/*.{png,jpg,gif}'],
dest: 'sickrage/core/webserver/static/images/'
}]
},
tablesorter: {
files: [{
expand: true,
flatten: true,
cwd: 'bower_components/jquery.tablesorter/dist/css/images/',
src: ['**/*.{png,jpg,gif}'],
dest: 'sickrage/core/webserver/static/images/tablesorter/'
}]
},
boostrap_formhelpers: {
files: [{
expand: true,
flatten: true,
cwd: 'bower_components/bootstrap-formhelpers/img/',
src: ['**/*.{png,jpg,gif}'],
dest: 'sickrage/core/webserver/static/images/bootstrap-formhelpers/'
}]
}
},
sprite: {
icons_sickrage: {
src: 'dist/images/icons/sickrage/*.png',
dest: 'sickrage/core/webserver/static/images/icons-sickrage.png',
destCss: 'dist/css/icons-sickrage.css',
imgPath: '../images/icons-sickrage.png',
cssTemplate: 'dist/css/icons-sickrage.css.handlebars',
padding: 2
}
},
uglify: {
bower: {
files: {
'sickrage/core/webserver/static/js/bower.min.js': ['dist/js/bower.js']
}
},
core: {
files: {
'sickrage/core/webserver/static/js/core.min.js': ['dist/js/core.js']
}
}
},
cssmin: {
webpack: {
options: {
shorthandCompacting: false,
roundingPrecision: -1
stats: !process.env.NODE_ENV || process.env.NODE_ENV === 'development'
},
bower: {
files: {
'sickrage/core/webserver/static/css/bower.min.css': ['dist/css/bower.css']
}
},
core: {
files: {
'sickrage/core/webserver/static/css/core.min.css': [
'dist/css/core.css',
'dist/css/fonts.css',
'dist/css/icons-sickrage.css'
],
'sickrage/core/webserver/static/css/themes/dark.min.css': [
'dist/css/themes/dark.css'
],
'sickrage/core/webserver/static/css/themes/light.min.css': [
'dist/css/themes/light.css'
]
}
}
},
jshint: {
options: {
jshintrc: '.jshintrc'
},
all: ['dist/js/core.js']
},
po2json: {
messages: {
options: {
singleFile: true
},
files: [{
expand: true,
src: 'sickrage/locale/*/LC_MESSAGES/messages.po',
dest: '',
ext: ''
}]
}
prod: webpackConfig,
dev: webpackConfig
},
changelog: {
release: {
......@@ -280,7 +54,7 @@ module.exports = function (grunt) {
},
'git_push': {
cmd: function (remote, branch, tags) {
var pushCmd = 'git push ' + remote + ' ' + branch;
let pushCmd = 'git push ' + remote + ' ' + branch;
if (tags) {
pushCmd += ' --tags';
}
......@@ -317,8 +91,9 @@ module.exports = function (grunt) {
return 'git log --oneline --pretty=format:%s ' + grunt.config('last_tag') + '..HEAD';
},
stdout: false,
maxBuffer: 500 * 1024,
callback: function (err, stdout) {
var commits = stdout.trim()
const commits = stdout.trim()
.replace(/`/gm, '').replace(/^\([\w\d\s,.\-+_/>]+\)\s/gm, ''); // removes ` and tag information
if (commits) {
grunt.config('commits', commits);
......@@ -339,6 +114,7 @@ module.exports = function (grunt) {
return 'git flow bugfix start ' + version;
},
stderr: false,
maxBuffer: 500 * 1024,
callback: function (err, stdout, stderr) {
grunt.log.write(stderr);
}
......@@ -348,6 +124,7 @@ module.exports = function (grunt) {
return 'git flow bugfix finish ' + version;
},
stderr: false,
maxBuffer: 500 * 1024,
callback: function (err, stdout, stderr) {
grunt.log.write(stderr);
}
......@@ -357,6 +134,7 @@ module.exports = function (grunt) {
return 'git flow release start ' + version;
},
stderr: false,
maxBuffer: 500 * 1024,
callback: function (err, stdout, stderr) {
grunt.log.write(stderr);
}
......@@ -366,6 +144,7 @@ module.exports = function (grunt) {
return 'git flow release finish ' + version + ' -m "' + message + '"';
},
stderr: false,
maxBuffer: 500 * 1024,
callback: function (err, stdout, stderr) {
grunt.log.write(stderr);
}
......@@ -373,31 +152,10 @@ module.exports = function (grunt) {
}
});
grunt.registerTask(
'default', [
'clean',
'bower',
'bower_concat',
'googlefonts',
'copy',
'imagemin',
'uglify',
'sprite',
'cssmin',
'jshint'
]
);
grunt.registerTask(
'css', [
'cssmin'
]
);
grunt.registerTask('upload_trans', 'Upload translations', function () {
grunt.log.writeln('Extracting and uploading translations to Crowdin...'.magenta);
var tasks = [
const tasks = [
'exec:babel_extract',
'exec:crowdin_upload_sources'
];
......@@ -412,10 +170,9 @@ module.exports = function (grunt) {
grunt.registerTask('download_trans', 'Download translations', function () {
grunt.log.writeln('Downloading and compiling translations from Crowdin...'.magenta);
var tasks = [
const tasks = [
'exec:crowdin_download_translations',
'exec:babel_compile',
'po2json'
'exec:babel_compile'
];
if (process.env.CROWDIN_API_KEY) {
......@@ -428,7 +185,7 @@ module.exports = function (grunt) {
grunt.registerTask('sync_trans', 'Sync translations with Crowdin', function () {
grunt.log.writeln('Syncing translations with Crowdin...'.magenta);
var tasks = [
const tasks = [
'upload_trans',
'download_trans'
];
......@@ -443,11 +200,11 @@ module.exports = function (grunt) {
grunt.registerTask('pre-release', function () {
grunt.task.run(['exec:git:checkout:develop']);
var vFile = 'sickrage/version.txt';
const vFile = 'sickrage/version.txt';
var version = grunt.file.read(vFile);
var versionParts = version.split('.');
var vArray = {
const version = grunt.file.read(vFile);
const versionParts = version.split('.');
const vArray = {
vMajor: versionParts[0],
vMinor: versionParts[1],
vPatch: versionParts[2],
......@@ -464,18 +221,18 @@ module.exports = function (grunt) {
vArray.vPre = parseFloat(vArray.vPre) + 1;
var newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch + '.dev' + vArray.vPre;
const newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch + '.dev' + vArray.vPre;
grunt.config('new_version', newVersion);
grunt.file.write(vFile, newVersion);
grunt.log.writeln(('Packaging Pre-Release v' + newVersion).magenta);
var tasks = [
'default',
const tasks = [
'webpack:dev',
'sync_trans', // sync translations with crowdin
'exec:git_commit:Pre-Release v' + newVersion,
'exec:git_last_tag','exec:git_list_changes','exec:git_tag',
'exec:git_last_tag', 'exec:git_list_changes', 'exec:git_tag',
'exec:git_push:origin:develop:tags',
'exec:pypi_publish'
];
......@@ -486,10 +243,10 @@ module.exports = function (grunt) {
grunt.registerTask('release', function () {
grunt.task.run(['exec:git:checkout:develop']);
var vFile = 'sickrage/version.txt';
var version = grunt.file.read(vFile);
var versionParts = version.split('.');
var vArray = {
const vFile = 'sickrage/version.txt';
const version = grunt.file.read(vFile);
const versionParts = version.split('.');
const vArray = {
vMajor: versionParts[0],
vMinor: versionParts[1],
vPatch: versionParts[2],
......@@ -500,15 +257,15 @@ module.exports = function (grunt) {
vArray.vPatch = parseFloat(vArray.vPatch) + 1;
}
var newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch;
const newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch;
grunt.config('new_version', newVersion);
grunt.file.write(vFile, newVersion);
grunt.log.writeln(('Packaging Release v' + newVersion).magenta);
var tasks = [
'default',
const tasks = [
'webpack:prod',
'sync_trans', // sync translations with crowdin
'exec:git_commit:Release v' + newVersion,
'exec:git_flow_release_start:' + newVersion,
......
{
"name": "SiCKRAGE",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"jquery": "~3.2.1",
"jquery-ui": "~1.12.1",
"jquery-form": "~3.46.0",
"jquery-timeago": "~1.4.3",
"jqueryui-touch-punch": "*",
"jquery-confirm": "https://github.com/craftpip/jquery-confirm.git#v3.3.1",
"jquery.steps": "~1.1.0",
"jquery-validation": "~1.15.0",
"jquery-backstretch": "~2.1.16",
"jquery-migrate": "~3.0.0",
"jquery.tablesorter": "~2.28.15",
"bootstrap": "~3.3.7",
"bootstrap-hover-dropdown": "~2.1.3",
"bootstrap-formhelpers": "~2.3.0",
"bootstrap-tokenfield": "~0.12.1",
"typeahead.js": "~0.11.1",
"bootbox.js": "~4.4.0",
"underscore": "~1.8.3",
"pnotify": "~3.2.1",
"isotope": "~2.2.2",
"selectboxes": "https://raw.githubusercontent.com/SamWM/jQuery-Plugins/master/selectboxes/jquery.selectboxes.js",
"bookmarkscroll": "https://raw.githubusercontent.com/socialpanic/.github.io/master/bookmarkscroll.js",
"scrollup": "~2.4.1",
"qtip2": "git://github.com/qTip2/qTip2.git#v3.0.3",
"components-font-awesome": "^4.7.0",
"jsgettext": "~0.8.1"
},
"resolutions": {
"jquery": "~3.2.1",
"bootstrap": "~3.3.7"
}
}
# Changelog
- * 0e66278 - 2018-07-08: Release v9.3.54
- * 67c814b - 2018-08-19: Release v9.3.56
- * e26fd2e - 2018-08-19: Pre-Release v9.3.56.dev29
- * d590b01 - 2018-08-19: Migrated upnp client from threaded object to scheduler job, resolves shutdown/restart problems
- * 69cee25 - 2018-08-19: Misc code cleanup
- * a2aa340 - 2018-08-18: Pre-Release v9.3.56.dev28
- * 10de224 - 2018-08-18: Pre-Release v9.3.56.dev27
- * 8efa7cb - 2018-08-18: Fixed broken toggle buttons
- * e27a959 - 2018-08-18: Fixed gaierror's for ssdp Fixed WebHandler routing errors
- * c60cbb3 - 2018-08-17: Pre-Release v9.3.56.dev26
- * 1cfa2f9 - 2018-08-17: Fixed issue where MultiPartEpisode was being appended to all episodes and not just multi-part episodes.
- * c9367a6 - 2018-08-17: Pre-Release v9.3.56.dev25
- * 481f291 - 2018-08-17: Removed code that was preventing show refreshes from happening due to show updates being in queue.
- * 46f21f5 - 2018-08-16: Misc changes to package tests. Multi-EP episode names are no longer appended to form one giant filename but instead 'MultiPartEpisode' is tacked on.
- * b9bbb26 - 2018-08-15: Misc updates to tests
- * d56b876 - 2018-08-15: Made quicksearch content easier to read
- * 26635da - 2018-08-14: Pre-Release v9.3.56.dev24
- * 676065a - 2018-08-14: Fixed AttributeError with Tokyotoshokan provider
- * 332017d - 2018-08-14: Fixed issue with saving provider settings Reverted toggles for provider priorities, subtitle plugins, and post-processor metadata choices
- * ea140ab - 2018-08-14: individual shows view now gathers total show size from episode file sizes in database
- * 3ae007d - 2018-08-13: Pre-Release v9.3.56.dev23
- * 9cba816 - 2018-08-13: Fixed issues with multi-episode search results with more then 6 episodes in result. Misc provider URL updates. Misc fixes for tests.
- * 908bb53 - 2018-08-13: Pre-Release v9.3.56.dev22
- * 55d5abd - 2018-08-13: Improved pager code for getting episode data from theTVDB
- * 777692f - 2018-08-13: Migrated mediaToSiCKRAGE script to use API calls
- * bbce5f4 - 2018-08-13: Migrated autoProcessTV script to use API calls
- * b8c4de7 - 2018-08-13: Pre-Release v9.3.56.dev21
- * af4abb6 - 2018-08-13: Re-enabled closing of databases on shutdown/restart Disabled closing of logger on shutdown/restart
- * beba691 - 2018-08-13: Fixed KeyError for Show Stats API call
- * c30f21b - 2018-08-13: Fixed issue with displaying overall stats using API
- * fdeaf28 - 2018-08-13: Pre-Release v9.3.56.dev20
- * e6f1422 - 2018-08-13: Disabled closing database on shutdown/restart of app
- * e69a0e5 - 2018-08-13: Pre-Release v9.3.56.dev19
- * 1dc0171 - 2018-08-13: Added show directory column to mass update view Fixed table sorting issues for mass update and main shows views
- * 479026c - 2018-08-08: Fixed status text styling issues for episode rows in display show view
- * d6b5a4a - 2018-08-08: Pre-Release v9.3.56.dev18
- * c775a68 - 2018-08-08: Fixed issue with missing JS import for timeago module
- * 9b5ed21 - 2018-08-08: Fixed redirect issue when trying to login to a app thats already linked to another account
- * d569f06 - 2018-08-07: Pre-Release v9.3.56.dev17
- * 93bd3ce - 2018-08-07: Fixed issues with modals not displaying correctly Fixed issues with episode searches and episode search retries Fixed issue with data retrieval from database files
- * 1a7bca1 - 2018-08-05: Removed unrequired top margin spacing
- * 096927a - 2018-08-04: Pre-Release v9.3.56.dev16
- * ebcd017 - 2018-08-04: Fixed issue with network logo being off-center Fixed issue with show posters being misaligned
- * 6004bc4 - 2018-08-04: Fixed issues with displaying show network logo's
- * 486eb8c - 2018-08-04: Pre-Release v9.3.56.dev15
- * 277ba1b - 2018-08-04: Show size now calculated from show stats
- * f52c99b - 2018-08-04: Fixed case-insensitive sorting for small poster view
- * 51b6726 - 2018-08-04: Fixed newline issue with error view
- * b40951e - 2018-08-01: Pre-Release v9.3.56.dev14
- * 0beb0e7 - 2018-08-01: Misc style changes
- * 3f0fc47 - 2018-08-01: Added margins to display show view
- * 056bf58 - 2018-08-01: Added margins for all layouts except poster in home view
- * 18c60e7 - 2018-08-01: Added backdrop for home view
- * 535cdc1 - 2018-08-01: Added backdrop for schedule view Added backdrop for history view Added opacity style to views with backdrops
- * 6533663 - 2018-08-01: Added backdrop for add shows view
- * 6279e0c - 2018-08-01: Added backdrop for config menus
- * c6f1503 - 2018-08-01: Pre-Release v9.3.56.dev13
- * 6383647 - 2018-08-01: Styling input checkboxes as toggles
- * 07e1703 - 2018-07-31: Pre-Release v9.3.56.dev12
- * 08cb03c - 2018-07-31: Merged overall_stats and show_stat functions Cut main show view load time down by 6s
- * edb99a0 - 2018-07-31: Fixed CSS issue for quicksearch items
- * 3acc96b - 2018-07-31: Pre-Release v9.3.56.dev11
- * d60e09f - 2018-07-31: Added delay for quicksearch input
- * 8c90243 - 2018-07-31: Pre-Release v9.3.56.dev10
- * 133d2ef - 2018-07-29: Added categories to quicksearch for both tv shows and tv episodes
- * f33330a - 2018-07-28: Pre-Release v9.3.56.dev9
- * 4088edc - 2018-07-28: Added back table column selection for shows, show, and schedule views Fixed sorting for all tables Fixed filtering for all tables
- * 7020ea5 - 2018-07-28: Reverted text-nowrap class for schedule view table episode name column
- * 764a9f1 - 2018-07-28: Fix for issue #244 - reverse proxy
- * e588aa6 - 2018-07-27: Pre-Release v9.3.56.dev8
- * 33a0a4b - 2018-07-27: Added tablesorter with bootstrap 4 compatibility Case-insensitive sorting fixed for shows view
- * d086087 - 2018-07-27: Refactored table show show/episode column for history view Removed table footer from history view
- * 876ddfc - 2018-07-27: Pre-Release v9.3.56.dev7
- * 19cb817 - 2018-07-27: Refactored table class spacing/padding and column widths
- * 5a27b14 - 2018-07-27: Pre-Release v9.3.56.dev6
- * 76afe3b - 2018-07-27: Refactored content column size for large devices, small to medium devices are now full-width
- * 9f09e96 - 2018-07-27: Refactored preview rename view CSS