1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-03-06 13:31:28 -05:00

Compare commits

...

19 Commits

Author SHA1 Message Date
Qstick
bb573594d9 Fix Blocklist Tests 2023-04-13 22:35:22 -05:00
Qstick
12e360ab4f Fixed: Some posters not showing for new movies search results
Fixes #8175

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2023-04-13 22:09:55 -05:00
Qstick
bae555f63e Fixed: Custom Format calculation error on Blocklist by Movie
Fixes #8136
2023-04-13 21:55:01 -05:00
Qstick
31abb93d8c Bump dotnet to 6.0.16 2023-04-13 19:15:09 -05:00
LarsHelo
75035035e1 Fixed: Remote path mapping UI being partially hidden on smaller screens 2023-04-13 19:08:19 -05:00
bakerboy448
c1e5990a58 Update library clean helptext 2023-04-13 19:07:39 -05:00
Weblate
4a42ebe44c Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 90.7% (1052 of 1159 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 92.9% (1077 of 1159 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 95.4% (1106 of 1159 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 90.4% (1048 of 1159 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 94.6% (1097 of 1159 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 22.5% (261 of 1159 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 94.3% (1094 of 1159 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 99.5% (1154 of 1159 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (1159 of 1159 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 21.4% (249 of 1159 strings)

Co-authored-by: Bendik Remoy <Bendikremoy@hotmail.com>
Co-authored-by: Cassio Rizzi <clrizzi@gmail.com>
Co-authored-by: Deflector8249 <lh2jwko5@gomail.me>
Co-authored-by: Elias Benbourenane <eliasbenbourenane@gmail.com>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Ivan Mazzoli <dreadtank27@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Michele Caputo <michele@caputoweb.xyz>
Co-authored-by: Nir Israel Hen <nirisraelh@gmail.com>
Co-authored-by: Remy <remy@mrbk.fr>
Co-authored-by: TheHrle <Hpranjkovic@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: federicofortini <federico.fortini@yahoo.it>
Co-authored-by: libsu <libsu@qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: tomas15420 <tomas15420@gmail.com>
Co-authored-by: zobe123 <manuel.zobl@gmx.at>
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/radarr/pt_BR/
Translation: Servarr/Radarr
2023-04-13 19:06:57 -05:00
Qstick
c82aa5c2c7 Fixed: Validation for CleanOriginalTitle
Fixes #8331
Closes #8332

Co-Authored-By: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2023-04-13 19:03:13 -05:00
Qstick
d1bae32e1c Fixed: Correct TitleThe naming token parsing 2023-04-13 18:59:15 -05:00
Qstick
c514c7cac0 Fixed: Default value in new Delay Profile 2023-04-13 18:52:13 -05:00
Qstick
3d244057b5 Fixed: Don't grab propers/repacks when item in queue meets cutoff and propers/repacks are not downloaded automatically
Fixes #8134
2023-04-13 18:47:21 -05:00
Bakerboy448
323510300c Fixed: Cleanup erroneous QBittorrent Seeding calls 2023-04-13 18:14:36 -05:00
Bakerboy448
669d87b7ef Fixed: Include Digital Only Releases for Recent Movie determination
Use most recent of physical or digital release date
2023-04-13 18:14:08 -05:00
Bakerboy448
ec7f7b085a New: More information on on why hardlinks should be used over copying
Closes #8327

(cherry picked from commit 83a9d15ff8721c8effdc2c8055e37bfb757022d4)
2023-04-13 18:13:43 -05:00
Bogdan
ecc906a754 Fixed: Config file settings do not need to be case-sensitive
(cherry picked from commit 2107635b7e7e5392624f2957af7d7b88ba6be283)
2023-04-11 20:00:35 -05:00
Bogdan
d0fcac389c Fixed: Ensure default config file on starting app
(cherry picked from commit 5326a102e23eacfc1132eb544a92af737a531df5)
2023-04-11 20:00:35 -05:00
Qstick
621acbef9a Bump version to 4.4.4 2023-04-09 12:23:51 -05:00
Mark McDowall
7fb1163b23 Fixed: Number input changing while scrolling
(cherry picked from commit cc46ed56b4b70fe1f1443c0a927383f19c989c47)
2023-04-09 12:12:29 -05:00
Sergey M
b48eda95dd Fixed: Mapping by MovieTitles collection instead of PrimaryMovieTitle (#8157)
Co-authored-by: Sergey M <msergein>
2023-04-02 16:53:24 -05:00
36 changed files with 200 additions and 101 deletions

View File

@@ -9,13 +9,13 @@ variables:
testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '4.4.3'
majorVersion: '4.4.4'
minorVersion: $[counter('minorVersion', 2000)]
radarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '6.0.400'
dotnetVersion: '6.0.408'
nodeVersion: '16.X'
innoVersion: '6.2.0'
windowsImage: 'windows-2022'

View File

@@ -113,6 +113,7 @@ class AddNewMovieSearchResult extends Component {
images={images}
size={250}
overflow={true}
lazy={false}
/>
</div>

View File

@@ -112,6 +112,12 @@ class TextInput extends Component {
this._isMouseTarget = false;
};
onWheel = () => {
if (this.props.type === 'number') {
this._input.blur();
}
};
//
// Render
@@ -161,6 +167,7 @@ class TextInput extends Component {
onKeyUp={this.onKeyUp}
onMouseDown={this.onMouseDown}
onMouseUp={this.onMouseUp}
onWheel={this.onWheel}
/>
);
}

View File

@@ -8,11 +8,15 @@
}
.host {
flex: 0 0 300px;
@add-mixin truncate;
flex: 0 1 300px;
}
.path {
flex: 0 0 400px;
@add-mixin truncate;
flex: 0 1 400px;
}
.actions {

View File

@@ -1,15 +1,20 @@
.remotePathMappingsHeader {
display: flex;
margin-bottom: 10px;
padding-right: 24px;
font-weight: bold;
}
.host {
flex: 0 0 300px;
@add-mixin truncate;
flex: 0 1 300px;
}
.path {
flex: 0 0 400px;
@add-mixin truncate;
flex: 0 1 400px;
}
.addRemotePathMapping {

View File

@@ -191,6 +191,7 @@ const delayProfileShape = {
enableTorrent: PropTypes.shape(boolSettingShape).isRequired,
usenetDelay: PropTypes.shape(numberSettingShape).isRequired,
torrentDelay: PropTypes.shape(numberSettingShape).isRequired,
bypassIfHighestQuality: PropTypes.shape(boolSettingShape).isRequired,
order: PropTypes.shape(numberSettingShape),
tags: PropTypes.shape(tagSettingShape).isRequired
};

View File

@@ -13,6 +13,7 @@ const newDelayProfile = {
preferredProtocol: 'usenet',
usenetDelay: 0,
torrentDelay: 0,
bypassIfHighestQuality: false,
tags: []
};

View File

@@ -30,7 +30,7 @@
"@fortawesome/free-regular-svg-icons": "6.1.0",
"@fortawesome/free-solid-svg-icons": "6.1.0",
"@fortawesome/react-fontawesome": "0.1.18",
"@microsoft/signalr": "6.0.8",
"@microsoft/signalr": "6.0.16",
"@sentry/browser": "6.18.2",
"@sentry/integrations": "6.18.2",
"classnames": "2.3.1",

View File

@@ -92,7 +92,7 @@
<!-- Standard testing packages -->
<ItemGroup Condition="'$(TestProject)'=='true'">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="NUnit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.1.0" />
<PackageReference Include="NunitXml.TestLogger" Version="3.0.117" />

View File

@@ -5,8 +5,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DryIoc.dll" Version="5.3.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="NLog" Version="5.0.1" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.0.0" />
@@ -14,10 +14,10 @@
<PackageReference Include="Sentry" Version="3.23.1" />
<PackageReference Include="NLog.Targets.Syslog" Version="7.0.0" />
<PackageReference Include="SharpZipLib" Version="1.3.3" />
<PackageReference Include="System.Text.Json" Version="6.0.5" />
<PackageReference Include="System.Text.Json" Version="6.0.7" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="System.Data.SQLite.Core.Servarr" Version="1.0.115.5-18" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />

View File

@@ -81,8 +81,9 @@ namespace NzbDrone.Core.Test.Blocklisting
Subject.DeleteForMovies(new List<int> { _movie1.Id });
var removedMovieBlocklists = Subject.BlocklistedByMovie(_movie1.Id);
var nonRemovedMovieBlocklists = Subject.BlocklistedByMovie(_movie2.Id);
var blocklist = Subject.All();
var removedMovieBlocklists = blocklist.Where(b => b.MovieId == _movie1.Id);
var nonRemovedMovieBlocklists = blocklist.Where(b => b.MovieId == _movie2.Id);
removedMovieBlocklists.Should().HaveCount(0);
nonRemovedMovieBlocklists.Should().HaveCount(1);

View File

@@ -4,9 +4,11 @@ using FizzWare.NBuilder;
using FluentAssertions;
using Moq;
using NUnit.Framework;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.CustomFormats;
using NzbDrone.Core.DecisionEngine.Specifications;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Languages;
using NzbDrone.Core.Movies;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Profiles;
@@ -204,5 +206,31 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_if_same_quality_non_proper_in_queue_and_download_propers_is_do_not_upgrade()
{
_remoteMovie.ParsedMovieInfo.Quality = new QualityModel(Quality.HDTV720p, new Revision(2));
_movie.Profile.Cutoff = _remoteMovie.ParsedMovieInfo.Quality.Quality.Id;
Mocker.GetMock<IConfigService>()
.Setup(s => s.DownloadPropersAndRepacks)
.Returns(ProperDownloadTypes.DoNotUpgrade);
var remoteMovie = Builder<RemoteMovie>.CreateNew()
.With(r => r.Movie = _movie)
.With(r => r.ParsedMovieInfo = new ParsedMovieInfo
{
Quality = new QualityModel(Quality.HDTV720p),
Languages = new List<Language> { Language.English }
})
.With(r => r.Release = _releaseInfo)
.With(r => r.CustomFormats = new List<CustomFormat>())
.Build();
GivenQueue(new List<RemoteMovie> { remoteMovie });
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
}
}
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Movies;
@@ -32,7 +33,14 @@ namespace NzbDrone.Core.Blocklisting
public List<Blocklist> BlocklistedByMovie(int movieId)
{
return Query(x => x.MovieId == movieId);
var builder = Builder().Join<Blocklist, Movie>((h, a) => h.MovieId == a.Id)
.Where<Blocklist>(h => h.MovieId == movieId);
return _database.QueryJoined<Blocklist, Movie>(builder, (blocklist, movie) =>
{
blocklist.Movie = movie;
return blocklist;
}).OrderByDescending(h => h.Date).ToList();
}
public void DeleteForMovies(List<int> movieIds)

View File

@@ -26,6 +26,7 @@ namespace NzbDrone.Core.Configuration
XDocument LoadConfigFile();
Dictionary<string, object> GetConfigDictionary();
void SaveConfigDictionary(Dictionary<string, object> configValues);
void EnsureDefaultConfigFile();
string BindAddress { get; }
int Port { get; }
@@ -253,7 +254,7 @@ namespace NzbDrone.Core.Configuration
public T GetValueEnum<T>(string key, T defaultValue, bool persist = true)
{
return (T)Enum.Parse(typeof(T), GetValue(key, defaultValue), persist);
return (T)Enum.Parse(typeof(T), GetValue(key, defaultValue, persist), true);
}
public string GetValue(string key, object defaultValue, bool persist = true)
@@ -312,7 +313,7 @@ namespace NzbDrone.Core.Configuration
SetValue(key, value.ToString().ToLower());
}
private void EnsureDefaultConfigFile()
public void EnsureDefaultConfigFile()
{
if (!File.Exists(_configFile))
{

View File

@@ -1,10 +1,12 @@
using System.Linq;
using NLog;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.CustomFormats;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Queue;
namespace NzbDrone.Core.DecisionEngine.Specifications
@@ -14,16 +16,19 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
private readonly IQueueService _queueService;
private readonly UpgradableSpecification _upgradableSpecification;
private readonly ICustomFormatCalculationService _formatService;
private readonly IConfigService _configService;
private readonly Logger _logger;
public QueueSpecification(IQueueService queueService,
UpgradableSpecification upgradableSpecification,
ICustomFormatCalculationService formatService,
IConfigService configService,
Logger logger)
{
_queueService = queueService;
_upgradableSpecification = upgradableSpecification;
_formatService = formatService;
_configService = configService;
_logger = logger;
}
@@ -85,6 +90,15 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
{
return Decision.Reject("Another release is queued and the Quality profile does not allow upgrades");
}
if (_upgradableSpecification.IsRevisionUpgrade(remoteMovie.ParsedMovieInfo.Quality, subject.ParsedMovieInfo.Quality))
{
if (_configService.DownloadPropersAndRepacks == ProperDownloadTypes.DoNotUpgrade)
{
_logger.Debug("Auto downloading of propers is disabled");
return Decision.Reject("Proper downloading is disabled");
}
}
}
return Decision.Accept();

View File

@@ -88,8 +88,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
if (!addHasSetShareLimits && setShareLimits)
{
Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteMovie.SeedConfiguration, Settings);
try
{
Proxy.SetTorrentSeedingConfiguration(hash.ToLower(), remoteMovie.SeedConfiguration, Settings);

View File

@@ -1064,5 +1064,6 @@
"RssSyncHelpText": "الفاصل بالدقائق. اضبط على صفر للتعطيل (سيؤدي هذا إلى إيقاف كل عمليات الاستيلاء على التحرير التلقائي)",
"AllCollectionsHiddenDueToFilter": "جميع الأفلام مخفية بسبب الفلتر المطبق.",
"Collections": "مجموعة",
"File": "الملفات"
"File": "الملفات",
"AnnouncedMsg": "تم اعلان الفيلم"
}

View File

@@ -238,7 +238,7 @@
"ImportHeader": "Chcete-li přidat filmy do Radarru, importujte existující organizovanou knihovnu",
"ImportListStatusCheckSingleClientMessage": "Seznamy nejsou k dispozici z důvodu selhání: {0}",
"ChmodFolderHelpText": "Octal, aplikováno během importu / přejmenování na mediální složky a soubory (bez provádění bitů)",
"AgeWhenGrabbed": "Věk (po uchopení)",
"AgeWhenGrabbed": "Stáří (při zachycení)",
"AreYouSureYouWantToDeleteThisImportListExclusion": "Opravdu chcete toto vyloučení importního seznamu smazat?",
"ChmodFolderHelpTextWarning": "Funguje to pouze v případě, že je uživatel souboru Radarr vlastníkem souboru. Je lepší zajistit, aby stahovací klient správně nastavil oprávnění.",
"ChmodGroup": "chmod Group",
@@ -441,7 +441,7 @@
"AnalyseVideoFiles": "Analyzujte video soubory",
"Age": "Stáří",
"Agenda": "Denní program",
"All": "Všechno",
"All": "Vše",
"Analytics": "Analytics",
"PackageVersion": "Verze balíčku",
"AddMovie": "Přidat film",

View File

@@ -59,7 +59,7 @@
"IndexerRssHealthCheckNoIndexers": "Da keine Indexer mit aktivierter RSS-Synchronisierung verfügbar sind, erfasst Radarr nicht automatisch neue Releases auf",
"IndexerSearchCheckNoAutomaticMessage": "Keine Indexer mit aktivierter automatischer Suche verfügbar. Radarr liefert keine automatischen Suchergebnisse",
"IndexerSearchCheckNoAvailableIndexersMessage": "Alle suchfähigen Indexer sind aufgrund der kürzlichen Indexerfehler vorübergehend nicht verfügbar",
"IndexerSearchCheckNoInteractiveMessage": "Keine Indexer mit aktivierter interaktiver Suche verfügbar, Radarr liefert keine interaktiven Suchergebnisse",
"IndexerSearchCheckNoInteractiveMessage": "Keine Indexer mit aktivierter interaktiver Suche verfügbar, Radarr wird keine interaktiven Suchergebnisse liefern",
"IndexerStatusCheckAllClientMessage": "Alle Indexer sind aufgrund von Fehlern nicht verfügbar",
"IndexerStatusCheckSingleClientMessage": "Indexer aufgrund von Fehlern nicht verfügbar: {0}",
"Indexers": "Indexer",
@@ -101,7 +101,7 @@
"QualityProfile": "Qualitätsprofil",
"QualityProfiles": "Qualitätsprofile",
"Queue": "Warteschlange",
"RSSSync": "RSS Sync",
"RSSSync": "RSS-Sync",
"Refresh": "Aktualisieren",
"RefreshAndScan": "Aktualisieren",
"ReleaseBranchCheckOfficialBranchMessage": "Zweig {0} ist kein gültiger Radarr-Release-Zweig. Sie erhalten keine Updates",
@@ -327,7 +327,7 @@
"AvailabilityDelayHelpText": "Zeit vor( - ) oder nach( + ) dem Verfügbarkeitsdatum für die Suche nach einem Film",
"BackupIntervalHelpText": "Intervall zum sichern der Datenbank und Einstellungen",
"BackupRetentionHelpText": "Automatische Backups, die älter als die Aufbewahrungsfrist sind, werden automatisch gelöscht",
"Backups": "Backups",
"Backups": "Sicherungen",
"BindAddress": "Adresse binden",
"BindAddressHelpText": "Gültige IP Adresse oder \"*\" für alle Netzwerke",
"Branch": "Git-Branch",
@@ -531,7 +531,7 @@
"TestAllIndexers": "Alle testen",
"TestAllLists": "Alle testen",
"TimeFormat": "Zeitformat",
"UpdateMechanismHelpText": "Benutze Radarr's Build-In Updater oder ein Script",
"UpdateMechanismHelpText": "Benutze den in Radarr eingebauten Updater oder ein Script",
"UpdateScriptPathHelpText": "Pfad zu einem benutzerdefinierten Skript, das ein extrahiertes Update-Paket übernimmt und den Rest des Update-Prozesses abwickelt",
"UpgradeAllowedHelpText": "Wenn deaktiviert wird die Qualität nicht verbessert",
"Uptime": "Laufzeit",
@@ -830,7 +830,7 @@
"ChmodFolderHelpText": "Oktal, wird beim Importieren/Umbenennen von Medienordnern und Dateien angewendet (ohne Ausführungsbits)",
"ChmodFolder": "chmod Ordner",
"FileNameTokens": "Dateinamen Teile",
"YesMoveFiles": "Ja, Dateien verchieben",
"YesMoveFiles": "Ja, Dateien verschieben",
"WouldYouLikeToRestoreBackup": "Willst du das Backup {0} wiederherstellen?",
"Wiki": "Wiki",
"WhatsNew": "Was gibt's Neues?",
@@ -1024,7 +1024,7 @@
"Add": "Hinzufügen",
"RequiredRestrictionHelpText": "Das Release mus mindesten eines der Begriffe beinhalten ( Groß-/Kleinschreibung wird nicht beachtet )",
"MoveFolders2": "Bist du sicher, dass du die Filmdateien von '{0}' nach '{1}' verschieben willst ?",
"ImportLibrary": "Mediathek Import",
"ImportLibrary": "Importieren",
"ImportNotForDownloads": "Benutze dies NICHT um abgeschlossene Downloads deines Download Clients hinzuzufügen. Dies ist NUR für vorhandene organisierte Mediatheken und nicht für unsortierte Dateien.",
"SqliteVersionCheckUpgradeRequiredMessage": "Die derzeit installierte SQLite-Version {0} wird nicht mehr unterstützt. Bitte aktualisieren Sie SQLite auf mindestens Version {1}.",
"ShowCinemaRelease": "Erscheinungsdatum des Kinos anzeigen",
@@ -1156,5 +1156,6 @@
"SettingsTheme": "Design",
"RSSHelpText": "Wird benutzt, wenn Radarr mittels RSS-Sync regelmäßig nach Releases schaut",
"DownloadClientSortingCheckMessage": "Downloader {0} hat die {1} Sortierung für Radarrs Kategorie aktiviert. Dies sollte deaktiviert werden, um Import-Probleme zu vermeiden.",
"File": "Datei"
"File": "Datei",
"UMask": "UMask"
}

View File

@@ -1156,5 +1156,6 @@
"Waiting": "Αναμονή",
"UpdateAvailable": "Νέα ενημέρωση είναι διαθέσιμη",
"SizeLimit": "Όριο μεγέθους",
"File": "Αρχεία"
"File": "Αρχεία",
"UMask": "UMask"
}

View File

@@ -163,7 +163,7 @@
"ConnectSettingsSummary": "Notifications, connections to media servers/players, and custom scripts",
"ConsideredAvailable": "Considered Available",
"CopyToClipboard": "Copy to Clipboard",
"CopyUsingHardlinksHelpText": "Use Hardlinks when trying to copy files from torrents that are still being seeded",
"CopyUsingHardlinksHelpText": "Hardlinks allow Radarr to import seeding torrents to the movie folder without taking extra disk space or copying the entire contents of the file. Hardlinks will only work if the source and destination are on the same volume",
"CopyUsingHardlinksHelpTextWarning": "Occasionally, file locks may prevent renaming files that are being seeded. You may temporarily disable seeding and use Radarr's rename function as a work around.",
"CouldNotConnectSignalR": "Could not connect to SignalR, UI won't update",
"CouldNotFindResults": "Couldn't find any results for '{0}'",
@@ -483,7 +483,7 @@
"Lists": "Lists",
"ListSettings": "List Settings",
"ListsSettingsSummary": "Import Lists, list exclusions",
"ListSyncLevelHelpText": "Movies in library will be removed or unmonitored if not in your list",
"ListSyncLevelHelpText": "Movies in library will handled based on your selection if they fall off or do not appear on your list(s)",
"ListSyncLevelHelpTextWarning": "Movie files will be permanently deleted, this can result in wiping your library if your lists are empty",
"ListTagsHelpText": "Tags list items will be added with",
"ListUpdateInterval": "List Update Interval",

View File

@@ -144,7 +144,7 @@
"ListsSettingsSummary": "Importer listes, listes d'exclusions",
"ListExclusions": "Liste des exclusions",
"IndexersSettingsSummary": "Indexeurs et restrictions de version",
"Grabbed": "Attrapé",
"Grabbed": "Récupéré",
"Genres": "Genres",
"Forecast": "Prévision",
"DownloadClientsSettingsSummary": "Clients de Téléchargement, la gestion des téléchargements et les mappages de chemins d'accès à distance",
@@ -582,7 +582,7 @@
"UsenetDelayHelpText": "Délai en minutes avant de récupérer une version Usenet",
"Uptime": "Durée de fonctionnent",
"UpgradeUntilThisQualityIsMetOrExceeded": "Mettre à niveau jusqu'à ce que cette qualité soit atteinte ou dépassée",
"UpgradeAllowedHelpText": "Ne sera pas mis à jour si la qualité est désactivée",
"UpgradeAllowedHelpText": "Si désactivé, la qualité ne sera pas améliorée",
"UpdateScriptPathHelpText": "Chemin vers un script personnalisé qui prend un package de mise à jour extraite et gère le reste du processus de mise à jour",
"UpdateMechanismHelpText": "Utiliser le programme de mise à jour intégré de Radarr ou un script",
"UpdateAutomaticallyHelpText": "Télécharger et installer automatiquement les mises à jour. Vous pourrez toujours installer à partir de System : Updates",
@@ -671,7 +671,7 @@
"ShowCutoffUnmetIconHelpText": "Afficher l'icône des fichiers lorsque la limite n'a pas été atteinte",
"ShowCertification": "Afficher la certification",
"ShowAsAllDayEvents": "Afficher comme événements d'une journée entière",
"ShouldMonitorHelpText": "Les films ou les collections ajoutés par cette liste doivent-ils être ajoutés en tant que surveillés",
"ShouldMonitorHelpText": "Les films ou les collections ajoutés par cette liste devraient-ils être ajoutés en tant que surveillés",
"SettingsRuntimeFormat": "Format de durée",
"SetPermissionsLinuxHelpTextWarning": "Si vous ne savez pas ce que font ces paramètres, ne les modifiez pas.",
"SetPermissionsLinuxHelpText": "Chmod doit-il être exécuté lorsque les fichiers sont importés/renommés ?",
@@ -1117,7 +1117,7 @@
"Collections": "Collections",
"MonitorMovies": "Surveiller les films",
"NoCollections": "Aucune collection n'a été trouvée. Pour commencer, vous devez ajouter un nouveau film ou importer des films existants",
"RssSyncHelpText": "Intervalle en minutes. Mettez la valeur zéro pour désactiver (cela arrêtera tous les téléchargements automatiques de version)",
"RssSyncHelpText": "Intervalle en minutes. Régler à zéro pour désactiver (cela arrêtera tous les déclenchements automatiques).",
"CollectionsSelectedInterp": "{0} Collections(s) Sélectionnée(s)",
"ChooseImportMode": "Mode d'importation",
"CollectionOptions": "Options de collection",
@@ -1156,5 +1156,6 @@
"ResetTitlesHelpText": "Réinitialiser les titres des définitions ainsi que les valeurs",
"SettingsThemeHelpText": "Changez le thème de l'interface de l'application. Le thème \"Auto\" utilisera celui de votre système d'exploitation pour définir le mode clair ou foncé. Inspiré par Theme.Park",
"ShowPosters": "Montre les affiches",
"File": "Fichier"
"File": "Fichier",
"UMask": "UMask"
}

View File

@@ -146,7 +146,7 @@
"BackupIntervalHelpText": "מרווח בין גיבויים אוטומטיים",
"BackupRetentionHelpText": "גיבויים אוטומטיים ישנים יותר מתקופת השמירה ינוקו אוטומטית",
"BindAddress": "כתובת איגוד",
"BindAddressHelpText": "כתובת IP4 תקפה או '*' לכל הממשקים",
"BindAddressHelpText": "יש להזין localhost, כתובת IP או '*' כדי לאפשר הכל",
"Branch": "ענף",
"BuiltIn": "נִבנָה בְּ",
"CalendarOptions": "אפשרויות לוח שנה",
@@ -530,7 +530,7 @@
"DestinationRelativePath": "מסלול יחסי יעד",
"DetailedProgressBar": "סרגל התקדמות מפורט",
"Details": "פרטים",
"Discord": "מַחֲלוֹקֶת",
"Discord": "דיסקורד",
"Discover": "לְגַלוֹת",
"DiskSpace": "שטח דיסק",
"Docker": "דוקר",

View File

@@ -227,5 +227,26 @@
"ChmodGroup": "chmod Grupa",
"ChmodGroupHelpText": "Naziv grupe ili gid. Koristite gid za udaljene sustave datoteka.",
"ChooseAnotherFolder": "Odaberite Drugu Mapu",
"ChooseImportMode": "Odaberite Način Uvoza"
"ChooseImportMode": "Odaberite Način Uvoza",
"AppDataLocationHealthCheckMessage": "Ažuriranje ne može spriječiti brisanje AppData pri ažuriranju",
"CleanLibraryLevel": "Očisti Razinu Biblioteke",
"ClickToChangeLanguage": "Klikni za promjenu jezika",
"ClickToChangeMovie": "Klikni za promjenu filma",
"ClickToChangeQuality": "Klikni za promjenu kvalitete",
"ClickToChangeReleaseGroup": "Klikni za promjenu grupe verzije",
"ClientPriority": "Prioritet Klijenata",
"CloneCustomFormat": "Kloniraj Prilagođeni Format",
"CloneFormatTag": "Kloniraj Oznaku Formata",
"CloneIndexer": "Kloniraj Indekser",
"CloneProfile": "Kloniraj Profil",
"Close": "Zatvori",
"CloseCurrentModal": "Zatvori Trenutni Modal",
"CollectionOptions": "Opcije Kolekcije",
"CollectionShowDetailsHelpText": "Prikaži status i svojstva kolekcije",
"CollectionShowOverviewsHelpText": "Prikaži pregled kolekcije",
"CollectionShowPostersHelpText": "Prikaži Kolekciju postera",
"CollectionsSelectedInterp": "{0} Kolekcija odabrano",
"ColonReplacement": "Zamjena Zareza",
"ColonReplacementFormatHelpText": "izmijeni kako Radar upravlja zamjenama zareza",
"Columns": "Stupci"
}

View File

@@ -225,7 +225,7 @@
"Cancel": "Annulla",
"BypassProxyForLocalAddresses": "Evita il Proxy per gli Indirizzi Locali",
"Branch": "Ramo",
"BindAddressHelpText": "Indirizzo IPV4 valido o '*' per tutte le interfacce di rete",
"BindAddressHelpText": "Indirizzo IP valido, localhost o '*' per tutte le interfacce di rete",
"BindAddress": "Indirizzo di Bind",
"Backups": "I Backup",
"BackupRetentionHelpText": "I backup automatici più vecchi del periodo di conservazione verranno eliminati automaticamente",
@@ -845,7 +845,7 @@
"AddDownloadClient": "Aggiungi Downloader",
"AddCustomFormat": "Aggiungi Formato Personalizzato",
"Add": "Aggiungi",
"ImportLibrary": "Importazione della libreria",
"ImportLibrary": "Importazione libreria",
"CustomFormatHelpText": "Radarr valuta ogni release usando la somma dei punteggi dei corrispondenti formati personalizzati. Se una nuova versione migliorasse il punteggio, con una qualità uguale o migliore, Radarr lo prenderà.",
"DefaultDelayProfile": "Questo è il profilo predefinito. Si applica a tutti i film che non hanno un profilo esplicito.",
"EditCustomFormat": "Modifica Formato Personalizzato",
@@ -948,9 +948,9 @@
"LookingForReleaseProfiles1": "Cerchi profili di rilascio? Prova",
"LookingForReleaseProfiles2": "piuttosto.",
"LowerCase": "Minuscolo",
"ManualImportSelectLanguage": "Importazione manuale: seleziona Lingua",
"ManualImportSelectLanguage": "Importazione Manuale: Seleziona Lingua",
"ManualImportSelectMovie": "Importazione manuale: seleziona Film",
"ManualImportSelectQuality": " Importazione manuale: seleziona Qualità",
"ManualImportSelectQuality": " Importazione Manuale: Seleziona Qualità",
"MegabytesPerMinute": "Megabyte al minuto",
"Min": "Min",
"MinimumCustomFormatScore": "Punteggio formato personalizzato minimo",
@@ -1108,5 +1108,13 @@
"EditCollection": "Modifica Connessione",
"SettingsThemeHelpText": "Cambia il Tema dell'interfaccia dellapplicazione, il Tema 'Auto' userà il suo Tema di Sistema per impostare la modalità Chiara o Scura. Ispirato da {0}",
"PreferredProtocol": "Protocollo Preferito",
"File": "File"
"File": "File",
"SettingsTheme": "Tema",
"ShowCollectionDetails": "Mostra stato collezione",
"Waiting": "In attesa",
"CollectionsSelectedInterp": "{0} Collezione(i) Selezionate",
"CollectionShowOverviewsHelpText": "Mostra panoramica della collezione",
"ImdbVotes": "Voti IMDb",
"ImdbRating": "Valutazione IMDb",
"DownloadClientSortingCheckMessage": "Il client di download {0} ha l'ordinamento {1} abilitato per la categoria di Radarr. Dovresti disabilitare l'ordinamento nel tuo client di download per evitare problemi di importazione."
}

View File

@@ -108,7 +108,7 @@
"AreYouSureYouWantToDeleteThisRemotePathMapping": "Er du sikker på at du vil slette denne eksterne banetilordningen?",
"AutoRedownloadFailedHelpText": "Søk etter eller prøv å laste ned en annen versjon automatisk",
"BackupFolderHelpText": "Relative stier vil være under Radarr's AppData -katalog",
"BindAddressHelpText": "Gyldig IPv4 -adresse eller \"*\" for alle grensesnitt",
"BindAddressHelpText": "Gyldig IPv4 -adresse, localhost eller \"*\" for alle grensesnitt",
"BypassDelayIfHighestQuality": "Omgå hvis høyeste kvalitet",
"BypassDelayIfHighestQualityHelpText": "Omgåelsesforsinkelse når utgivelsen har den høyeste aktiverte kvaliteten i kvalitetsprofilen med den foretrukne protokollen",
"ChangeHasNotBeenSavedYet": "Endringen er ikke lagret ennå",
@@ -256,5 +256,9 @@
"New": "Ny",
"RemotePathMappings": "Ekstern portmapping",
"Languages": "språk",
"File": "Fil"
"File": "Fil",
"ApplicationURL": "Applikasjon URL",
"ApplicationUrlHelpText": "Denne applikasjonens eksterne URL inkludert http(s)://, port og URL base",
"CollectionOptions": "Innstillinger for Samling",
"AreYouSureYouWantToResetQualityDefinitions": "Er du sikker på at du vil nullstille kvalitetsdefinisjonene?"
}

View File

@@ -194,7 +194,7 @@
"IndexerStatusCheckSingleClientMessage": "Indexadores indisponíveis devido a falhas: {0}",
"IndexerStatusCheckAllClientMessage": "Todos os indexadores estão indisponíveis devido a falhas",
"IndexersSettingsSummary": "Restrições de versões e de indexadores",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa ativada, o Radarr não fornecerá nenhum resultado nas Pesquisas Interativas",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa ativada. O Radarr não fornecerá nenhum resultado nas Pesquisas Interativas",
"IndexerSearchCheckNoAutomaticMessage": "Não há indexadores disponíveis com Pesquisa automática ativada, o Radarr não fornecerá nenhum resultado de pesquisa automática",
"IndexerSearchCheckNoAvailableIndexersMessage": "Todos os indexadores com funcionalidade de pesquisa estão indisponíveis devido a erros recentes do indexador",
"Indexers": "Indexadores",
@@ -486,7 +486,7 @@
"CertificateValidation": "Validação de certificado",
"BypassProxyForLocalAddresses": "Ignorar proxy para endereços locais",
"Branch": "Ramificação",
"BindAddressHelpText": "Endereço IPv4 válido ou \"*\" para todas as interfaces",
"BindAddressHelpText": "Endereço de IP válido, localhost ou \"*\" para todas as interfaces",
"BindAddress": "Endereço de vínculo",
"Backups": "Cópias de segurança",
"BackupFolderHelpText": "Caminhos relativos estarão na pasta AppData do Radarr",
@@ -635,7 +635,7 @@
"Disabled": "Desativado",
"DeleteTagMessageText": "Tem a certeza que quer eliminar a etiqueta \"{0}\"?",
"DeleteSelectedMovieFilesMessage": "Tem a certeza que quer eliminar os ficheiros do filme selecionado?",
"DeleteRestrictionHelpText": "Tem a certeza que quer eliminar esta restrição?",
"DeleteRestrictionHelpText": "Tem certeza de que quer eliminar esta restrição?",
"DeleteNotificationMessageText": "Tem a certeza que quer eliminar a notificação \"{0}\"?",
"DeleteListMessageText": "Tem a certeza que quer eliminar a lista \"{0}\"?",
"DeleteDownloadClientMessageText": "Tem a certeza que quer eliminar o cliente de transferências \"{0}\"?",
@@ -897,7 +897,7 @@
"OnRename": "Ao renomear",
"PreferTorrent": "Preferir torrent",
"PreferUsenet": "Preferir Usenet",
"QualitiesHelpText": "Qualidades mais acima na lista têm maior prioridade, as que estão no mesmo grupo têm prioridade igual. Apenas qualidades verificadas são desejadas",
"QualitiesHelpText": "Qualidades mais acima na lista têm maior prioridade, mesmo que não sejam verificadas. As que estão no mesmo grupo têm prioridade igual. Apenas qualidades verificadas são desejadas",
"QualityProfileInUse": "Não é possível eliminar um perfil de qualidade quando associado a um filme, lista ou coleção",
"QueueIsEmpty": "A fila está vazia",
"RadarrCalendarFeed": "Feed de calendário do Radarr",
@@ -1146,5 +1146,16 @@
"MovieCollectionMultipleMissingRoots": "Faltam várias pastas base para as coleções de filmes: {0}",
"MovieOnly": "Apenas filme",
"ShowCollectionDetails": "Mostrar estado da coleção",
"File": "Ficheiro"
"File": "Ficheiro",
"ResetDefinitions": "Redefinir Definições",
"ResetQualityDefinitions": "Redefinir Qualidade de Definições",
"ResetTitles": "Redefinir Títulos",
"ResetTitlesHelpText": "Redefinir títulos de definição, bem como valores",
"SettingsThemeHelpText": "Alterar o tema da interface do usuário. O tema 'Auto' usará o tema do sistema operacional para definir o modo Claro ou Escuro. Inspirado por Theme.Park",
"UMask": "UMask",
"RSSHelpText": "Será usado quando o Radarr procurar periodicamente releases via RSS Sync",
"SettingsTheme": "Tema",
"AreYouSureYouWantToResetQualityDefinitions": "Tem certeza de que deseja redefinir as definições de qualidade?",
"DownloadClientSortingCheckMessage": "O cliente de download {0} tem {1} classificação habilitada para a categoria do Radarr. Você deve desativar a classificação em seu cliente de download para evitar problemas de importação.",
"PreferredProtocol": "Protocolo Preferido"
}

View File

@@ -19,7 +19,7 @@
"IndexerStatusCheckAllClientMessage": "Todos os indexadores estão indisponíveis devido a falhas",
"IndexersSettingsSummary": "Indexadores e restrições de lançamento",
"IndexerSettings": "Configurações do indexador",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa habilitada, o Radarr não fornecerá nenhum resultado para a pesquisa interativa",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa interativa habilitada, o Radarr não fornecerá nenhum resultado de pesquisa interativa",
"IndexerSearchCheckNoAvailableIndexersMessage": "Todos os indexadores com capacidade de pesquisa estão temporariamente indisponíveis devido a erros recentes do indexador",
"IndexerSearchCheckNoAutomaticMessage": "Nenhum indexador disponível com a Pesquisa automática habilitada, o Radarr não fornecerá nenhum resultado de pesquisa automática",
"Indexers": "Indexadores",
@@ -84,7 +84,7 @@
"HealthNoIssues": "Nenhum problema com sua configuração",
"Health": "Integridade",
"HaveNotAddedMovies": "Você ainda não adicionou nenhum filme, deseja importar alguns ou todos os seus filmes primeiro?",
"HardlinkCopyFiles": "Hardlink/Copiar arquivos",
"HardlinkCopyFiles": "Vínculo real/Copiar arquivos",
"Group": "Grupo",
"GrabSelected": "Obter selecionado",
"GrabReleaseMessageText": "O Radarr não conseguiu determinar a qual filme este lançamento está relacionado. O Radarr pode não conseguir importar automaticamente este lançamento. Quer obter \"{0}\"?",
@@ -693,7 +693,7 @@
"ShowDateAdded": "Mostrar data de adição",
"ShowCutoffUnmetIconHelpText": "Mostrar ícone para arquivos quando o limite não foi atingindo",
"ShowCertification": "Mostrar certificação",
"ShowAdvanced": "Mostrar avançado",
"ShowAdvanced": "Mostrar opções avançadas",
"ShouldMonitorHelpText": "Os filmes ou coleções adicionados por esta lista devem ser adicionados como monitorados",
"SettingsWeekColumnHeader": "Cabeçalho da coluna da semana",
"SettingsTimeFormat": "Formato de hora",
@@ -1083,8 +1083,8 @@
"RemoveFailed": "Falha na Remoção",
"RemoveCompleted": "Remover Completos",
"RemoveDownloadsAlert": "As configurações de remoção foram movidas para configurações individuais do cliente na tabela acima.",
"OnApplicationUpdate": "Na Atualização do Aplicativo",
"OnApplicationUpdateHelpText": "Na Atualização do Aplicativo",
"OnApplicationUpdate": "Ao atualizar o aplicativo",
"OnApplicationUpdateHelpText": "Ao atualizar o aplicativo",
"DiscordUrlInSlackNotification": "Você tem uma notificação do Discord configurado como uma notificação do Slack. Definir isso como uma notificação do Discord para melhor funcionalidade. Com efeito, notificações são: {0}",
"AnnouncedMsg": "Filme foi anunciado",
"IndexerDownloadClientHelpText": "Especificar qual cliente de download é utilizado para baixar a partir deste indexador",
@@ -1096,7 +1096,7 @@
"ClickToChangeReleaseGroup": "Clique para alterar o grupo do lançamento",
"Filters": "Filtros",
"RemotePath": "Caminho Remoto",
"SizeLimit": "Tamanho Limite",
"SizeLimit": "Tamanho limite",
"ImdbRating": "Avaliação no IMDb",
"TmdbRating": "Avaliação no TMDb",
"TmdbVotes": "Votos no TMDb",
@@ -1115,7 +1115,7 @@
"RefreshMonitoredIntervalHelpText": "Com que frequência atualizar downloads monitorados de clientes de download, no mínimo 1 minuto",
"RssSyncHelpText": "Intervalo em minutos. Defina como zero para desabilitar (isso interromperá todas as capturas de liberação automática)",
"InstanceName": "Nome da instância",
"InstanceNameHelpText": "Nome da instância na guia e para o nome do aplicativo Syslog",
"InstanceNameHelpText": "Nome da instância na guia e para o nome do aplicativo do Syslog",
"AllCollectionsHiddenDueToFilter": "Todos os filmes estão ocultos devido ao filtro aplicado.",
"Collections": "Coleções",
"MonitorMovies": "Monitorar Filmes",

View File

@@ -61,17 +61,14 @@ namespace NzbDrone.Core.Movies
{
get
{
if (PhysicalRelease.HasValue)
if ((PhysicalRelease.HasValue && PhysicalRelease.Value >= DateTime.UtcNow.AddDays(-21)) ||
(DigitalRelease.HasValue && DigitalRelease.Value >= DateTime.UtcNow.AddDays(-21)) ||
(InCinemas.HasValue && InCinemas.Value >= DateTime.UtcNow.AddDays(-120)))
{
return PhysicalRelease.Value >= DateTime.UtcNow.AddDays(-21);
return true;
}
if (InCinemas.HasValue)
{
return InCinemas.Value >= DateTime.UtcNow.AddDays(-120);
}
return true;
return false;
}
}

View File

@@ -41,7 +41,7 @@ namespace NzbDrone.Core.Organizer
private static readonly Regex TitleRegex = new Regex(@"(?<tag>\{(?:imdb-|edition-))?\{(?<prefix>[- ._\[(]*)(?<token>(?:[a-z0-9]+)(?:(?<separator>[- ._]+)(?:[a-z0-9]+))?)(?::(?<customFormat>[a-z0-9|+-]+(?<!-)))?(?<suffix>[-} ._)\]]*)\}",
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
public static readonly Regex MovieTitleRegex = new Regex(@"(?<token>\{((?:(Movie|Original))(?<separator>[- ._])(Clean|Original)?(Title|Filename)(The)?)(?::(?<customFormat>[a-z0-9|]+))?\})",
public static readonly Regex MovieTitleRegex = new Regex(@"(?<token>\{((?:(Movie|Original))(?<separator>[- ._])(Clean)?(Original)?(Title|Filename)(The)?)(?::(?<customFormat>[a-z0-9|]+))?\})",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
private static readonly Regex FileNameCleanupRegex = new Regex(@"([- ._])(\1)+", RegexOptions.Compiled);
@@ -247,7 +247,7 @@ namespace NzbDrone.Core.Organizer
{
tokenHandlers["{Movie Title}"] = m => GetLanguageTitle(movie, m.CustomFormat);
tokenHandlers["{Movie CleanTitle}"] = m => CleanTitle(GetLanguageTitle(movie, m.CustomFormat));
tokenHandlers["{Movie Title The}"] = m => TitleThe(movie.Title);
tokenHandlers["{Movie TitleThe}"] = m => TitleThe(movie.Title);
tokenHandlers["{Movie TitleFirstCharacter}"] = m => TitleThe(movie.Title).Substring(0, 1).FirstCharToUpper();
tokenHandlers["{Movie OriginalTitle}"] = m => movie.MovieMetadata.Value.OriginalTitle ?? string.Empty;
tokenHandlers["{Movie CleanOriginalTitle}"] = m => CleanTitle(movie.MovieMetadata.Value.OriginalTitle) ?? string.Empty;

View File

@@ -4,7 +4,6 @@ using System.Linq;
using NLog;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Languages;
using NzbDrone.Core.Movies;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Parser.RomanNumerals;
@@ -214,31 +213,15 @@ namespace NzbDrone.Core.Parser
possibleTitles.AddRange(searchCriteria.Movie.MovieMetadata.Value.AlternativeTitles.Select(t => t.CleanTitle));
possibleTitles.AddRange(searchCriteria.Movie.MovieMetadata.Value.Translations.Select(t => t.CleanTitle));
var cleanTitle = parsedMovieInfo.PrimaryMovieTitle.CleanMovieTitle();
var cleanTitles = parsedMovieInfo.MovieTitles.Select(t => t.CleanMovieTitle()).ToArray();
foreach (var title in possibleTitles)
if (possibleTitles.Any(pt =>
cleanTitles.Contains(pt)
|| _arabicRomanNumeralMappings.Any(mn =>
cleanTitles.Contains(pt.Replace(mn.ArabicNumeralAsString, mn.RomanNumeralLowerCase))
|| cleanTitles.Any(t => t.Replace(mn.ArabicNumeralAsString, mn.RomanNumeralLowerCase) == pt))))
{
if (title == cleanTitle)
{
possibleMovie = searchCriteria.Movie;
}
foreach (var numeralMapping in _arabicRomanNumeralMappings)
{
var arabicNumeral = numeralMapping.ArabicNumeralAsString;
var romanNumeral = numeralMapping.RomanNumeralLowerCase;
// _logger.Debug(cleanTitle);
if (title.Replace(arabicNumeral, romanNumeral) == cleanTitle)
{
possibleMovie = searchCriteria.Movie;
}
if (title == cleanTitle.Replace(arabicNumeral, romanNumeral))
{
possibleMovie = searchCriteria.Movie;
}
}
possibleMovie = searchCriteria.Movie;
}
if (possibleMovie != null)

View File

@@ -10,7 +10,7 @@
<PackageReference Include="Servarr.FFMpegCore" Version="4.7.0-26" />
<PackageReference Include="Servarr.FFprobe" Version="5.1.2.106" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
<PackageReference Include="Servarr.FluentMigrator.Runner" Version="3.3.2.9" />
@@ -22,7 +22,7 @@
<PackageReference Include="NLog" Version="5.0.1" />
<PackageReference Include="System.Data.SQLite.Core.Servarr" Version="1.0.115.5-18" />
<PackageReference Include="MonoTorrent" Version="2.0.7" />
<PackageReference Include="System.Text.Json" Version="6.0.5" />
<PackageReference Include="System.Text.Json" Version="6.0.7" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />

View File

@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.1" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.3.0" />
<PackageReference Include="DryIoc.dll" Version="5.3.0" />
<PackageReference Include="DryIoc.Microsoft.DependencyInjection" Version="6.1.0" />

View File

@@ -224,6 +224,8 @@ namespace NzbDrone.Host
appFolderFactory.Register();
pidFileProvider.Write();
configFileProvider.EnsureDefaultConfigFile();
reconfigureLogging.Reconfigure();
EnsureSingleInstance(false, startupContext, singleInstancePolicy);

View File

@@ -4,7 +4,7 @@
<OutputType>Library</OutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.8" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.16" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />

View File

@@ -1180,10 +1180,10 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@microsoft/signalr@6.0.8":
version "6.0.8"
resolved "https://registry.yarnpkg.com/@microsoft/signalr/-/signalr-6.0.8.tgz#e55b4488b352c580c08bab381110cdfe42d4e53c"
integrity sha512-TgvNf8opondnX6nqN2AvWThOMl+CjPwxonhAbBpmLveECcnTuBibJQdiCUA4iwjBz26k2HIiiJ25DYgqXIJVQw==
"@microsoft/signalr@6.0.16":
version "6.0.16"
resolved "https://registry.yarnpkg.com/@microsoft/signalr/-/signalr-6.0.16.tgz#d36498a9b16bf11c0e9213d77d24c0ad8ebffa47"
integrity sha512-wekzRtt2Ti38Ja0OQwLE0EKN0Zm7RI9VilrungwHe5Eej1IwnRYuhpauAqNtwwP3CY2j7uFT4XUk74E2vythTQ==
dependencies:
abort-controller "^3.0.0"
eventsource "^1.0.7"