diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 6af7d8815c..55803c50d3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,4 +1,7 @@ -### Before submitting your issue: +## Notice: +The issue tracker, wiki,and discussions tab on GitHub is going to be archived/disabled in the near future for SickChill. All issues, discussions, support, guides, feature requests, and communication will be handled on [discord](https://discord.gg/FXre9qkHwE). Please consider raising your issue there instead. + +## Before submitting your issue: Enable debug logging in SickChill settings, reproduce the error (be sure to disable after the bug is fixed) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 62d5e7b28b..5b2a99fd58 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -17,7 +17,7 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true + cancel-in-progress: false env: SLEEP: 60 @@ -33,7 +33,7 @@ defaults: jobs: Environment: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest outputs: docker_tags: ${{ steps.docker.outputs.tags }} docker_labels: ${{ steps.docker.outputs.labels }} @@ -81,34 +81,18 @@ jobs: Test: strategy: matrix: - os: [ubuntu-22.04] - python-version: [3.7, 3.8, 3.9, "3.10"] + os: [ubuntu-latest] + python-version: [3.7, 3.8, 3.9, "3.10", "3.11"] experimental: [false] include: - - - os: ubuntu-22.04 - python-version: "3.11.0-rc.2" - experimental: true - os: windows-latest - python-version: "3.10" - experimental: true + python-version: "3.11" + experimental: false - os: macos-latest - python-version: "3.10" - experimental: true - - - os: ubuntu-22.04 - python-version: "pypy3.9-v7.3.8" - experimental: true - - - os: ubuntu-22.04 - python-version: "pypy3.8-v7.3.9" - experimental: true - - - os: ubuntu-22.04 - python-version: "pypy3.7-v7.3.9" - experimental: true + python-version: "3.11" + experimental: false fail-fast: true continue-on-error: ${{ matrix.experimental }} runs-on: ${{ matrix.os }} @@ -155,32 +139,28 @@ jobs: name: Install yarn run: npm install -g yarn - - name: Update pip + name: Install python dependency tools run: | - curl -sSL https://bootstrap.pypa.io/get-pip.py -o get-pip.py - poetry run python get-pip.py - rm get-pip.py + poetry run pip install --upgrade setuptools wheel + poetry run pip install --upgrade pytest-github-actions-annotate-failures - - name: Output poetry info + name: Output tooling environment information run: | - which poetry - poetry env info - python -V + echo -e "$(poetry --version --ansi) is at $(which poetry)\n$(poetry env info --ansi)\n\v$(poetry --ansi run pip -V)" - - name: Install dependencies + name: Install sickchill run: | - poetry run pip install --upgrade setuptools wheel poetry install --no-interaction --with dev --with speedups - - if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.10' + if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.11' name: Run yarn run: poetry run poe yarn - - if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.10' + if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.11' name: Lint Python run: poetry run poe lint - - if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.10' + if: success() && startsWith(runner.os, 'Linux') && matrix.python-version == '3.11' name: Lint and test Javascript run: poetry run poe yarn test - diff --git a/README.md b/README.md index c1524680f2..50d21f1ed2 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,31 @@ -SickChill [![Build Status](https://github.com/SickChill/SickChill/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/SickChill/SickChill/actions/workflows/pythonpackage.yml?query=branch%3Amaster) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo) [![Donate](https://img.shields.io/badge/donations-appreciated-green.svg)](https://github.com/SickChill/SickChill/wiki/Donations) -==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== +# SickChill -Huge thanks to JetBrains for providing "All Products Pack" licenses free of charge for SickChill developers as part of their support of OSS. -[https://jb.gg/OpenSourceSupport](https://jb.gg/OpenSourceSupport) +--- +### Important Notice* +Issue/Bug tracking, feature requests, support, and developer communication is moving strictly to [discord](https://discord.gg/FXre9qkHwE) - please start making the habit to go there, rather than creating issues on GitHub. After a period of time GitHub issue tracker, discussions, and other social features will be disabled on GitHub. -Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. +--- +[![Language](https://img.shields.io/github/languages/top/sickchill/sickchill?logo=python&style=plastic)](https://python.org) +[![Build Status](https://img.shields.io/github/actions/workflow/status/sickchill/sickchill/pythonpackage.yml?logo=github&style=plastic)](https://github.com/SickChill/SickChill/actions/workflows/pythonpackage.yml?query=branch%3Amaster) +[![Release Date](https://img.shields.io/github/release-date/sickchill/sickchill?logo=github&style=plastic)](https://github.com/SickChill/sickchill/releases) +[![Last Commit](https://img.shields.io/github/last-commit/sickchill/sickchill?logo=github&style=plastic)](https://github.com/SickChill/sickchill/commits/master) +[![Commits Since](https://img.shields.io/github/commits-since/sickchill/sickchill/latest/develop?logo=github&sort=date&style=plastic)](https://github.com/SickChill/sickchill/commits/master) +[![Discord](https://img.shields.io/discord/502612977271439372?label=Discord&logo=discord&style=plastic)](https://discord.gg/FXre9qkHwE) +[![Donate](https://img.shields.io/badge/$_donations-needed-green.svg?style=plastic)](https://github.com/SickChill/SickChill/wiki/Donations) -#### Features +--- + +### Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. + +### Features - Kodi/XBMC library updates, poster/banner/fanart downloads, and NFO/TBN generation - Configurable automatic episode renaming, sorting, and other processing - Easily see what episodes you're missing, are airing soon, and more - - Automatic torrent/nzb searching, downloading, and processing at the qualities you want - - Largest list of supported torrent and nzb providers, both public and private + - Automatic torrent/nzb searching, sending to your client, and processing at the qualities you want + - Largest list of supported torrent, newznab, and torznab providers - both public and private - Can notify Kodi, XBMC, Growl, Trakt, Twitter, and more when new episodes are available - - Searches TheTVDB.com and AniDB.net for shows, seasons, episodes, and metadata + - Searches [TheTVDB](https://thetvdb.com), [AniDB.net](https://anidb.net), [iMDB](https://imdb.com), [FanArt.tv](https://fanart.tv), and more for shows, seasons, episodes, and metadata - Episode status management allows for mass failing seasons/episodes to force retrying - DVD Order numbering for returning the results in DVD order instead of Air-By-Date order - Allows you to choose which indexer to have SickChill search its show info from when importing @@ -27,36 +38,26 @@ Automatic Video Library Manager for TV Shows. It watches for new episodes of you - Real SSL certificate validation - Supports Anime shows -#### Installation/Setup - -Visit the [Installation & Configuration guides page](https://github.com/SickChill/SickChill/wiki/Installation-&-Configuration-Guides) on our wiki - -#### Dependencies - -To run SickChill you will need Python 3.7+, preferably 3.10 or newer. - -PyPy (python 3.7-3.9) 7.8.x+ is also supported. - -#### More info - +### Important Links +* [Installation & Configuration](https://github.com/SickChill/SickChill/wiki/Installation-&-Configuration-Guides) * [Wiki](https://github.com/SickChill/SickChill/wiki) - * [FAQ](https://github.com/SickChill/SickChill/wiki/FAQ%27s-and-Fixes) +* [Issue Tracker](https://discord.gg/FXre9qkHwE) +* [Feature Requests](https://discord.gg/FXre9qkHwE) +* [Supported providers](https://github.com/SickChill/SickChill/wiki/SickChill-Search-Providers) +* [News](https://github.com/SickChill/sickchill.github.io/blob/master/sickchill-news/news.md) +* [Changelog](https://github.com/SickChill/sickchill.github.io/blob/master/sickchill-news/CHANGES.md) +* [Network Timezones](https://github.com/SickChill/sickchill.github.io/tree/master/sb_network_timezones) +* [Scene Exceptions](https://github.com/SickChill/sickchill.github.io/tree/master/scene_exceptions) -* [Issue Tracker](https://github.com/SickChill/SickChill/issues) +### Dependencies -#### Important notes on switching from other forks +To run SickChill you will need Python 3.8+, preferably 3.11 or newer. PyPy (python 3.7-3.9) 7.8.x+ is also supported. -Before using this with your existing database (`sickbeard.db`) please make a backup copy of it and delete any other database files such as cache.db and failed.db if present. +### Important notes on switching from other forks +Before using this with your existing database (`sickbeard.db`) please make a backup copy of it and delete any other database files such as cache.db and failed.db if present. We HIGHLY recommend starting out with no database files at all to make this a fresh start but the choice is at your own risk. -#### Supported providers - -A full list can be found here: [Link](https://github.com/SickChill/SickChill/wiki/SickChill-Search-Providers) - -#### News and Changelog -[news.md and CHANGES.md have moved to a separate repo, click here](https://github.com/SickChill/SickChill.github.io) - - +### Huge thanks to [JetBrains](https://jb.gg/OpenSourceSupport) for providing "All Products Pack" licenses free of charge for SickChill developers as part of their support of OSS. diff --git a/frontend/templates/js/show.jsx b/frontend/templates/js/show.jsx index e69de29bb2..0d50a76392 100644 --- a/frontend/templates/js/show.jsx +++ b/frontend/templates/js/show.jsx @@ -0,0 +1 @@ +import 'bootstrap/dist/css/bootstrap.min.css'; diff --git a/package.json b/package.json index 09867b173d..286b2e21da 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "eslint-plugin-no-use-extend-native": "^0.5.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-unicorn": "^46.0.0", + "eslint-plugin-unicorn": "^47.0.0", "esm": "^3.2.25", "grunt": "^1.5.2", "grunt-bower-concat": "git+https://github.com/miigotu/grunt-bower-concat.git", @@ -47,7 +47,7 @@ "grunt-cli": "^1.2.0", "grunt-contrib-clean": "^2.0.0", "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-cssmin": "^4.0.0", + "grunt-contrib-cssmin": "^5.0.0", "grunt-contrib-jshint": "^3.2.0", "grunt-contrib-sass": "^2.0.0", "grunt-contrib-uglify": "^5.0.1", @@ -59,19 +59,19 @@ "jquery": "^3.2.1", "load-grunt-tasks": "^5.1.0", "lodash": "^4.17.15", - "mem-fs": "^2.2.1", - "mem-fs-editor": "^9.5.0", + "mem-fs": "^3.0.0", + "mem-fs-editor": "^10.0.2", "mini-css-extract-plugin": "^2.6.1", "sass": "^1.55.0", "sass-loader": "^13.1.0", - "snyk": "^1.1043.0", + "snyk": "^1.1163.0", "style-loader": "^3.3.1", "toml": "^3.0.0", - "webpack": "^5.74.0", + "webpack": "^5.76.0", "webpack-cli": "^5.0.0", "webpack-dev-server": "^4.11.1", "workbox-webpack-plugin": "^6.5.4", - "xo": "^0.53.1", + "xo": "^0.54.2", "yarn-minify": "^1.0.1" }, "ava": { diff --git a/pyproject.toml b/pyproject.toml index e745702ef6..c9a263e740 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "sickchill" -version = "2023.1.2" +version = "2023.5.30" description = 'Automatic Video Library Manager for TV Shows' license = "GPL-3.0-or-later" @@ -67,7 +67,6 @@ pytest-isort = "^3.0.0" flake8-pytest-style = "^1.5.1" flake8-commas = "^2.0.0" flake8-quotes = "^3.3.0" -flake8-bandit = "^2.1.2" flake8-docstrings = "^1.6.0" flake9 = "^3.8.3" codecov = "^2.1.12" @@ -75,7 +74,6 @@ pytest = "^7.0.1" isort = "^5.10.1" poethepoet = ">=0.16,<0.20" po2json = "^0.2.2" -bandit = "<=1.7.2" pre-commit = "^2.20.0" [tool.poetry.group.speedups] @@ -97,7 +95,7 @@ types-python-dateutil = "^2.8.19" types-python-slugify = ">=6.1,<9.0" types-requests = "^2.28.11" types-chardet = "^5.0.4" -types-pytz = "^2022.2.1.0" +types-pytz = ">=2022.2.1,<2024.0.0" types-setuptools = ">=65.3,<68.0" types-six = "^1.16.20" @@ -258,9 +256,8 @@ pybabel update [tool.poetry.dependencies] python = ">=3.7.2,<4" "bencode.py" = "^4.0.0" -CacheControl = "^0.12.6" configobj = "^5.0.6" -greenlet = {version = ">=1.1.2", allow-prereleases = true} +greenlet = {version = ">=2.0.0", allow-prereleases = true} ipaddress = "^1.0.23" jsonrpclib-pelix = "^0.4.2" Mako = "^1.1.4" @@ -304,3 +301,4 @@ beekeeper-alt = ">=2022.9.3" # stevedore dropped support for python 3.7 stevedore = {version = "<=3.5.0", python = "<3.8"} importlib-metadata = {version = "<5.0.0", python = "<3.8"} +cacheyou = "^23.2" diff --git a/sickchill/gui/slick/images/network/amazon freevee.png b/sickchill/gui/slick/images/network/amazon freevee.png new file mode 100644 index 0000000000..d5f5d1b95f Binary files /dev/null and b/sickchill/gui/slick/images/network/amazon freevee.png differ diff --git a/sickchill/gui/slick/images/network/imdb tv.png b/sickchill/gui/slick/images/network/imdb tv.png new file mode 100644 index 0000000000..7698dc5f4d Binary files /dev/null and b/sickchill/gui/slick/images/network/imdb tv.png differ diff --git a/sickchill/gui/slick/images/network/rte two.png b/sickchill/gui/slick/images/network/rte two.png new file mode 100644 index 0000000000..9311cd74ea Binary files /dev/null and b/sickchill/gui/slick/images/network/rte two.png differ diff --git a/sickchill/gui/slick/js/ajaxEpSearch.js b/sickchill/gui/slick/js/ajaxEpSearch.js index 07af2f1462..5c515617a9 100644 --- a/sickchill/gui/slick/js/ajaxEpSearch.js +++ b/sickchill/gui/slick/js/ajaxEpSearch.js @@ -116,7 +116,7 @@ function updateImages(data) { function checkManualSearches() { let pollInterval = 5000; const showId = $('#showID').val(); - const url = showId !== undefined ? searchStatusUrl + '?show=' + showId : searchStatusUrl; // eslint-disable-line no-negated-condition + const url = showId ? searchStatusUrl + '?show=' + showId : searchStatusUrl; $.ajax({ url, success(data) { diff --git a/sickchill/gui/slick/js/configProviders.js b/sickchill/gui/slick/js/configProviders.js index eb262f6fde..1e1771b1e1 100644 --- a/sickchill/gui/slick/js/configProviders.js +++ b/sickchill/gui/slick/js/configProviders.js @@ -68,7 +68,7 @@ $(document).ready(function () { url = 'http://' + url; } - if (url.match('/$') === null) { + if (url.match('/$') === null && url.match(/morethantv/i) === null) { url += '/'; } diff --git a/sickchill/gui/slick/views/config_notifications.mako b/sickchill/gui/slick/views/config_notifications.mako index 486f01e6c8..2526e725f3 100644 --- a/sickchill/gui/slick/views/config_notifications.mako +++ b/sickchill/gui/slick/views/config_notifications.mako @@ -879,7 +879,7 @@
- +
@@ -3404,7 +3404,7 @@
- +
diff --git a/sickchill/gui/slick/views/layouts/main.mako b/sickchill/gui/slick/views/layouts/main.mako index 572efb9431..f908e6d617 100644 --- a/sickchill/gui/slick/views/layouts/main.mako +++ b/sickchill/gui/slick/views/layouts/main.mako @@ -255,10 +255,7 @@