Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
1b00aba
Fix: hide empty scrollbar tracks in sidebar
kanza707 Mar 17, 2026
8740469
fix(ui): correct discovery page title layout without changing overlay…
kanza707 Mar 17, 2026
d47b71b
feat(ci): migrate CI/CD from Azure Pipelines to GitHub Actions (#18)
Starosdev Mar 18, 2026
ba7a8a8
fix(ci): use self-hosted SonarQube instead of SonarCloud (#18)
Starosdev Mar 18, 2026
e0a17c4
fix(ci): separate Discord webhook ID from channel ID (#18)
Starosdev Mar 18, 2026
bf20f0d
Merge feature/RAD-18-github-actions-ci into develop
Starosdev Mar 18, 2026
7a27db3
fix(ci): resolve actionlint errors in workflow (#18)
Starosdev Mar 19, 2026
cd606ad
fix(ci): allow workflow changes to trigger CI (#18)
Starosdev Mar 19, 2026
f3953cb
fix(ci): resolve build failures from first CI run (#18)
Starosdev Mar 19, 2026
4efebc2
fix(ci): resolve test reporter, webpack, and SonarQube issues (#18)
Starosdev Mar 19, 2026
ea5db0d
fix: resolve lint errors in frontend test files (#18)
Starosdev Mar 19, 2026
dda5e10
fix(ci): exclude test files from webpack/tsc, fix SonarScanner args (…
Starosdev Mar 19, 2026
1fc11ba
fix(ci): handle missing net8.0-windows output, exclude tests from ESL…
Starosdev Mar 19, 2026
1d8f150
fix(ci): fix installer and sentry source map upload (#18)
Starosdev Mar 19, 2026
46322c4
fix(ci): add checkout to sentry job for set-commits (#18)
Starosdev Mar 19, 2026
290f806
feat(ci): update Sentry config for Starosdev fork (#21)
Starosdev Mar 21, 2026
7f3b6ac
Merge branch 'feature/RAD-21-update-sentry-config' into develop
Starosdev Mar 21, 2026
ac7a380
fix(host): use ordinal comparison for Uri pattern matching (#22)
Starosdev Mar 21, 2026
fa06a5b
fix(host): use ordinal comparison for remaining EndsWith calls (#22)
Starosdev Mar 21, 2026
6b8b4da
Merge branch 'fix/RAD-22-turkish-locale-crash' into develop
Starosdev Mar 21, 2026
001635e
fix(http): serve intermediate CA certificates from PFX on Linux (#23)
Starosdev Mar 21, 2026
cb79f30
Merge branch 'fix/RAD-23-kestrel-intermediate-ca' into develop
Starosdev Mar 21, 2026
ae5b47f
fix(ci): update Inno Setup to 6.4.2 and add curl error handling
Starosdev Mar 21, 2026
1fa77d5
Merge branch 'master' into develop
Starosdev Mar 21, 2026
414207b
fix(ci): use Chocolatey for Inno Setup, fix Sentry set-commits
Starosdev Mar 21, 2026
f3a17f6
fix(ci): use pre-installed Inno Setup on Windows runner
Starosdev Mar 21, 2026
f799c4b
Merge branch 'master' into develop
Starosdev Mar 21, 2026
d6769a7
feat(docker): add Dockerfile for container builds
Starosdev Mar 22, 2026
825a463
feat(ci): add Gitleaks secret scanning workflow
Starosdev Mar 22, 2026
b8f04cd
feat(ci): add GitHub Release job for develop and master builds
Starosdev Mar 22, 2026
620ad07
feat(ci): add stale branch cleanup workflow
Starosdev Mar 22, 2026
e843212
feat(ci): add Docker build and push to GHCR
Starosdev Mar 22, 2026
3c1fb1a
feat(ci): update Discord notification, clean up Inno Setup env vars
Starosdev Mar 22, 2026
4bcef63
chore: add docs/plans/ to gitignore
Starosdev Mar 22, 2026
8d6fa04
Merge branch 'feature/RAD-release-pipeline' into develop
Starosdev Mar 22, 2026
e1be92a
fix(docker): handle existing GID/UID in base image
Starosdev Mar 22, 2026
efd743b
fix(ci): drop arm/v7 from Docker builds (no Noble base image)
Starosdev Mar 22, 2026
9077094
fix(ci): add --amend flag to docker manifest create
Starosdev Mar 22, 2026
3ae0993
fix(ci): use buildx imagetools for multi-arch manifest creation
Starosdev Mar 22, 2026
8a822bb
fix: sidebar scrollbar with horizontal overflow protection
kanza707 Mar 22, 2026
2591eb7
fix(ci): update GHCR image namespace to staros-labs
Starosdev Apr 30, 2026
0fd0785
[OPS] v1.0.0 — standardize develop and master workflow
Starosdev May 9, 2026
9407929
[OPS] v1.0.1 — bump MailKit to patched release for CI
Starosdev May 9, 2026
ccdf8d0
fix(ci): patch MailKit vuln and harden secret scan
Starosdev May 9, 2026
f2b4b81
fix(merge): resolve develop/master conflicts in .gitignore and AGENTS.md
Starosdev May 9, 2026
565a764
fix(ci): make release tag creation idempotent
Starosdev May 10, 2026
345d5f7
docs: add worktree directory preference (janitor convention)
Starosdev Jun 2, 2026
d64c780
fix: trim sidebar scrollbar PR to requested scope
Starosdev Jun 17, 2026
a4d8ec7
Merge pull request #52 from kanza707/fix/sidebar-scrollbar-51
Starosdev Jun 17, 2026
729980b
[RADARR] v1.0.0 — Replace blocked coverage report action
Starosdev Jun 17, 2026
3304013
Merge pull request #60 from Staros-Labs/codex/ci-action-policy-fix
Starosdev Jun 17, 2026
d116bdc
[RADARR-1] v1.0.0 — Preserve parser URL and acronym title handling
Starosdev Jun 17, 2026
760d393
[RADARR-1] v1.0.1 — Simplify release age calculations safely
Starosdev Jun 17, 2026
d93729b
[RADARR-1] v1.0.2 — Cover parser title replacement paths
Starosdev Jun 17, 2026
0bf9921
[RADARR-1] v1.0.3 — Retire stale parser edition regex TODO
Starosdev Jun 17, 2026
89a4e1d
[RADARR-1] v1.0.4 — Clarify REAL revision coverage
Starosdev Jun 17, 2026
90b2b4b
[RADARR] v1.0.5 — Fix fork CI workflow targeting and backend builds
Starosdev Jun 17, 2026
783c63a
[RADARR-1] v1.0.5 — Fix PR 61 CI branch-name and lint failures
Starosdev Jun 18, 2026
4eea058
[RADARR-1] v1.0.6 — Sanitize CI branch names for artifact paths
Starosdev Jun 18, 2026
3ae0e0c
Merge origin/develop into codex/issue-1
Starosdev Jun 18, 2026
aef21e8
[RADARR-1] v1.0.7 — Keep Alpine CI jobs on Node 20
Starosdev Jun 18, 2026
a7b1767
[RADARR-1] v1.0.8 — Make musl CI jobs independent of runner Node
Starosdev Jun 18, 2026
bdb8b83
Merge pull request #61 from Staros-Labs/codex/issue-1
Starosdev Jun 18, 2026
3a9e30b
Merge origin/master into develop
Starosdev Jun 18, 2026
53e155d
[RADARR] v1.0.6 — Fix develop to master promotion workflow merge
Starosdev Jun 18, 2026
1ae57b6
[RADARR] v1.0.7 — Remove unused PR checklist section
Starosdev Jun 18, 2026
0f6f889
[RADARR] v1.0.8 — Use workflow run numbers for CI versions
Starosdev Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ A few sentences describing the overall goals of the pull request's commits.

#### Screenshot (if UI related)

#### Todos
- [ ] Tests
- [ ] Translation Keys (./src/NzbDrone.Core/Localization/Core/en.json)
- [ ] [Wiki Updates](https://wiki.servarr.com)

#### Issues Fixed or Closed by this PR

* Fixes #XXXX
* Fixes #XXXX
130 changes: 69 additions & 61 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ jobs:
build_number: ${{ steps.build-meta.outputs.build_number }}
radarr_version: ${{ steps.build-meta.outputs.radarr_version }}
branch_name: ${{ steps.build-meta.outputs.branch_name }}
branch_name_safe: ${{ steps.build-meta.outputs.branch_name_safe }}
backend_changed: ${{ steps.changes.outputs.backend_changed }}
steps:
- name: Checkout
Expand All @@ -53,44 +54,23 @@ jobs:
HEAD_REF: ${{ github.head_ref }}
REF_NAME: ${{ github.ref_name }}
EVENT_NAME: ${{ github.event_name }}
BASE_REF: ${{ github.base_ref }}
RUN_NUMBER: ${{ github.run_number }}
run: |
git fetch --tags --force

LAST=$(git tag -l 'build-counter-*' | sed 's/build-counter-//' | sort -n | tail -1)
BUILD_NUMBER=$(( ${LAST:-2999} + 1 ))

if [ "$EVENT_NAME" != "pull_request" ]; then
tag_pushed=false
for attempt in 1 2 3; do
if git tag "build-counter-${BUILD_NUMBER}" && git push origin "build-counter-${BUILD_NUMBER}"; then
echo "Tag pushed successfully on attempt $attempt"
tag_pushed=true
break
fi
echo "Tag push failed on attempt $attempt, retrying..."
git tag -d "build-counter-${BUILD_NUMBER}" 2>/dev/null || true
git fetch --tags --force
LAST=$(git tag -l 'build-counter-*' | sed 's/build-counter-//' | sort -n | tail -1)
BUILD_NUMBER=$(( LAST + 1 ))
done

if [ "$tag_pushed" != "true" ]; then
echo "::error::Failed to reserve a build counter tag after 3 attempts"
exit 1
fi
fi
# Keep fork build numbers in the existing 30xx range without mutating repo state.
BUILD_NUMBER=$(( 3000 + RUN_NUMBER ))

if [ "$EVENT_NAME" = "pull_request" ]; then
BRANCH_NAME="$HEAD_REF"
else
BRANCH_NAME="$REF_NAME"
fi

BRANCH_NAME_SAFE=$(printf '%s' "$BRANCH_NAME" | sed 's#[^A-Za-z0-9._-]#-#g')
{
echo "build_number=$BUILD_NUMBER"
echo "radarr_version=${MAJOR_VERSION}.${BUILD_NUMBER}"
echo "branch_name=$BRANCH_NAME"
echo "branch_name_safe=$BRANCH_NAME_SAFE"
} >> "$GITHUB_OUTPUT"

- name: Detect backend changes
Expand Down Expand Up @@ -225,7 +205,7 @@ jobs:
env:
RADARRVERSION: ${{ needs.setup.outputs.radarr_version }}
BUILD_SOURCEBRANCHNAME: ${{ needs.setup.outputs.branch_name }}
BUILDNAME: ${{ needs.setup.outputs.branch_name }}.${{ needs.setup.outputs.radarr_version }}
BUILDNAME: ${{ needs.setup.outputs.branch_name_safe }}.${{ needs.setup.outputs.radarr_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -389,7 +369,7 @@ jobs:
packages: write
env:
RADARR_VERSION: ${{ needs.setup.outputs.radarr_version }}
BUILDNAME: ${{ needs.setup.outputs.branch_name }}.${{ needs.setup.outputs.radarr_version }}
BUILDNAME: ${{ needs.setup.outputs.branch_name_safe }}.${{ needs.setup.outputs.radarr_version }}
REGISTRY: ghcr.io
IMAGE_NAME: staros-labs/radarr
strategy:
Expand Down Expand Up @@ -583,30 +563,43 @@ jobs:
runs-on: ubuntu-24.04
needs: [build-backend, setup]
if: needs.setup.outputs.backend_changed == 'true'
container:
image: ghcr.io/servarr/testimages:alpine
env:
MUSL_TEST_IMAGE: ghcr.io/servarr/testimages:alpine
timeout-minutes: 10
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Download test artifact
uses: actions/download-artifact@v4
with:
name: linux-musl-x64-tests
path: _tests/

- name: Set executable permissions
- name: Download dotnet installer
run: |
chmod a+x _tests/ffprobe
find _tests -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
mkdir -p _temp
curl -fsSL https://dot.net/v1/dotnet-install.sh -o _temp/dotnet-install.sh
chmod a+x _temp/dotnet-install.sh

- name: Run unit tests
- name: Run unit tests in Alpine container
run: |
chmod a+x _tests/test.sh
_tests/test.sh Linux Unit Test
docker run --rm \
--user "$(id -u):$(id -g)" \
-e DOTNET_VERSION="${DOTNET_VERSION}" \
-e HOME=/tmp/home \
-e TEST_DIR=/work/_tests \
-v "${PWD}:/work" \
-w /work \
"${MUSL_TEST_IMAGE}" \
sh -lc '
set -e
mkdir -p "$HOME"
export DOTNET_ROOT=/tmp/dotnet
export PATH="$DOTNET_ROOT:$PATH"
bash /work/_temp/dotnet-install.sh --version "$DOTNET_VERSION" --install-dir "$DOTNET_ROOT" --architecture x64 --os linux-musl --no-path
chmod a+x _tests/ffprobe
find _tests -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
chmod a+x _tests/test.sh
_tests/test.sh Linux Unit Test
'

- name: Upload test results
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -768,15 +761,10 @@ jobs:
runs-on: ubuntu-24.04
needs: [packages, build-backend, setup]
if: needs.setup.outputs.backend_changed == 'true'
container:
image: ghcr.io/servarr/testimages:alpine
env:
MUSL_TEST_IMAGE: ghcr.io/servarr/testimages:alpine
timeout-minutes: 15
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Download test artifact
uses: actions/download-artifact@v4
with:
Expand All @@ -797,15 +785,33 @@ jobs:
mkdir -p ./bin/
cp -r _extracted/Radarr/. ./bin/ 2>/dev/null || cp -r _extracted/. ./bin/

- name: Set executable permissions
- name: Download dotnet installer
run: |
chmod a+x _tests/ffprobe
find _tests -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
mkdir -p _temp
curl -fsSL https://dot.net/v1/dotnet-install.sh -o _temp/dotnet-install.sh
chmod a+x _temp/dotnet-install.sh

- name: Run integration tests
- name: Run integration tests in Alpine container
run: |
chmod a+x _tests/test.sh
_tests/test.sh Linux Integration Test
docker run --rm \
--user "$(id -u):$(id -g)" \
-e DOTNET_VERSION="${DOTNET_VERSION}" \
-e HOME=/tmp/home \
-e TEST_DIR=/work/_tests \
-v "${PWD}:/work" \
-w /work \
"${MUSL_TEST_IMAGE}" \
sh -lc '
set -e
mkdir -p "$HOME"
export DOTNET_ROOT=/tmp/dotnet
export PATH="$DOTNET_ROOT:$PATH"
bash /work/_temp/dotnet-install.sh --version "$DOTNET_VERSION" --install-dir "$DOTNET_ROOT" --architecture x64 --os linux-musl --no-path
chmod a+x _tests/ffprobe
find _tests -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
chmod a+x _tests/test.sh
_tests/test.sh Linux Integration Test
'

- name: Upload test results
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -897,7 +903,7 @@ jobs:
RADARRVERSION: ${{ needs.setup.outputs.radarr_version }}
MAJORVERSION: '6.1.1'
BUILD_SOURCEBRANCHNAME: ${{ needs.setup.outputs.branch_name }}
BUILDNAME: ${{ needs.setup.outputs.branch_name }}.${{ needs.setup.outputs.radarr_version }}
BUILDNAME: ${{ needs.setup.outputs.branch_name_safe }}.${{ needs.setup.outputs.radarr_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -1074,13 +1080,15 @@ jobs:
shell: pwsh

- name: Generate coverage report
uses: danielpalme/ReportGenerator-GitHub-Action@5
if: always()
with:
reports: CoverageResults/**/coverage.cobertura.xml
targetdir: CoverageResults/combined
reporttypes: HtmlInline;Cobertura;Badges
sourcedirs: src
run: |
dotnet tool install --tool-path ./.tools dotnet-reportgenerator-globaltool --version 5.*
./.tools/reportgenerator `
"-reports:CoverageResults/**/coverage.cobertura.xml" `
"-targetdir:CoverageResults/combined" `
"-reporttypes:HtmlInline;Cobertura;Badges" `
"-sourcedirs:src"
shell: pwsh

# ---------------------------------------------------------------------------
# API Docs: generate OpenAPI spec, create PR
Expand Down
41 changes: 41 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Radarr Fork Agent Instructions

These instructions apply to automated builders and reviewers working in this repository.

## Session Startup

- Work from a git worktree, not directly in the main checkout.
- Read this file at the start of each session before making changes.
- Check `git status --short --branch` before editing.
- Assume the worktree may contain user changes. Do not revert or clean them up unless the user explicitly asks.

## Communication

- Keep updates concise and factual.
- Act like an involved collaborator, not a passive executor.
- Push back when a request is risky, underspecified, or likely to create avoidable maintenance problems.
- Use role-based language such as `builder` or `reviewer` if you need to describe automation.
- Do not use emojis in commits, pull requests, issues, comments, or docs.
- Do not mention assistant product names in commits, pull requests, comments, or repo files.

## Branch Workflow

- This fork uses `develop` as the integration branch and `master` as the production branch.
- Keep upstream-sync or vendor-tracking work separate from Staros-specific release work.
- Do not assume upstream defaults are the same as this fork's release process.

## Editing Standards

- Match the existing .NET, frontend, and GitHub Actions patterns already in the repo.
- Keep changes narrow and avoid unrelated cleanup in the same commit.
- Use `rg` for search and `apply_patch` for manual edits.
- Update docs or workflow guidance when branch behavior, release flow, or automation expectations change.

## Validation

- Run the smallest useful check for the files you changed.
- For workflow-only changes, use focused review plus `git diff --check`.
- If you cannot run a validation step, state that clearly and call out the remaining risk.
## Git worktrees

Worktree directory preference: create git worktrees under `~/worktrees/<repo>/<branch>`, never inside this clone or `~/Documents/Repos.nosync/`. Merged/clean worktrees are auto-pruned weekly by `infra/scripts/prune-worktrees.sh` (launchd `dev.staros.worktree-janitor`).
17 changes: 14 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,24 @@ ProgressEnd()
echo "Finish '$1'"
}

EscapeSedReplacement()
{
printf '%s' "$1" | sed -e 's/[&|\\]/\\&/g'
}

UpdateVersionNumber()
{
if [ "$RADARRVERSION" != "" ]; then
local escaped_version
local escaped_branch_name

escaped_version=$(EscapeSedReplacement "$RADARRVERSION")
escaped_branch_name=$(EscapeSedReplacement "$BUILD_SOURCEBRANCHNAME")

echo "Updating Version Info"
sed -i'' -e "s/<AssemblyVersion>[0-9.*]\+<\/AssemblyVersion>/<AssemblyVersion>$RADARRVERSION<\/AssemblyVersion>/g" src/Directory.Build.props
sed -i'' -e "s/<AssemblyConfiguration>[\$()A-Za-z-]\+<\/AssemblyConfiguration>/<AssemblyConfiguration>${BUILD_SOURCEBRANCHNAME}<\/AssemblyConfiguration>/g" src/Directory.Build.props
sed -i'' -e "s/<string>10.0.0.0<\/string>/<string>$RADARRVERSION<\/string>/g" distribution/osx/Radarr.app/Contents/Info.plist
sed -i'' -e "s|<AssemblyVersion>[0-9.*]\+</AssemblyVersion>|<AssemblyVersion>${escaped_version}</AssemblyVersion>|g" src/Directory.Build.props
sed -i'' -e "s|<AssemblyConfiguration>[\$()A-Za-z/-]\+</AssemblyConfiguration>|<AssemblyConfiguration>${escaped_branch_name}</AssemblyConfiguration>|g" src/Directory.Build.props
sed -i'' -e "s|<string>10.0.0.0</string>|<string>${escaped_version}</string>|g" distribution/osx/Radarr.app/Contents/Info.plist
fi
}

Expand Down
9 changes: 7 additions & 2 deletions frontend/src/Components/Page/Sidebar/PageSidebar.css
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.sidebarContainer {
flex: 0 0 $sidebarWidth;
overflow: hidden;
overflow-x: hidden;
overflow-y: auto;
width: $sidebarWidth;
background-color: var(--sidebarBackgroundColor);
transition: transform 300ms ease-in-out;
Expand All @@ -10,7 +11,8 @@
.sidebar {
display: flex;
flex-direction: column;
overflow: hidden;
overflow-x: hidden;
overflow-y: auto;
background-color: var(--sidebarBackgroundColor);
color: var(--white);
}
Expand All @@ -20,12 +22,15 @@
position: fixed;
top: 0;
z-index: 2;
overflow-x: hidden;
overflow-y: auto;
height: 100vh;
}

.sidebar {
position: fixed;
z-index: 2;
overflow-x: hidden;
overflow-y: auto;
width: 100%;
height: 100%;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ public void Setup()
}

[TestCase("Prometheus", "Prometheus")]

// TODO: TMDB Doesn't like when we clean periods from this
// [TestCase("The Man from U.N.C.L.E.", "The Man from U.N.C.L.E.")]
[TestCase("The Man from U.N.C.L.E.", "The Man from U.N.C.L.E.")]
[TestCase("imdb:tt2527336", "Star Wars: The Last Jedi")]
[TestCase("imdb:tt2798920", "Annihilation")]
[TestCase("https://www.imdb.com/title/tt0033467/", "Citizen Kane")]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.MetadataSource.SkyHook;

namespace NzbDrone.Core.Test.MetadataSource.SkyHook
{
[TestFixture]
public class SkyHookProxyTitleNormalizationFixture
{
[TestCase("The Man from U.N.C.L.E.", "the man from u.n.c.l.e.")]
[TestCase("R.I.P.D.", "r.i.p.d.")]
public void should_preserve_meaningful_periods_when_normalizing_titles(string title, string expected)
{
SkyHookProxy.NormalizeSearchTitle(title).Should().Be(expected);
}

[TestCase("the man from u.n.c.l.e.", "the+man+from+u.n.c.l.e.")]
[TestCase("r.i.p.d.", "r.i.p.d.")]
[TestCase("movie_title", "movie+title")]
public void should_only_replace_word_separators_when_building_search_terms(string title, string expected)
{
SkyHookProxy.BuildSearchTerm(title).Should().Be(expected);
}
}
}
1 change: 1 addition & 0 deletions src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class EditionParserFixture : CoreTest
[TestCase("Movie 2012 IMAX.mkv", "IMAX")]
[TestCase("Movie 2012 Restored.mkv", "Restored")]
[TestCase("Movie Title.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g", "Special Edition Fan Edit")]
[TestCase("Mission.Impossible.3.2011.Special.Edition.1080p.BluRay.x264-SPARKS", "Special Edition")]
[TestCase("Movie Title (Despecialized) 1999.mkv", "Despecialized")]
[TestCase("Movie Title.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv", "Special Edition Remastered")]
[TestCase("Movie Title Extended 2012", "Extended")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ public void Setup()
[TestCase("Movie.Title.Super.Duper.Real.Proper.HDTV.x264-FTP", 0)]
[TestCase("Movie.Title.PROPER.HDTV.x264-RiVER-RP", 0)]
[TestCase("Movie.Title.PROPER.REAL.RERIP.1080p.BluRay.x264-TENEIGHTY", 1)]
[TestCase("Movie.Title.2013.REAL.PROPER.1080p.BluRay.x264-GRP", 1)]
[TestCase("[MGS] - Movie.Title - Episode 02v2 - [D8B6C90D]", 0)]
[TestCase("[Hatsuyuki] Movie Title - 07 [v2][848x480][23D8F455].avi", 0)]
[TestCase("[DeadFish] Movie Title - 01v3 [720p][AAC]", 0)]
[TestCase("[DeadFish] Movie Title Sword - 01v4 [720p][AAC]", 0)]
[TestCase("The Real Movie.Titlewives of Some Place - S01E01 - Why are we doing this?", 0)]
[TestCase("The.Real.Movie.2013.1080p.BluRay.x264-GRP", 0)]
public void should_parse_reality_from_title(string title, int reality)
{
QualityParser.ParseQuality(title).Revision.Real.Should().Be(reality);
Expand Down
Loading
Loading