diff --git a/.gitignore b/.gitignore index 2a5850895..177a9eeed 100644 --- a/.gitignore +++ b/.gitignore @@ -101,16 +101,21 @@ App_Data/*.ldf _NCrunch_* _TeamCity* -# Sonarr -config.xml -nzbdrone.log*txt +# Radarr +Backups/ +logs/ +MediaCover/ UpdateLogs/ +xdg/ +config.xml +logs.db* +nzbdrone.db* +nzbdrone.pid *workspace.xml *.test-cache *.userprefs */test-results/* src/UI/.idea/* -*log.txt node_modules/ _output* _rawPackage/ @@ -122,23 +127,26 @@ setup/Output/ UI.Phantom/ -#VS outout folders +# VS outout folders bin obj output/* -#Packages +# Packages Radarr_*/ Radarr_*.zip Radarr_*.gz -#OS X metadata files +# macOS metadata files ._* .DS_Store _start _temp_*/**/* -#AppVeyor +# Windows thumbnail cache files +Thumbs.db + +# AppVeyor /tools-cake/ -/_artifacts/ \ No newline at end of file +/_artifacts/ diff --git a/.travis.yml b/.travis.yml index 3cea8954a..f1a014a34 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,14 @@ language: csharp solution: src/NzbDrone.sln -script: # the following commands are just examples, use whatever your build process requires +addons: + apt: + packages: + - nodejs + - npm +script: - ./build.sh - chmod +x test.sh # - ./test.sh Linux Unit Takes far too long, maybe even crashes travis :/ -install: - - sudo apt-get install nodejs - - sudo apt-get install npm after_success: - chmod +x package.sh - ./package.sh diff --git a/CLA.md b/CLA.md index 40adac7f6..05ce7890d 100644 --- a/CLA.md +++ b/CLA.md @@ -1,6 +1,6 @@ -# Sonarr Individual Contributor License Agreement # +# Radarr Individual Contributor License Agreement # -Thank you for your interest in contributing to Sonarr ("We" or "Us"). +Thank you for your interest in contributing to Radarr ("We" or "Us"). This contributor agreement ("Agreement") documents the rights granted by contributors to Us. To make this document effective, please complete the form below. This is a legally binding document, so please read it carefully before agreeing to it. The Agreement may cover more than one software project managed by Us. ## 1. Definitions ## diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ab945cb0c..3ae50843d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # How to Contribute # -We're always looking for people to help make Sonarr even better, there are a number of ways to contribute. +We're always looking for people to help make Radarr even better, there are a number of ways to contribute. ## Documentation ## Setup guides, FAQ, the more information we have on the wiki the better. @@ -15,7 +15,7 @@ Setup guides, FAQ, the more information we have on the wiki the better. ### Getting started ### -1. Fork Sonarr +1. Fork Radarr 2. Clone (develop branch) *you may need pull in submodules separately if you client doesn't clone them automatically (CurlSharp)* 3. Run `npm install` 4. Run `npm start` - Used to compile the UI components and copy them. @@ -24,8 +24,8 @@ Setup guides, FAQ, the more information we have on the wiki the better. 5. Compile in Visual Studio ### Contributing Code ### -- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Sonarr/Sonarr/issues "Github Issues") so work is not duplicated (If you want to add something not already on there, please talk to us first) -- Rebase from Sonarr's develop branch, don't merge +- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Radarr/Radarr/issues "Github Issues") so work is not duplicated (If you want to add something not already on there, please talk to us first) +- Rebase from Radarr's develop branch, don't merge - Make meaningful commits, or squash them - Feel free to make a pull request before work is complete, this will let us see where its at and make comments/suggest improvements - Reach out to us on the forums or on IRC if you have any questions diff --git a/Logo/Thumbs.db b/Logo/Thumbs.db deleted file mode 100644 index f01582531..000000000 Binary files a/Logo/Thumbs.db and /dev/null differ diff --git a/README.md b/README.md new file mode 100644 index 000000000..1a6ccd091 --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +## Status + +[![GitHub issues](https://img.shields.io/github/issues/radarr/radarr.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/issues) +[![GitHub pull requests](https://img.shields.io/github/issues-pr/radarr/radarr.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/pulls) +[![GNU GPL v3](https://img.shields.io/badge/license-GNU%20GPL%20v3-blue.svg?maxAge=60&style=flat-square)](http://www.gnu.org/licenses/gpl.html) +[![Copyright 2010-2017](https://img.shields.io/badge/copyright-2017-blue.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr) + +| Service | Master | Develop | +|----------|:---------------------------:|:----------------------------:| +| AppVeyor | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr/master.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr) | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr-usby1/develop.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr-usby1) | +| Travis | [![Travis](https://img.shields.io/travis/Radarr/Radarr/master.svg?maxAge=60&style=flat-square)](https://travis-ci.org/Radarr/Radarr) | [![Travis](https://img.shields.io/travis/Radarr/Radarr/develop.svg?maxAge=60&style=flat-square)](https://travis-ci.org/Radarr/Radarr) | + +This fork of Sonarr aims to turn it into something like CouchPotato. + +## Downloads + +[![GitHub Releases](https://img.shields.io/badge/downloads-releases-brightgreen.svg?maxAge=60&style=flat-square)](https://github.com/Radarr/Radarr/releases) + +[![AppVeyor Builds](https://img.shields.io/badge/downloads-continuous-green.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/radarr-usby1/build/artifacts) + +[![Docker x64](https://img.shields.io/badge/docker-x64-blue.svg?maxAge=60&style=flat-square)](https://store.docker.com/community/images/linuxserver/radarr) +[![Docker armhf](https://img.shields.io/badge/docker-armhf-blue.svg?maxAge=60&style=flat-square)](https://store.docker.com/community/images/lsioarmhf/radarr) +[![Docker aarch64](https://img.shields.io/badge/docker-aarch64-blue.svg?maxAge=60&style=flat-square)](https://store.docker.com/community/images/lsioarmhf/radarr-aarch64) + +To connect to the UI, fire up your browser and open or . + +## Features + +### Currently Working + +* Adding new movies +* Manually searching for releases of movies +* Automatically searching for releases +* Automatically importing downloaded movies +* Recognizing Special Editions, Director's Cut, etc. +* Identifying releases with hardcoded subs +* Rarbg.to, Torznab and Newznab Indexer +* QBittorrent and Deluge download client (Other clients are coming) +* New TorrentPotato Indexer (Works well with [Jackett](https://github.com/Jackett/Jackett)) + +### Planned Features + +* Scanning PreDB to know when a new release is available +* Fixing the other Indexers and download clients +* Importing of Sonarr config + +### Major Features + +* Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc. +* Can watch for better quality of the movies you have and do an automatic upgrade. *eg. from DVD to Blu-Ray* +* Automatic failed download handling will try another release if one fails +* Manual search so you can pick any release or to see why a release was not downloaded automatically +* Full integration with SABnzbd and NZBGet +* Full integration with Kodi, Plex (notification, library update, metadata) +* And a beautiful UI + +## Configuring Development Environment + +### Requirements + +* [Visual Studio Community](https://www.visualstudio.com/vs/community/) or [MonoDevelop](http://www.monodevelop.com) +* [Git](https://git-scm.com/downloads) +* [Node.js](https://nodejs.org/en/download/) + +### Setup + +* Make sure all the required software mentioned above are installed +* Clone the repository into your development machine ([*info*](https://help.github.com/desktop/guides/contributing/working-with-your-remote-repository-on-github-or-github-enterprise)) +* Grab the submodules `git submodule init && git submodule update` +* Install the required Node Packages `npm install` +* Start gulp to monitor your dev environment for any changes that need post processing using `npm start` command. + +*Please note: gulp must be running at all times while you are working with Radarr client source files.* + +### Development + +* Open `NzbDrone.sln` in Visual Studio or run the build.sh script, if Mono is installed +* Make sure `NzbDrone.Console` is set as the startup project + +## Sponsors + +[JetBrains](http://www.jetbrains.com) for providing us with free licenses to their great tools: +* [ReSharper](http://www.jetbrains.com/resharper) +* [WebStorm](http://www.jetbrains.com/webstorm) +* [TeamCity](http://www.jetbrains.com/teamcity) diff --git a/appveyor.yml b/appveyor.yml index 47e6519de..b529317ee 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -36,6 +36,9 @@ artifacts: cache: - '%USERPROFILE%\.nuget\packages' - node_modules + +pull_requests: + do_not_increment_build_number: true only_commits: files: diff --git a/readme.md b/readme.md deleted file mode 100644 index 2c26ccb3e..000000000 --- a/readme.md +++ /dev/null @@ -1,81 +0,0 @@ -# Radarr - -| Service | Master | Develop | -|----------|:---------------------------:|:----------------------------:| -| AppVeyor | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr/master.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr) | [![AppVeyor](https://img.shields.io/appveyor/ci/galli-leo/Radarr-usby1/develop.svg?maxAge=60&style=flat-square)](https://ci.appveyor.com/project/galli-leo/Radarr-usby1) | -| Travis | [![Travis](https://img.shields.io/travis/galli-leo/Radarr/master.svg?maxAge=60&style=flat-square)](https://travis-ci.org/galli-leo/Radarr) | [![Travis](https://img.shields.io/travis/galli-leo/Radarr/develop.svg?maxAge=60&style=flat-square)](https://travis-ci.org/galli-leo/Radarr) | - -This fork of Sonarr aims to turn it into something like Couchpotato. - -## Currently working: -* Adding new movies -* Manually searching for releases of movies. -* Automatically searching for releases. -* Automatically importing downloaded movies. -* Recognizing Special Editions, Director's Cut, etc. -* Identifying releases with hardcoded subs. -* Rarbg.to, Torznab and Newznab Indexer. -* QBittorrent and Deluge download client (Other clients are coming) -* New TorrentPotato Indexer (Works well with [Jackett](https://github.com/Jackett/Jackett)) - -## Planned Features: -* Scanning PreDB to know when a new release is available. -* Fixing the other Indexers and download clients. -* Importing of Sonarr config. - -## Download -The latest precompiled binary versions can be found here: https://github.com/galli-leo/Radarr/releases. - -Docker containers from [linuxserver.io](https://linuxserver.io) can be found here. -* [Radarr (x64)](https://hub.docker.com/r/linuxserver/radarr/) -* [Radarr (armhf)](https://hub.docker.com/r/lsioarmhf/radarr/) -* [Radarr (aarch64)](https://hub.docker.com/r/lsioarmhf/radarr-aarch64/) - -For more up to date versions (but also sometimes broken), daily builds can be found here: -* [OSX](https://leonardogalli.ch/radarr/builds/latest.php?os=osx) -* [Windows](https://leonardogalli.ch/radarr/builds/latest.php?os=windows) -* [Linux](https://leonardogalli.ch/radarr/builds/latest.php?os=mono) - -## Major Features Include: ## - -* Support for major platforms: Windows, Linux, OSX, Raspberry Pi, etc. -* Can watch for better quality of the movies you have and do an upgrade. -* Automatic failed download handling will try another release if one fails -* Manual search so you can pick any release or to see why a release was not downloaded automatically. -* Full integration with SABNzbd and NzbGet. -* Full integration with XBMC, Plex (notification, library update, metadata). -* And a beautiful UI - -## Configuring Development Environment: ## - -### Requirements ### -- Visual Studio 2015 [Free Community Edition](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) or Mono -- [Git](http://git-scm.com/downloads) -- [NodeJS](http://nodejs.org/download/) - -### Setup ### - -- Make sure all the required software mentioned above are installed. -- Clone the repository into your development machine. [*info*](https://help.github.com/articles/working-with-repositories) -- Grab the submodules `git submodule init && git submodule update` -- install the required Node Packages `npm install` -- start gulp to monitor your dev environment for any changes that need post processing using `npm start` command. - -*Please note gulp must be running at all times while you are working with Sonarr client source files.* - - -### Development ### -- Open `NzbDrone.sln` in Visual Studio or run the build.sh script, if Mono is installed. -- Make sure `NzbDrone.Console` is set as the startup project - - -### License ### -* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html) -Copyright 2010-2016 - - -### Sponsors ### -- [JetBrains](http://www.jetbrains.com/) for providing us with free licenses to their great tools - - [ReSharper](http://www.jetbrains.com/resharper/) - - [WebStorm](http://www.jetbrains.com/webstorm/) - - [TeamCity](http://www.jetbrains.com/teamcity/) diff --git a/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs b/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs index 0e62517f9..685c5cf16 100644 --- a/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs +++ b/src/NzbDrone.Api/Calendar/CalendarFeedModule.cs @@ -27,6 +27,7 @@ namespace NzbDrone.Api.Calendar Get["/NzbDrone.ics"] = options => GetCalendarFeed(); Get["/Sonarr.ics"] = options => GetCalendarFeed(); + Get["/Radarr.ics"] = options => GetCalendarFeed(); } private Response GetCalendarFeed() diff --git a/src/NzbDrone.Api/Indexers/ReleaseResource.cs b/src/NzbDrone.Api/Indexers/ReleaseResource.cs index fea1ee353..2be0acbb9 100644 --- a/src/NzbDrone.Api/Indexers/ReleaseResource.cs +++ b/src/NzbDrone.Api/Indexers/ReleaseResource.cs @@ -97,7 +97,7 @@ namespace NzbDrone.Api.Indexers { Guid = releaseInfo.Guid, Quality = parsedMovieInfo.Quality, - //QualityWeight + QualityWeight = parsedMovieInfo.Quality.Quality.Id, //Id kinda hacky for wheight, but what you gonna do? TODO: Fix this shit! Age = releaseInfo.Age, AgeHours = releaseInfo.AgeHours, AgeMinutes = releaseInfo.AgeMinutes, diff --git a/src/NzbDrone.Api/Movies/MovieFileModule.cs b/src/NzbDrone.Api/Movies/MovieFileModule.cs new file mode 100644 index 000000000..a45fbefad --- /dev/null +++ b/src/NzbDrone.Api/Movies/MovieFileModule.cs @@ -0,0 +1,89 @@ +using System.Collections.Generic; +using System.IO; +using NLog; +using NzbDrone.Api.REST; +using NzbDrone.Api.Movie; +using NzbDrone.Core.Datastore.Events; +using NzbDrone.Core.MediaFiles; +using NzbDrone.Core.MediaFiles.Events; +using NzbDrone.Core.Messaging.Events; +using NzbDrone.Core.Tv; +using NzbDrone.Core.DecisionEngine; +using NzbDrone.SignalR; + +namespace NzbDrone.Api.EpisodeFiles +{ + public class MovieFileModule : NzbDroneRestModuleWithSignalR + //IHandle + { + private readonly IMediaFileService _mediaFileService; + private readonly IRecycleBinProvider _recycleBinProvider; + private readonly IMovieService _seriesService; + private readonly IQualityUpgradableSpecification _qualityUpgradableSpecification; + private readonly Logger _logger; + + public MovieFileModule(IBroadcastSignalRMessage signalRBroadcaster, + IMediaFileService mediaFileService, + IRecycleBinProvider recycleBinProvider, + IMovieService seriesService, + IQualityUpgradableSpecification qualityUpgradableSpecification, + Logger logger) + : base(signalRBroadcaster) + { + _mediaFileService = mediaFileService; + _recycleBinProvider = recycleBinProvider; + _seriesService = seriesService; + _qualityUpgradableSpecification = qualityUpgradableSpecification; + _logger = logger; + /*GetResourceById = GetEpisodeFile; + GetResourceAll = GetEpisodeFiles; + UpdateResource = SetQuality;*/ + DeleteResource = DeleteEpisodeFile; + } + + /*private EpisodeFileResource GetEpisodeFile(int id) + { + var episodeFile = _mediaFileService.Get(id); + var series = _seriesService.GetSeries(episodeFile.SeriesId); + + return episodeFile.ToResource(series, _qualityUpgradableSpecification); + } + + private List GetEpisodeFiles() + { + if (!Request.Query.SeriesId.HasValue) + { + throw new BadRequestException("seriesId is missing"); + } + + var seriesId = (int)Request.Query.SeriesId; + + var series = _seriesService.GetSeries(seriesId); + + return _mediaFileService.GetFilesBySeries(seriesId).ConvertAll(f => f.ToResource(series, _qualityUpgradableSpecification)); + } + + private void SetQuality(EpisodeFileResource episodeFileResource) + { + var episodeFile = _mediaFileService.Get(episodeFileResource.Id); + episodeFile.Quality = episodeFileResource.Quality; + _mediaFileService.Update(episodeFile); + }*/ + + private void DeleteEpisodeFile(int id) + { + var episodeFile = _mediaFileService.GetMovie(id); + var series = _seriesService.GetMovie(episodeFile.MovieId); + var fullPath = Path.Combine(series.Path, episodeFile.RelativePath); + + _logger.Info("Deleting episode file: {0}", fullPath); + _recycleBinProvider.DeleteFile(fullPath); + _mediaFileService.Delete(episodeFile, DeleteMediaFileReason.Manual); + } + + public void Handle(EpisodeFileAddedEvent message) + { + BroadcastResourceChange(ModelAction.Updated, message.EpisodeFile.Id); + } + } +} \ No newline at end of file diff --git a/src/NzbDrone.Api/NzbDrone.Api.csproj b/src/NzbDrone.Api/NzbDrone.Api.csproj index f92541404..6a61d84fc 100644 --- a/src/NzbDrone.Api/NzbDrone.Api.csproj +++ b/src/NzbDrone.Api/NzbDrone.Api.csproj @@ -116,6 +116,7 @@ + diff --git a/src/NzbDrone.Api/Series/MovieFileResource.cs b/src/NzbDrone.Api/Series/MovieFileResource.cs index 62ad7832f..848d31ab4 100644 --- a/src/NzbDrone.Api/Series/MovieFileResource.cs +++ b/src/NzbDrone.Api/Series/MovieFileResource.cs @@ -30,8 +30,8 @@ namespace NzbDrone.Api.Movie public string ReleaseGroup { get; set; } public QualityModel Quality { get; set; } public MovieResource Movie { get; set; } - - + public string Edition { get; set; } + public Core.MediaFiles.MediaInfo.MediaInfoModel MediaInfo { get; set; } //TODO: Add series statistics as a property of the series (instead of individual properties) } @@ -63,7 +63,8 @@ namespace NzbDrone.Api.Movie ReleaseGroup = model.ReleaseGroup, Quality = model.Quality, Movie = movie, - + MediaInfo = model.MediaInfo, + Edition = model.Edition }; } diff --git a/src/NzbDrone.Common/ConsoleService.cs b/src/NzbDrone.Common/ConsoleService.cs index 321831277..8a16c352b 100644 --- a/src/NzbDrone.Common/ConsoleService.cs +++ b/src/NzbDrone.Common/ConsoleService.cs @@ -23,7 +23,7 @@ namespace NzbDrone.Common Console.WriteLine(" Commands:"); Console.WriteLine(" /{0} Install the application as a Windows Service ({1}).", StartupContext.INSTALL_SERVICE, ServiceProvider.NZBDRONE_SERVICE_NAME); Console.WriteLine(" /{0} Uninstall already installed Windows Service ({1}).", StartupContext.UNINSTALL_SERVICE, ServiceProvider.NZBDRONE_SERVICE_NAME); - Console.WriteLine(" /{0} Don't open Sonarr in a browser", StartupContext.NO_BROWSER); + Console.WriteLine(" /{0} Don't open Radarr in a browser", StartupContext.NO_BROWSER); Console.WriteLine(" Run application in console mode."); } diff --git a/src/NzbDrone.Common/Http/UserAgentBuilder.cs b/src/NzbDrone.Common/Http/UserAgentBuilder.cs index fa99d03f4..f0cff30e9 100644 --- a/src/NzbDrone.Common/Http/UserAgentBuilder.cs +++ b/src/NzbDrone.Common/Http/UserAgentBuilder.cs @@ -9,12 +9,12 @@ namespace NzbDrone.Common.Http static UserAgentBuilder() { - UserAgent = string.Format("Sonarr/{0} ({1} {2})", + UserAgent = string.Format("Radarr/{0} ({1} {2})", BuildInfo.Version, OsInfo.Os, OsInfo.Version.ToString(2)); - UserAgentSimplified = string.Format("Sonarr/{0}", + UserAgentSimplified = string.Format("Radarr/{0}", BuildInfo.Version.ToString(2)); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs b/src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs index 7c672f725..39febd26c 100644 --- a/src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs +++ b/src/NzbDrone.Common/Instrumentation/NzbDroneLogger.cs @@ -103,9 +103,9 @@ namespace NzbDrone.Common.Instrumentation private static void RegisterAppFile(IAppFolderInfo appFolderInfo) { - RegisterAppFile(appFolderInfo, "appFileInfo", "sonarr.txt", 5, LogLevel.Info); - RegisterAppFile(appFolderInfo, "appFileDebug", "sonarr.debug.txt", 50, LogLevel.Off); - RegisterAppFile(appFolderInfo, "appFileTrace", "sonarr.trace.txt", 50, LogLevel.Off); + RegisterAppFile(appFolderInfo, "appFileInfo", "radarr.txt", 5, LogLevel.Info); + RegisterAppFile(appFolderInfo, "appFileDebug", "radarr.debug.txt", 50, LogLevel.Off); + RegisterAppFile(appFolderInfo, "appFileTrace", "radarr.trace.txt", 50, LogLevel.Off); } private static LoggingRule RegisterAppFile(IAppFolderInfo appFolderInfo, string name, string fileName, int maxArchiveFiles, LogLevel minLogLevel) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs index af24f2797..b70021190 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/DelugeTests/DelugeFixture.cs @@ -26,7 +26,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.DelugeTests Subject.Definition = new DownloadClientDefinition(); Subject.Definition.Settings = new DelugeSettings() { - TvCategory = null + MovieCategory = null }; _queued = new DelugeTorrent diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs index 3ceece6f6..2283f7add 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/QBittorrentTests/QBittorrentFixture.cs @@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests Port = 2222, Username = "admin", Password = "pass", - TvCategory = "tv" + MovieCategory = "movies-radarr" }; Mocker.GetMock() diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs index f657a7884..a3d7eebf1 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/RTorrentTests/RTorrentFixture.cs @@ -21,7 +21,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.RTorrentTests Subject.Definition = new DownloadClientDefinition(); Subject.Definition.Settings = new RTorrentSettings() { - TvCategory = null + MovieCategory = null }; _downloading = new RTorrentTorrent diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixtureBase.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixtureBase.cs index d46f9a30e..5fd4136b6 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixtureBase.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixtureBase.cs @@ -112,12 +112,12 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests protected void GivenTvCategory() { - _settings.TvCategory = "sonarr"; + _settings.MovieCategory = "radarr"; } protected void GivenTvDirectory() { - _settings.TvDirectory = @"C:/Downloads/Finished/sonarr"; + _settings.MovieDirectory = @"C:/Downloads/Finished/radarr"; } protected void GivenFailedDownload() diff --git a/src/NzbDrone.Core.Test/Files/Indexers/Omgwtfnzbs/Omgwtfnzbs.xml b/src/NzbDrone.Core.Test/Files/Indexers/Omgwtfnzbs/Omgwtfnzbs.xml index d11fe2a1b..93dc7ce13 100644 --- a/src/NzbDrone.Core.Test/Files/Indexers/Omgwtfnzbs/Omgwtfnzbs.xml +++ b/src/NzbDrone.Core.Test/Files/Indexers/Omgwtfnzbs/Omgwtfnzbs.xml @@ -1,1212 +1,1210 @@ - omgwtfnzbs.org rss feeds generator + omgwtfnzbs.me rss feeds generator en-us - Search NZB Download Feed - http://rss.omgwtfnzbs.org - auto-dl feed for omgwtfnzbs.org - 2010 - 2012 omgwtfnzbs - - Mon, 17 Dec 2012 23:30:16 +0000 - - - Stephen.Fry.Gadget.Man.S01E05.HDTV.x264-C4TV - Mon, 17 Dec 2012 23:30:13 +0000 - http://api.omgwtfnzbs.org/sn.php?id=OAl4g&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=OAl4g&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 225.85 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:30:04
Added to usenet: 17/12/2012 23:30:13
Weblink: http://www.tvrage.com/shows/id-33431
View NZB: http://omgwtfnzbs.org/details.php?id=OAl4g]]>
- TV: STD - tv.sd - 19 - -
- - - Never.Mind.The.Buzzcocks.UK.S26E12.720p.HDTV.x264-FTP - Mon, 17 Dec 2012 23:27:23 +0000 - http://api.omgwtfnzbs.org/sn.php?id=3whQL&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=3whQL&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 660.51 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:26:53
Added to usenet: 17/12/2012 23:27:23
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=3whQL]]>
- TV: HD - tv.hd - 20 - -
- - - Bad.Santas.S01E01.HDTV.x264-W4F - Mon, 17 Dec 2012 23:23:02 +0000 - http://api.omgwtfnzbs.org/sn.php?id=YXPhW&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=YXPhW&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 437.29 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:22:39
Added to usenet: 17/12/2012 23:23:02
Weblink: http://thetvdb.com/?tab=series&id=264930&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=YXPhW]]>
- TV: STD - tv.sd - 19 - -
- - - Chainsaw.Gang.S01E06.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 23:10:55 +0000 - http://api.omgwtfnzbs.org/sn.php?id=387yh&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=387yh&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 218.8 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 23:16:58
Added to usenet: 17/12/2012 23:10:55
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=387yh]]>
- TV: STD - tv.sd - 19 - -
- - - NFL.2012.12.16.Buccaneers.vs.Saints.720p.HDTV.x264-BAJSKORV - Mon, 17 Dec 2012 23:10:23 +0000 - http://api.omgwtfnzbs.org/sn.php?id=oUgMb&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=oUgMb&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 6.76 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:07:16
Added to usenet: 17/12/2012 23:10:23
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=oUgMb]]>
- TV: HD - tv.hd - 20 - -
- - - Never.Mind.The.Buzzcocks.UK.S26E12.HDTV.x264-FTP - Mon, 17 Dec 2012 23:10:22 +0000 - http://api.omgwtfnzbs.org/sn.php?id=CAxYY&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=CAxYY&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 220.87 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:09:59
Added to usenet: 17/12/2012 23:10:22
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=CAxYY]]>
- TV: STD - tv.sd - 19 - -
- - - Sloth.Bear.HDTV.x264-TERRA - Mon, 17 Dec 2012 23:02:13 +0000 - http://api.omgwtfnzbs.org/sn.php?id=LDn8P&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=LDn8P&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 452 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 23:02:00
Added to usenet: 17/12/2012 23:02:13
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=LDn8P]]>
- TV: STD - tv.sd - 19 - -
- - - Panorama.S60E49.HDTV.x264-BARGE - Mon, 17 Dec 2012 22:55:30 +0000 - http://api.omgwtfnzbs.org/sn.php?id=6aLWJ&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=6aLWJ&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 250.86 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:55:18
Added to usenet: 17/12/2012 22:55:30
Weblink: http://thetvdb.com/?tab=series&id=80748&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=6aLWJ]]>
- TV: STD - tv.sd - 19 - -
- - - Chainsaw.Gang.S01E05.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 22:51:26 +0000 - http://api.omgwtfnzbs.org/sn.php?id=FdB6A&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=FdB6A&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 165.75 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 22:57:31
Added to usenet: 17/12/2012 22:51:26
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=FdB6A]]>
- TV: STD - tv.sd - 19 - + omgwtfnzbs.me - Latest NZB Download Feed + https://rss.omgwtfnzbs.me/ + omgwtfnzbs.me - NZB Download Feed (false) + 2010 - 2014 omgwtfnzbs + + + Un.Petit.Boulot.2016.FRENCH.720p.BluRay.DTS.x264-LOST + Mon, 09 Jan 2017 02:16:54 +0200 + https://api.omgwtfnzbs.me/nzb/?id=8a2Bw&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=8a2Bw&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 4.99 GB
Group: alt.binaries.boneless
Added to index: 01/01/2017 22:49:30
Added to usenet: 09/01/2017 02:16:54
View NZB: https://omgwtfnzbs.me/details.php?id=8a2Bw]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Death.Race.2050.2017.1080p.BluRay.x264-ROVERS + Mon, 09 Jan 2017 01:40:12 +0200 + https://api.omgwtfnzbs.me/nzb/?id=2Aqi3&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=2Aqi3&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 8.8 GB
Group: alt.binaries.moovee
Added to index: 09/01/2017 00:37:45
Added to usenet: 09/01/2017 01:40:12
View NZB: https://omgwtfnzbs.me/details.php?id=2Aqi3]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Death.Race.2050.2017.BDRip.x264-ROVERS + Mon, 09 Jan 2017 01:17:52 +0200 + https://api.omgwtfnzbs.me/nzb/?id=dg04S&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=dg04S&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 1.1 GB
Group: alt.binaries.moovee
Added to index: 09/01/2017 00:14:52
Added to usenet: 09/01/2017 01:17:52
View NZB: https://omgwtfnzbs.me/details.php?id=dg04S]]>
+ Movies: STD + movies.sd + 15 + +
+ + + Floored.2009.1080p.BluRay.x264-THUGLiNE + Sun, 08 Jan 2017 23:34:46 +0200 + https://api.omgwtfnzbs.me/nzb/?id=c2rBA&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=c2rBA&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.33 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 22:31:47
Added to usenet: 08/01/2017 23:34:46
View NZB: https://omgwtfnzbs.me/details.php?id=c2rBA]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Floored.2009.720p.BluRay.x264-THUGLiNE + Sun, 08 Jan 2017 23:31:06 +0200 + https://api.omgwtfnzbs.me/nzb/?id=fV4im&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=fV4im&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.73 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 22:27:10
Added to usenet: 08/01/2017 23:31:06
View NZB: https://omgwtfnzbs.me/details.php?id=fV4im]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Live.Flesh.1997.1080p.BluRay.FLAC2.0.x264-DON + Sun, 08 Jan 2017 20:19:06 +0200 + https://api.omgwtfnzbs.me/nzb/?id=BnTZ0&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=BnTZ0&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 16.85 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 19:16:44
Added to usenet: 08/01/2017 20:19:06
View NZB: https://omgwtfnzbs.me/details.php?id=BnTZ0]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Sex.By.Advertisement.1968.DVDRip.x264-FiCO + Sun, 08 Jan 2017 18:02:53 +0200 + https://api.omgwtfnzbs.me/nzb/?id=yMSuc&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=yMSuc&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 862.74 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 17:00:47
Added to usenet: 08/01/2017 18:02:53
View NZB: https://omgwtfnzbs.me/details.php?id=yMSuc]]>
+ Movies: STD + movies.sd + 15 + +
+ + + Super.Rhino.2009.1080p.BluRay.x264-FLAME + Sun, 08 Jan 2017 13:17:06 +0200 + https://api.omgwtfnzbs.me/nzb/?id=b43Ej&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=b43Ej&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 502.14 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 12:15:19
Added to usenet: 08/01/2017 13:17:06
View NZB: https://omgwtfnzbs.me/details.php?id=b43Ej]]>
+ Movies: HD + movies.hd + 16 + +
+ + + Super.Rhino.2009.720p.BluRay.x264-FLAME + Sun, 08 Jan 2017 13:15:26 +0200 + https://api.omgwtfnzbs.me/nzb/?id=k6soa&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=k6soa&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 266.62 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 12:13:35
Added to usenet: 08/01/2017 13:15:26
View NZB: https://omgwtfnzbs.me/details.php?id=k6soa]]>
+ Movies: HD + movies.hd + 16 +
- Inside.Claridges.S01E03.HDTV.x264-FTP - Mon, 17 Dec 2012 22:48:24 +0000 - http://api.omgwtfnzbs.org/sn.php?id=0zjU4&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=0zjU4&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 448.38 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:48:04
Added to usenet: 17/12/2012 22:48:24
Weblink: http://thetvdb.com/?tab=series&id=264600&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=0zjU4]]>
- TV: STD - tv.sd - 19 - + San.Andreas.2015.TRUEFRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 13:03:23 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Yvek6&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Yvek6&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.05 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 06:25:10
Added to usenet: 08/01/2017 13:03:23
View NZB: https://omgwtfnzbs.me/details.php?id=Yvek6]]>
+ Movies: HD + movies.hd + 16 +
- Royal.Pains.S04E15.Off-Season.Greetings.Pt.1.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 22:47:52 +0000 - http://api.omgwtfnzbs.org/sn.php?id=mMHry&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=mMHry&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 277.66 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 22:53:52
Added to usenet: 17/12/2012 22:47:52
Weblink: http://thetvdb.com/?tab=series&id=92411&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=mMHry]]>
- TV: STD - tv.sd - 19 - + San.Andreas.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 13:02:45 +0200 + https://api.omgwtfnzbs.me/nzb/?id=wbvw3&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=wbvw3&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.felfelida
Added to index: 11/12/2016 01:52:51
Added to usenet: 08/01/2017 13:02:45
View NZB: https://omgwtfnzbs.me/details.php?id=wbvw3]]>
+ Movies: HD + movies.hd + 16 +
- The.Poison.Tree.S01E02.720p.HDTV.x264-TLA - Mon, 17 Dec 2012 22:44:57 +0000 - http://api.omgwtfnzbs.org/sn.php?id=XiqFs&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=XiqFs&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 868.42 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:44:21
Added to usenet: 17/12/2012 22:44:57
Weblink: http://thetvdb.com/?tab=series&id=264796&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=XiqFs]]>
- TV: HD - tv.hd - 20 - + Saints.And.Soldiers.2003.STV.FRENCH.720p.BluRay.x264-MUxHD + Sun, 08 Jan 2017 13:02:12 +0200 + https://api.omgwtfnzbs.me/nzb/?id=KID80&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=KID80&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.12 GB
Group: alt.binaries.movies.french
Added to index: 01/12/2016 22:58:21
Added to usenet: 08/01/2017 13:02:12
View NZB: https://omgwtfnzbs.me/details.php?id=KID80]]>
+ Movies: HD + movies.hd + 16 +
- The.Poison.Tree.S01E02.HDTV.x264-RiVER - Mon, 17 Dec 2012 22:37:44 +0000 - http://api.omgwtfnzbs.org/sn.php?id=S8EDd&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=S8EDd&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 331.56 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:37:28
Added to usenet: 17/12/2012 22:37:44
Weblink: http://thetvdb.com/?tab=series&id=264796&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=S8EDd]]>
- TV: STD - tv.sd - 19 - + Risen.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 13:01:49 +0200 + https://api.omgwtfnzbs.me/nzb/?id=hyUJx&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=hyUJx&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.4 GB
Group: alt.binaries.felfelida
Added to index: 29/11/2016 23:02:11
Added to usenet: 08/01/2017 13:01:49
View NZB: https://omgwtfnzbs.me/details.php?id=hyUJx]]>
+ Movies: HD + movies.hd + 16 +
- Inside.Claridges.S01E03.720p.HDTV.x264-FTP - Mon, 17 Dec 2012 22:29:51 +0000 - http://api.omgwtfnzbs.org/sn.php?id=edHL6&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=edHL6&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.18 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:29:43
Added to usenet: 17/12/2012 22:29:51
Weblink: http://thetvdb.com/?tab=series&id=264600&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=edHL6]]>
- TV: HD - tv.hd - 20 - + Ran.1985.REMASTERED.FRENCH.720p.BluRay.x264-ULSHD + Sun, 08 Jan 2017 13:01:24 +0200 + https://api.omgwtfnzbs.me/nzb/?id=5elVu&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=5elVu&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 10.18 GB
Group: alt.binaries.movies.french
Added to index: 03/12/2016 22:56:51
Added to usenet: 08/01/2017 13:01:24
View NZB: https://omgwtfnzbs.me/details.php?id=5elVu]]>
+ Movies: HD + movies.hd + 16 +
- Tron.Uprising.S01E13.The.Stranger.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 22:28:47 +0000 - http://api.omgwtfnzbs.org/sn.php?id=BMO6u&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=BMO6u&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 163.45 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 22:32:56
Added to usenet: 17/12/2012 22:28:47
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=BMO6u]]>
- TV: STD - tv.sd - 19 - + Pride.and.Prejudice.and.Zombies.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 13:00:41 +0200 + https://api.omgwtfnzbs.me/nzb/?id=TL2hr&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=TL2hr&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.06 GB
Group: alt.binaries.felfelida
Added to index: 02/12/2016 05:19:32
Added to usenet: 08/01/2017 13:00:41
View NZB: https://omgwtfnzbs.me/details.php?id=TL2hr]]>
+ Movies: HD + movies.hd + 16 +
- NFL.2012.12.16.Vikings.vs.Rams.720p.HDTV.x264-BAJSKORV - Mon, 17 Dec 2012 22:26:54 +0000 - http://api.omgwtfnzbs.org/sn.php?id=Z2fIr&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=Z2fIr&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 6.24 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:20:07
Added to usenet: 17/12/2012 22:26:54
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=Z2fIr]]>
- TV: HD - tv.hd - 20 - + Precious.Cargo.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 13:00:21 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Ehb5l&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Ehb5l&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.84 GB
Group: alt.binaries.felfelida
Added to index: 15/12/2016 06:20:31
Added to usenet: 08/01/2017 13:00:21
View NZB: https://omgwtfnzbs.me/details.php?id=Ehb5l]]>
+ Movies: HD + movies.hd + 16 +
- The.Gadget.Show.World.Tour.S02E07.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 22:23:04 +0000 - http://api.omgwtfnzbs.org/sn.php?id=NrREN&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=NrREN&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 341.1 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 22:29:02
Added to usenet: 17/12/2012 22:23:04
Weblink: http://thetvdb.com/?tab=series&id=258440&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=NrREN]]>
- TV: STD - tv.sd - 19 - + Pina.2011.DOC.PROPER.FRENCH.1080p.BluRay.x264-FiDELiO + Sun, 08 Jan 2017 13:00:05 +0200 + https://api.omgwtfnzbs.me/nzb/?id=cNsHi&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=cNsHi&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 8.98 GB
Group: alt.binaries.documentaries.french
Added to index: 01/12/2016 23:03:07
Added to usenet: 08/01/2017 13:00:05
View NZB: https://omgwtfnzbs.me/details.php?id=cNsHi]]>
+ Movies: HD + movies.hd + 16 +
- Redneck.Island.S02E06.HDTV.x264-YesTV - Mon, 17 Dec 2012 22:16:37 +0000 - http://api.omgwtfnzbs.org/sn.php?id=75b7e&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=75b7e&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 440.67 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:16:12
Added to usenet: 17/12/2012 22:16:37
Weblink: http://thetvdb.com/?tab=series&id=259570&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=75b7e]]>
- TV: STD - tv.sd - 19 - + Paranormal.Activity.The.Ghost.Dimension.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:59:36 +0200 + https://api.omgwtfnzbs.me/nzb/?id=uTXRQ&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=uTXRQ&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.05 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 06:39:37
Added to usenet: 08/01/2017 12:59:36
View NZB: https://omgwtfnzbs.me/details.php?id=uTXRQ]]>
+ Movies: HD + movies.hd + 16 +
- Chainsaw.Gang.S01E06.HDTV.x264-YesTV - Mon, 17 Dec 2012 22:15:52 +0000 - http://api.omgwtfnzbs.org/sn.php?id=G8QhV&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=G8QhV&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 259.24 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:15:38
Added to usenet: 17/12/2012 22:15:52
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=G8QhV]]>
- TV: STD - tv.sd - 19 - + Paper.Towns.2015.TRUEFRENCH.720p.BluRay.x264-MELBA + Sun, 08 Jan 2017 12:59:10 +0200 + https://api.omgwtfnzbs.me/nzb/?id=fq5pK&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=fq5pK&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:25:16
Added to usenet: 08/01/2017 12:59:10
View NZB: https://omgwtfnzbs.me/details.php?id=fq5pK]]>
+ Movies: HD + movies.hd + 16 +
- VH1.Divas.2012.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 22:15:23 +0000 - http://api.omgwtfnzbs.org/sn.php?id=dohtS&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=dohtS&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 1.16 GB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 22:20:56
Added to usenet: 17/12/2012 22:15:23
Weblink: http://lookpic.com/O/i2/227/bkl5VFGu.jpeg[/IMG
View NZB: http://omgwtfnzbs.org/details.php?id=dohtS]]>
- TV: STD - tv.sd - 19 - + Papa.Ou.Maman.2015.RERIP.FRENCH.DVDRip.x264-Ryotox + Sun, 08 Jan 2017 12:58:10 +0200 + https://api.omgwtfnzbs.me/nzb/?id=3WN1H&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=3WN1H&user=nzbdrone&api=nzbdrone + Category: Movies: DVD
Size: 585.4 MB
Group: alt.binaries.movies.french
Added to index: 12/12/2016 00:21:27
Added to usenet: 08/01/2017 12:58:10
View NZB: https://omgwtfnzbs.me/details.php?id=3WN1H]]>
+ Movies: DVD + movies.dvd + 17 +
- Chainsaw.Gang.S01E05.HDTV.x264-YesTV - Mon, 17 Dec 2012 22:14:57 +0000 - http://api.omgwtfnzbs.org/sn.php?id=PBGHM&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=PBGHM&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 196.5 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:14:43
Added to usenet: 17/12/2012 22:14:57
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=PBGHM]]>
- TV: STD - tv.sd - 19 - + Pan.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:57:29 +0200 + https://api.omgwtfnzbs.me/nzb/?id=RCeDE&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=RCeDE&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.08 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:27:53
Added to usenet: 08/01/2017 12:57:29
View NZB: https://omgwtfnzbs.me/details.php?id=RCeDE]]>
+ Movies: HD + movies.hd + 16 +
- Bad.Girls.S03E16.DVDRiP.XViD-PiX - Mon, 17 Dec 2012 22:10:30 +0000 - http://api.omgwtfnzbs.org/sn.php?id=JaeF7&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=JaeF7&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 397.05 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:10:16
Added to usenet: 17/12/2012 22:10:30
Weblink: http://thetvdb.com/?tab=series&id=75328&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=JaeF7]]>
- TV: STD - tv.sd - 19 - + Now.You.See.Me.2.2016.TRUEFRENCH.720p.BluRay.x264-PKPTRS + Sun, 08 Jan 2017 12:56:08 +0200 + https://api.omgwtfnzbs.me/nzb/?id=aFTn5&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=aFTn5&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.36 GB
Group: alt.binaries.felfelida
Added to index: 10/12/2016 10:15:44
Added to usenet: 08/01/2017 12:56:08
View NZB: https://omgwtfnzbs.me/details.php?id=aFTn5]]>
+ Movies: HD + movies.hd + 16 +
- Royal.Pains.S04E16.720p.WEB-DL.DD5.1.H.264-NTb - Mon, 17 Dec 2012 22:06:00 +0000 - http://api.omgwtfnzbs.org/sn.php?id=tlyYX&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=tlyYX&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.61 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 22:05:19
Added to usenet: 17/12/2012 22:06:00
Weblink: http://thetvdb.com/?tab=series&id=92411&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=tlyYX]]>
- TV: HD - tv.hd - 20 - + Now.You.See.Me.2.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:55:45 +0200 + https://api.omgwtfnzbs.me/nzb/?id=xvkz2&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=xvkz2&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.11 GB
Group: alt.binaries.felfelida
Added to index: 03/12/2016 09:20:25
Added to usenet: 08/01/2017 12:55:45
View NZB: https://omgwtfnzbs.me/details.php?id=xvkz2]]>
+ Movies: HD + movies.hd + 16 +
- Royal.Pains.S04E15.720p.WEB-DL.DD5.1.H.264-NTb - Mon, 17 Dec 2012 21:57:55 +0000 - http://api.omgwtfnzbs.org/sn.php?id=FJrFr&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=FJrFr&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.59 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:57:32
Added to usenet: 17/12/2012 21:57:55
Weblink: http://thetvdb.com/?tab=series&id=92411&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=FJrFr]]>
- TV: HD - tv.hd - 20 - + Morgan.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:55:10 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Lc2Az&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Lc2Az&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.83 GB
Group: alt.binaries.felfelida
Added to index: 10/12/2016 10:18:39
Added to usenet: 08/01/2017 12:55:10
View NZB: https://omgwtfnzbs.me/details.php?id=Lc2Az]]>
+ Movies: HD + movies.hd + 16 +
- Chainsaw.Gang.S01E06.720p.HDTV.x264-YesTV - Mon, 17 Dec 2012 21:54:29 +0000 - http://api.omgwtfnzbs.org/sn.php?id=OMgpi&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=OMgpi&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 874.25 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:54:04
Added to usenet: 17/12/2012 21:54:29
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=OMgpi]]>
- TV: HD - tv.hd - 20 - + Moms.Night.Out.2014.MULTi.1080p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:54:52 +0200 + https://api.omgwtfnzbs.me/nzb/?id=jIJMw&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=jIJMw&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 9.28 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 06:30:43
Added to usenet: 08/01/2017 12:54:52
View NZB: https://omgwtfnzbs.me/details.php?id=jIJMw]]>
+ Movies: HD + movies.hd + 16 +
- Chainsaw.Gang.S01E05.720p.HDTV.x264-YesTV - Mon, 17 Dec 2012 21:53:07 +0000 - http://api.omgwtfnzbs.org/sn.php?id=9jFDc&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=9jFDc&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 646.35 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:52:35
Added to usenet: 17/12/2012 21:53:07
Weblink: http://thetvdb.com/?tab=series&id=263322&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=9jFDc]]>
- TV: HD - tv.hd - 20 - + Career.Bed.1969.DVDRip.x264-FiCO + Sun, 08 Jan 2017 12:54:28 +0200 + https://api.omgwtfnzbs.me/nzb/?id=6yaYt&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=6yaYt&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 902.56 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 11:52:16
Added to usenet: 08/01/2017 12:54:28
View NZB: https://omgwtfnzbs.me/details.php?id=6yaYt]]>
+ Movies: STD + movies.sd + 15 +
- Redneck.Island.S02E06.720p.HDTV.x264-YesTV - Mon, 17 Dec 2012 21:51:58 +0000 - http://api.omgwtfnzbs.org/sn.php?id=48dBN&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=48dBN&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.38 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:50:34
Added to usenet: 17/12/2012 21:51:58
Weblink: http://thetvdb.com/?tab=series&id=259570&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=48dBN]]>
- TV: HD - tv.hd - 20 - + Mission.Impossible.Rogue.Nation.2015.TrueHD.Atmos.AC3.MULTISUBS.1080p.BluRay.x264.HQ-TUSAHD + Sun, 08 Jan 2017 12:54:06 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Uerkq&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Uerkq&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 16.69 GB
Group: alt.binaries.felfelida
Added to index: 03/12/2016 04:44:07
Added to usenet: 08/01/2017 12:54:06
View NZB: https://omgwtfnzbs.me/details.php?id=Uerkq]]>
+ Movies: HD + movies.hd + 16 +
- Drugs.Inc.S03E07.Hollywood.High.720p.HDTV.x264-YesTV - Mon, 17 Dec 2012 21:49:53 +0000 - http://api.omgwtfnzbs.org/sn.php?id=yY198&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=yY198&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.46 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:47:58
Added to usenet: 17/12/2012 21:49:53
Weblink: http://thetvdb.com/?tab=series&id=174501&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=yY198]]>
- TV: HD - tv.hd - 20 - + Miss.Peregrines.Home.for.Peculiar.Children.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:53:12 +0200 + https://api.omgwtfnzbs.me/nzb/?id=sL8wn&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=sL8wn&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.34 GB
Group: alt.binaries.felfelida
Added to index: 10/12/2016 10:09:56
Added to usenet: 08/01/2017 12:53:12
View NZB: https://omgwtfnzbs.me/details.php?id=sL8wn]]>
+ Movies: HD + movies.hd + 16 +
- Drugs.Inc.S03E07.Hollywood.High.HDTV.x264-YesTV - Mon, 17 Dec 2012 21:45:17 +0000 - http://api.omgwtfnzbs.org/sn.php?id=VH7uw&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=VH7uw&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 476.18 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:44:51
Added to usenet: 17/12/2012 21:45:17
Weblink: http://thetvdb.com/?tab=series&id=174501&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=VH7uw]]>
- TV: STD - tv.sd - 19 - + Miracles.from.Heaven.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:52:40 +0200 + https://api.omgwtfnzbs.me/nzb/?id=G1Q8k&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=G1Q8k&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.felfelida
Added to index: 02/12/2016 05:21:58
Added to usenet: 08/01/2017 12:52:40
View NZB: https://omgwtfnzbs.me/details.php?id=G1Q8k]]>
+ Movies: HD + movies.hd + 16 +
- Tron.Uprising.S01E13.720p.WEB-DL.H.264.DD5.1-iT00NZ - Mon, 17 Dec 2012 21:44:59 +0000 - http://api.omgwtfnzbs.org/sn.php?id=eJxUn&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=eJxUn&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 807.76 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:44:13
Added to usenet: 17/12/2012 21:44:59
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=eJxUn]]>
- TV: HD - tv.hd - 20 - + Miles.Ahead.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:51:15 +0200 + https://api.omgwtfnzbs.me/nzb/?id=vnMUP&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=vnMUP&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.06 GB
Group: alt.binaries.felfelida
Added to index: 02/12/2016 05:17:15
Added to usenet: 08/01/2017 12:51:15
View NZB: https://omgwtfnzbs.me/details.php?id=vnMUP]]>
+ Movies: HD + movies.hd + 16 +
- The.Gadget.Show.World.Tour.S02E07.720p.HDTV.x264-FTP - Mon, 17 Dec 2012 21:27:34 +0000 - http://api.omgwtfnzbs.org/sn.php?id=Wawxv&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=Wawxv&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.28 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 21:27:23
Added to usenet: 17/12/2012 21:27:34
Weblink: http://thetvdb.com/?tab=series&id=258440&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=Wawxv]]>
- TV: HD - tv.hd - 20 - + Mike.and.Dave.Need.Wedding.Dates.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:50:54 +0200 + https://api.omgwtfnzbs.me/nzb/?id=JTdgM&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=JTdgM&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 04/12/2016 06:25:11
Added to usenet: 08/01/2017 12:50:54
View NZB: https://omgwtfnzbs.me/details.php?id=JTdgM]]>
+ Movies: HD + movies.hd + 16 +
- VH1.Divas.2012.720p.HDTV.x264-2HD - Mon, 17 Dec 2012 20:57:15 +0000 - http://api.omgwtfnzbs.org/sn.php?id=Tdz1e&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=Tdz1e&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 3.3 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 20:56:27
Added to usenet: 17/12/2012 20:57:15
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=Tdz1e]]>
- TV: HD - tv.hd - 20 - + Mia.Madre.2015.FRENCH.720p.BluRay.x264-DEAL + Sun, 08 Jan 2017 12:50:30 +0200 + https://api.omgwtfnzbs.me/nzb/?id=h9usJ&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=h9usJ&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.08 GB
Group: alt.binaries.felfelida
Added to index: 15/12/2016 05:54:50
Added to usenet: 08/01/2017 12:50:30
View NZB: https://omgwtfnzbs.me/details.php?id=h9usJ]]>
+ Movies: HD + movies.hd + 16 +
- Bamazon.S01E02.Heart.of.Darkness.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 20:25:17 +0000 - http://api.omgwtfnzbs.org/sn.php?id=hSrC6&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=hSrC6&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 599.56 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 20:31:05
Added to usenet: 17/12/2012 20:25:17
Weblink: http://thetvdb.com/?tab=series&id=263659&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=hSrC6]]>
- TV: STD - tv.sd - 19 - + Mechanic.Resurrection.2016.RERiP.FRENCH.720p.BluRay.x264-ZEST + Sun, 08 Jan 2017 12:50:08 +0200 + https://api.omgwtfnzbs.me/nzb/?id=4qC4G&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=4qC4G&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.82 GB
Group: alt.binaries.felfelida
Added to index: 10/12/2016 07:00:11
Added to usenet: 08/01/2017 12:50:08
View NZB: https://omgwtfnzbs.me/details.php?id=4qC4G]]>
+ Movies: HD + movies.hd + 16 +
- Bamazon.S01E02.Heart.of.Darkness.720p.HDTV.x264-DHD - Mon, 17 Dec 2012 19:35:19 +0000 - http://api.omgwtfnzbs.org/sn.php?id=Iy0YV&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=Iy0YV&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.93 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:33:31
Added to usenet: 17/12/2012 19:35:19
Weblink: http://thetvdb.com/?tab=series&id=263659&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=Iy0YV]]>
- TV: HD - tv.hd - 20 - + Maze.Runner.The.Scorch.Trials.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:49:48 +0200 + https://api.omgwtfnzbs.me/nzb/?id=SWTGD&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=SWTGD&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.36 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:29:53
Added to usenet: 08/01/2017 12:49:48
View NZB: https://omgwtfnzbs.me/details.php?id=SWTGD]]>
+ Movies: HD + movies.hd + 16 +
- Tron.Uprising.S01E13.1080p.WEB-DL.H.264.DD5.1-iT00NZ - Mon, 17 Dec 2012 19:34:42 +0000 - http://api.omgwtfnzbs.org/sn.php?id=S0q8M&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=S0q8M&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.02 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:33:44
Added to usenet: 17/12/2012 19:34:42
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=S0q8M]]>
- TV: HD - tv.hd - 20 - + Marauders.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:49:26 +0200 + https://api.omgwtfnzbs.me/nzb/?id=qCkSA&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=qCkSA&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 03/12/2016 06:33:57
Added to usenet: 08/01/2017 12:49:26
View NZB: https://omgwtfnzbs.me/details.php?id=qCkSA]]>
+ Movies: HD + movies.hd + 16 +
- Robot.Chicken.S06E13.1080p.WEB-DL.H.264.AAC2.0-iT00NZ - Mon, 17 Dec 2012 19:31:14 +0000 - http://api.omgwtfnzbs.org/sn.php?id=MQE67&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=MQE67&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 485.75 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:31:08
Added to usenet: 17/12/2012 19:31:14
Weblink: http://thetvdb.com/?tab=series&id=75734&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=MQE67]]>
- TV: HD - tv.hd - 20 - + Maggie.2015.TRUEFRENCH.720p.BluRay.x264-Ryotox + Sun, 08 Jan 2017 12:48:44 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Dt1e7&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Dt1e7&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.felfelida
Added to index: 10/12/2016 22:13:04
Added to usenet: 08/01/2017 12:48:44
View NZB: https://omgwtfnzbs.me/details.php?id=Dt1e7]]>
+ Movies: HD + movies.hd + 16 +
- Teenage.Mutant.Ninja.Turtles.2012.S01E12.It.Came.From.the.Depths.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 19:31:12 +0000 - http://api.omgwtfnzbs.org/sn.php?id=k6VI4&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=k6VI4&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 141.12 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 19:37:18
Added to usenet: 17/12/2012 19:31:12
Weblink: http://thetvdb.com/?tab=series&id=261451&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=k6VI4]]>
- TV: STD - tv.sd - 19 - + Mad.Max.Fury.Road.2015.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:46:53 +0200 + https://api.omgwtfnzbs.me/nzb/?id=zFa21&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=zFa21&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.12 GB
Group: alt.binaries.felfelida
Added to index: 11/12/2016 01:26:53
Added to usenet: 08/01/2017 12:46:53
View NZB: https://omgwtfnzbs.me/details.php?id=zFa21]]>
+ Movies: HD + movies.hd + 16 +
- Teenage.Mutant.Ninja.Turtles.2012.S01E12.1080p.WEB-DL.H.264.AAC2.0-iT00NZ - Mon, 17 Dec 2012 19:30:55 +0000 - http://api.omgwtfnzbs.org/sn.php?id=7mmU1&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=7mmU1&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 980.75 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:30:42
Added to usenet: 17/12/2012 19:30:55
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=7mmU1]]>
- TV: HD - tv.hd - 20 - + London.Has.Fallen.2016.TRUEFRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 12:46:22 +0200 + https://api.omgwtfnzbs.me/nzb/?id=MvrDy&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=MvrDy&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.12 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 23:06:45
Added to usenet: 08/01/2017 12:46:22
View NZB: https://omgwtfnzbs.me/details.php?id=MvrDy]]>
+ Movies: HD + movies.hd + 16 +
- Bamazon.S01E02.HDTV.x264-KILLERS - Mon, 17 Dec 2012 19:29:18 +0000 - http://api.omgwtfnzbs.org/sn.php?id=eVtFp&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=eVtFp&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 666.34 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:29:11
Added to usenet: 17/12/2012 19:29:18
Weblink: http://thetvdb.com/?tab=series&id=263659&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=eVtFp]]>
- TV: STD - tv.sd - 19 - + Life.On.The.Line.2015.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:45:59 +0200 + https://api.omgwtfnzbs.me/nzb/?id=kc8Pv&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=kc8Pv&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.12 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 06:33:01
Added to usenet: 08/01/2017 12:45:59
View NZB: https://omgwtfnzbs.me/details.php?id=kc8Pv]]>
+ Movies: HD + movies.hd + 16 +
- Cross.Country.Skiing.World.Cup.2012.12.16.Canmore.Womens.Skiathlon.720p.HDTV.x264-SKIS - Mon, 17 Dec 2012 19:28:43 +0000 - http://api.omgwtfnzbs.org/sn.php?id=PsRdj&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=PsRdj&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.84 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 19:28:15
Added to usenet: 17/12/2012 19:28:43
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=PsRdj]]>
- TV: HD - tv.hd - 20 - + Le.Corps.De.Mon.Ennemi.1976.FRENCH.720p.BluRay.x264-DuSS + Sun, 08 Jan 2017 12:45:38 +0200 + https://api.omgwtfnzbs.me/nzb/?id=8IPbs&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=8IPbs&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.38 GB
Group: alt.binaries.movies.french
Added to index: 10/12/2016 08:00:35
Added to usenet: 08/01/2017 12:45:38
View NZB: https://omgwtfnzbs.me/details.php?id=8IPbs]]>
+ Movies: HD + movies.hd + 16 +
- Robot.Chicken.S06E13.Robot.Chickens.Atm.Christmas.Special.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 19:17:22 +0000 - http://api.omgwtfnzbs.org/sn.php?id=cNUlC&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=cNUlC&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 109.35 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 19:23:28
Added to usenet: 17/12/2012 19:17:22
Weblink: http://thetvdb.com/?tab=series&id=75734&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=cNUlC]]>
- TV: STD - tv.sd - 19 - + Last.Knights.2015.TRUEFRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 12:45:11 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Vygnp&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Vygnp&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 27/12/2016 10:06:24
Added to usenet: 08/01/2017 12:45:11
View NZB: https://omgwtfnzbs.me/details.php?id=Vygnp]]>
+ Movies: HD + movies.hd + 16 +
- Bobs.Burgers.S03E09.God.Rest.Ye.Merry.Gentle-Mannequins.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 19:04:10 +0000 - http://api.omgwtfnzbs.org/sn.php?id=LbeeT&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=LbeeT&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 101.75 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 19:10:14
Added to usenet: 17/12/2012 19:04:10
Weblink: http://thetvdb.com/?tab=series&id=194031&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=LbeeT]]>
- TV: STD - tv.sd - 19 - + La.Vallee.1972.FRENCH.720p.BluRay.x264-FiDELiO + Sun, 08 Jan 2017 12:44:43 +0200 + https://api.omgwtfnzbs.me/nzb/?id=texzm&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=texzm&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.11 GB
Group: alt.binaries.movies.french
Added to index: 11/12/2016 23:55:30
Added to usenet: 08/01/2017 12:44:43
View NZB: https://omgwtfnzbs.me/details.php?id=texzm]]>
+ Movies: HD + movies.hd + 16 +
- Ax.Men.S06E02.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 19:01:22 +0000 - http://api.omgwtfnzbs.org/sn.php?id=UeUEK&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=UeUEK&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 730.17 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 19:07:05
Added to usenet: 17/12/2012 19:01:22
Weblink: http://thetvdb.com/?tab=series&id=81578&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=UeUEK]]>
- TV: STD - tv.sd - 19 - + Kind.Hearts.and.Coronets.1949.FRENCH.720p.BluRay.x264-FiDELiO + Sun, 08 Jan 2017 12:44:04 +0200 + https://api.omgwtfnzbs.me/nzb/?id=HLFBj&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=HLFBj&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.movies.french
Added to index: 04/12/2016 02:58:43
Added to usenet: 08/01/2017 12:44:04
View NZB: https://omgwtfnzbs.me/details.php?id=HLFBj]]>
+ Movies: HD + movies.hd + 16 +
- Teenage.Mutant.Ninja.Turtles.2012.S01E12.720p.WEB-DL.H.264.AAC2.0-iT00NZ - Mon, 17 Dec 2012 17:06:46 +0000 - http://api.omgwtfnzbs.org/sn.php?id=BkFcy&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=BkFcy&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 802.96 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 17:06:05
Added to usenet: 17/12/2012 17:06:46
Weblink: http://thetvdb.com/?tab=series&id=261451&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=BkFcy]]>
- TV: HD - tv.hd - 20 - + Kill.Command.2016.FRENCH.720p.BluRay.x264-ZEST + Sun, 08 Jan 2017 12:43:12 +0200 + https://api.omgwtfnzbs.me/nzb/?id=f1WNg&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=f1WNg&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 29/11/2016 07:31:47
Added to usenet: 08/01/2017 12:43:12
View NZB: https://omgwtfnzbs.me/details.php?id=f1WNg]]>
+ Movies: HD + movies.hd + 16 +
- Robot.Chicken.S06E13.720p.WEB-DL.H.264.AAC2.0-iT00NZ - Mon, 17 Dec 2012 16:41:36 +0000 - http://api.omgwtfnzbs.org/sn.php?id=69daj&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=69daj&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 382.44 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 16:41:30
Added to usenet: 17/12/2012 16:41:36
Weblink: http://thetvdb.com/?tab=series&id=75734&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=69daj]]>
- TV: HD - tv.hd - 20 - + Joy.2015.FRENCH.720p.BluRay.x264-PiNKPANTERS + Sun, 08 Jan 2017 12:42:45 +0200 + https://api.omgwtfnzbs.me/nzb/?id=2hnZd&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=2hnZd&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.14 GB
Group: alt.binaries.felfelida
Added to index: 04/12/2016 06:40:26
Added to usenet: 08/01/2017 12:42:45
View NZB: https://omgwtfnzbs.me/details.php?id=2hnZd]]>
+ Movies: HD + movies.hd + 16 +
- Last.Man.Standing.2011.S02E07.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 16:39:12 +0000 - http://api.omgwtfnzbs.org/sn.php?id=rWByd&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=rWByd&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 129.91 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 16:45:18
Added to usenet: 17/12/2012 16:39:12
Weblink: http://thetvdb.com/?tab=series&id=248834&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=rWByd]]>
- TV: STD - tv.sd - 19 - + Jean.de.Florette.1985.720p.BluRay.x264-PFa + Sun, 08 Jan 2017 12:42:23 +0200 + https://api.omgwtfnzbs.me/nzb/?id=QO4la&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=QO4la&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.32 GB
Group: alt.binaries.movies.french
Added to index: 06/12/2016 09:19:17
Added to usenet: 08/01/2017 12:42:23
View NZB: https://omgwtfnzbs.me/details.php?id=QO4la]]>
+ Movies: HD + movies.hd + 16 +
- WWE.Tables.Ladders.and.Chairs.2012.PPV.HDTV.x264-KYR - Mon, 17 Dec 2012 16:28:06 +0000 - http://api.omgwtfnzbs.org/sn.php?id=cskMX&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=cskMX&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 2.34 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 16:25:20
Added to usenet: 17/12/2012 16:28:06
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=cskMX]]>
- TV: STD - tv.sd - 19 - + Jaws.3.1983.FRENCH.720p.BluRay.x264-ULSHD + Sun, 08 Jan 2017 12:41:58 +0200 + https://api.omgwtfnzbs.me/nzb/?id=o4LxX&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=o4LxX&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.movies.french
Added to index: 08/12/2016 23:03:02
Added to usenet: 08/01/2017 12:41:58
View NZB: https://omgwtfnzbs.me/details.php?id=o4LxX]]>
+ Movies: HD + movies.hd + 16 +
- Damages.S05E03.Failure.Is.Failure.720p.WEB-DL.DD5.1.H.264-BS - Mon, 17 Dec 2012 16:19:22 +0000 - http://api.omgwtfnzbs.org/sn.php?id=OFIkR&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=OFIkR&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.05 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 16:17:32
Added to usenet: 17/12/2012 16:19:22
Weblink: http://thetvdb.com/?tab=series&id=80367&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=OFIkR]]>
- TV: HD - tv.hd - 20 - + Jaws.2.1978.FRENCH.720p.BluRay.x264-ULSHD + Sun, 08 Jan 2017 12:41:29 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Bkd9U&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Bkd9U&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.movies.french
Added to index: 10/12/2016 22:34:02
Added to usenet: 08/01/2017 12:41:29
View NZB: https://omgwtfnzbs.me/details.php?id=Bkd9U]]>
+ Movies: HD + movies.hd + 16 +
- CSI.S13E10.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 16:17:48 +0000 - http://api.omgwtfnzbs.org/sn.php?id=XI8KI&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=XI8KI&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 274.77 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 16:23:46
Added to usenet: 17/12/2012 16:17:48
Weblink: http://thetvdb.com/?tab=series&id=233851&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=XI8KI]]>
- TV: STD - tv.sd - 19 - + In.the.Heart.of.the.Sea.2015.TRUEFRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 12:40:42 +0200 + https://api.omgwtfnzbs.me/nzb/?id=ZQuLR&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=ZQuLR&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.08 GB
Group: alt.binaries.felfelida
Added to index: 29/11/2016 23:05:34
Added to usenet: 08/01/2017 12:40:42
View NZB: https://omgwtfnzbs.me/details.php?id=ZQuLR]]>
+ Movies: HD + movies.hd + 16 +
- Damages.S05E02.Have.You.Met.the.Eel.Yet.720p.WEB-DL.DD5.1.H.264-BS - Mon, 17 Dec 2012 16:17:23 +0000 - http://api.omgwtfnzbs.org/sn.php?id=uyPWF&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=uyPWF&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.63 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 16:16:43
Added to usenet: 17/12/2012 16:17:23
Weblink: http://thetvdb.com/?tab=series&id=80367&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=uyPWF]]>
- TV: HD - tv.hd - 20 - + Ils.Sont.Partout.2016.FRENCH.1080p.WEB.H264-SiGeRiS + Sun, 08 Jan 2017 12:39:57 +0200 + https://api.omgwtfnzbs.me/nzb/?id=FCqh6&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=FCqh6&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 4.22 GB
Group: alt.binaries.movies.french
Added to index: 29/11/2016 22:56:32
Added to usenet: 08/01/2017 12:39:57
View NZB: https://omgwtfnzbs.me/details.php?id=FCqh6]]>
+ Movies: HD + movies.hd + 16 +
- Damages.S05E01.You.Want.to.End.This.Once.and.for.All.720p.WEB-DL.DD5.1.H.264-BS - Mon, 17 Dec 2012 16:14:47 +0000 - http://api.omgwtfnzbs.org/sn.php?id=41F66&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=41F66&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.75 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 16:13:48
Added to usenet: 17/12/2012 16:14:47
Weblink: http://thetvdb.com/?tab=series&id=80367&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=41F66]]>
- TV: HD - tv.hd - 20 - + I.Saw.the.Light.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:38:44 +0200 + https://api.omgwtfnzbs.me/nzb/?id=ct7t3&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=ct7t3&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.36 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 06:28:23
Added to usenet: 08/01/2017 12:38:44
View NZB: https://omgwtfnzbs.me/details.php?id=ct7t3]]>
+ Movies: HD + movies.hd + 16 +
- Damages.S05.720p.WEB-DL.DD5.1.H.264 - Mon, 17 Dec 2012 15:44:20 +0000 - http://api.omgwtfnzbs.org/sn.php?id=1sqbT&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=1sqbT&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 18.76 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:26:02
Added to usenet: 17/12/2012 15:44:20
Weblink: http://thetvdb.com/?tab=series&id=80367&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=1sqbT]]>
- TV: HD - tv.hd - 20 - + Hoosiers.1986.FRENCH.720p.BluRay.x264-DuSS + Sun, 08 Jan 2017 12:37:43 +0200 + https://api.omgwtfnzbs.me/nzb/?id=OFgGx&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=OFgGx&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.movies.french
Added to index: 08/12/2016 23:07:15
Added to usenet: 08/01/2017 12:37:43
View NZB: https://omgwtfnzbs.me/details.php?id=OFgGx]]>
+ Movies: HD + movies.hd + 16 +
- Criminal.Minds.S08E11.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 15:21:48 +0000 - http://api.omgwtfnzbs.org/sn.php?id=Hq7GY&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=Hq7GY&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 243.65 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 15:27:51
Added to usenet: 17/12/2012 15:21:48
Weblink: http://thetvdb.com/?tab=series&id=75710&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=Hq7GY]]>
- TV: STD - tv.sd - 19 - + Home.On.The.Range.2004.FRENCH.720p.BluRay.x264.DTS-MUxHD + Sun, 08 Jan 2017 12:37:22 +0200 + https://api.omgwtfnzbs.me/nzb/?id=9cEer&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=9cEer&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 2.56 GB
Group: alt.binaries.movies.french
Added to index: 04/12/2016 02:59:32
Added to usenet: 08/01/2017 12:37:22
View NZB: https://omgwtfnzbs.me/details.php?id=9cEer]]>
+ Movies: HD + movies.hd + 16 +
- Ax.Men.S06E02.720p.HDTV.x264-KILLERS - Mon, 17 Dec 2012 15:21:40 +0000 - http://api.omgwtfnzbs.org/sn.php?id=fWOSV&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=fWOSV&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.93 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:19:52
Added to usenet: 17/12/2012 15:21:40
Weblink: http://thetvdb.com/?tab=series&id=81578&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=fWOSV]]>
- TV: HD - tv.hd - 20 - + Hitman.Agent.47.2015.TRUEFRENCH.720p.BluRay.x264-MELBA + Sun, 08 Jan 2017 12:37:07 +0200 + https://api.omgwtfnzbs.me/nzb/?id=XIVqo&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=XIVqo&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.82 GB
Group: alt.binaries.felfelida
Added to index: 27/12/2016 12:26:04
Added to usenet: 08/01/2017 12:37:07
View NZB: https://omgwtfnzbs.me/details.php?id=XIVqo]]>
+ Movies: HD + movies.hd + 16 +
- Last.Man.Standing.2011.S02E07.720p.WEB-DL.DD5.1.h.264-pcsyndicate - Mon, 17 Dec 2012 15:09:28 +0000 - http://api.omgwtfnzbs.org/sn.php?id=dNzxs&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=dNzxs&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 778.83 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:09:10
Added to usenet: 17/12/2012 15:09:28
Weblink: http://thetvdb.com/?tab=series&id=248834&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=dNzxs]]>
- TV: HD - tv.hd - 20 - + Hitman.Agent.47.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:36:51 +0200 + https://api.omgwtfnzbs.me/nzb/?id=If4Ei&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=If4Ei&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.08 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:35:11
Added to usenet: 08/01/2017 12:36:51
View NZB: https://omgwtfnzbs.me/details.php?id=If4Ei]]>
+ Movies: HD + movies.hd + 16 +
- Last.Man.Standing.2011.S02E06.720p.WEB-DL.DD5.1.h.264-pcsyndicate - Mon, 17 Dec 2012 15:08:45 +0000 - http://api.omgwtfnzbs.org/sn.php?id=mQpXj&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=mQpXj&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 788.79 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:08:33
Added to usenet: 17/12/2012 15:08:45
Weblink: http://thetvdb.com/?tab=series&id=248834&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=mQpXj]]>
- TV: HD - tv.hd - 20 - + Hibou.2016.FRENCH.1080p.WEB.h264-TiMELiNE + Sun, 08 Jan 2017 12:36:24 +0200 + https://api.omgwtfnzbs.me/nzb/?id=gLLQf&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=gLLQf&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.58 GB
Group: alt.binaries.movies.french
Added to index: 10/12/2016 07:42:56
Added to usenet: 08/01/2017 12:36:24
View NZB: https://omgwtfnzbs.me/details.php?id=gLLQf]]>
+ Movies: HD + movies.hd + 16 +
- Last.Man.Standing.2011.S02E05.720p.WEB-DL.DD5.1.h.264-pcsyndicate - Mon, 17 Dec 2012 15:08:03 +0000 - http://api.omgwtfnzbs.org/sn.php?id=XnNvd&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=XnNvd&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 791.55 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:07:40
Added to usenet: 17/12/2012 15:08:03
Weblink: http://thetvdb.com/?tab=series&id=248834&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=XnNvd]]>
- TV: HD - tv.hd - 20 - + Hello.My.Name.Is.Doris.2015.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 12:35:49 +0200 + https://api.omgwtfnzbs.me/nzb/?id=D4SCT&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=D4SCT&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 06:56:54
Added to usenet: 08/01/2017 12:35:49
View NZB: https://omgwtfnzbs.me/details.php?id=D4SCT]]>
+ Movies: HD + movies.hd + 16 +
- Last.Man.Standing.2011.S02E04.720p.WEB-DL.DD5.1.h.264-pcsyndicate - Mon, 17 Dec 2012 15:07:27 +0000 - http://api.omgwtfnzbs.org/sn.php?id=J9wJX&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=J9wJX&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 782.39 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:07:19
Added to usenet: 17/12/2012 15:07:27
Weblink: http://thetvdb.com/?tab=series&id=248834&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=J9wJX]]>
- TV: HD - tv.hd - 20 - + Hell.or.High.Water.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:34:49 +0200 + https://api.omgwtfnzbs.me/nzb/?id=akjOQ&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=akjOQ&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 01/12/2016 06:16:27
Added to usenet: 08/01/2017 12:34:49
View NZB: https://omgwtfnzbs.me/details.php?id=akjOQ]]>
+ Movies: HD + movies.hd + 16 +
- CSI.S13E10.1080p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 15:03:32 +0000 - http://api.omgwtfnzbs.org/sn.php?id=pt35L&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=pt35L&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.88 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 15:02:42
Added to usenet: 17/12/2012 15:03:32
Weblink: http://thetvdb.com/?tab=series&id=233851&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=pt35L]]>
- TV: HD - tv.hd - 20 - + Heist.2015.LIMITED.FRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 12:34:29 +0200 + https://api.omgwtfnzbs.me/nzb/?id=yR0aN&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=yR0aN&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:42:58
Added to usenet: 08/01/2017 12:34:29
View NZB: https://omgwtfnzbs.me/details.php?id=yR0aN]]>
+ Movies: HD + movies.hd + 16 +
- CSI.S13E10.720p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 14:55:24 +0000 - http://api.omgwtfnzbs.org/sn.php?id=2O6Co&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=2O6Co&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.49 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:54:47
Added to usenet: 17/12/2012 14:55:24
Weblink: http://thetvdb.com/?tab=series&id=233851&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=2O6Co]]>
- TV: HD - tv.hd - 20 - + Hail.Caesar.2016.FRENCH.720p.BluRay.x264-MELBA + Sun, 08 Jan 2017 12:33:57 +0200 + https://api.omgwtfnzbs.me/nzb/?id=jnYyH&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=jnYyH&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.felfelida
Added to index: 15/12/2016 05:51:34
Added to usenet: 08/01/2017 12:33:57
View NZB: https://omgwtfnzbs.me/details.php?id=jnYyH]]>
+ Movies: HD + movies.hd + 16 +
- Criminal.Minds.S08E11.1080p.WEB-DL.DD5.1.H264-NFHD - Mon, 17 Dec 2012 14:54:32 +0000 - http://api.omgwtfnzbs.org/sn.php?id=nkeai&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=nkeai&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.84 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:54:24
Added to usenet: 17/12/2012 14:54:32
Weblink: http://thetvdb.com/?tab=series&id=75710&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=nkeai]]>
- TV: HD - tv.hd - 20 - + Ghostbusters.2016.EXTENDED.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 12:33:15 +0200 + https://api.omgwtfnzbs.me/nzb/?id=VA7MB&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=VA7MB&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.08 GB
Group: alt.binaries.felfelida
Added to index: 03/12/2016 23:02:06
Added to usenet: 08/01/2017 12:33:15
View NZB: https://omgwtfnzbs.me/details.php?id=VA7MB]]>
+ Movies: HD + movies.hd + 16 +
- Criminal.Minds.S08E11.720p.WEB-DL.DD5.1.H264-NFHD - Mon, 17 Dec 2012 14:53:29 +0000 - http://api.omgwtfnzbs.org/sn.php?id=wnUAZ&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=wnUAZ&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.44 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:52:56
Added to usenet: 17/12/2012 14:53:29
Weblink: http://thetvdb.com/?tab=series&id=75710&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=wnUAZ]]>
- TV: HD - tv.hd - 20 - + 13.Minutes.2015.SUBFRENCH.720p.BluRay.x264-DuSS + Sun, 08 Jan 2017 12:32:22 +0200 + https://api.omgwtfnzbs.me/nzb/?id=1tE7z&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=1tE7z&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.38 GB
Group: alt.binaries.movies.french
Added to index: 04/12/2016 06:09:35
Added to usenet: 08/01/2017 12:32:22
View NZB: https://omgwtfnzbs.me/details.php?id=1tE7z]]>
+ Movies: HD + movies.hd + 16 +
- Ax.Men.S06E02.HDTV.x264-KILLERS - Mon, 17 Dec 2012 14:45:18 +0000 - http://api.omgwtfnzbs.org/sn.php?id=rCs8K&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=rCs8K&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 908.3 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:45:11
Added to usenet: 17/12/2012 14:45:18
Weblink: http://thetvdb.com/?tab=series&id=81578&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=rCs8K]]>
- TV: STD - tv.sd - 19 - + George.Harrison.Living.in.the.Material.World.2011.Part1.SUBFRENCH.720p.BluRay.x264-FiDELiO + Sun, 08 Jan 2017 12:30:49 +0200 + https://api.omgwtfnzbs.me/nzb/?id=hfATe&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=hfATe&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.2 GB
Group: alt.binaries.movies.french
Added to index: 01/12/2016 06:58:06
Added to usenet: 08/01/2017 12:30:49
View NZB: https://omgwtfnzbs.me/details.php?id=hfATe]]>
+ Movies: HD + movies.hd + 16 +
- Two.and.a.Half.Men.S10E11.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 14:37:12 +0000 - http://api.omgwtfnzbs.org/sn.php?id=cZQWE&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=cZQWE&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 150.91 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 14:43:18
Added to usenet: 17/12/2012 14:37:12
Weblink: http://thetvdb.com/?tab=series&id=72227&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=cZQWE]]>
- TV: STD - tv.sd - 19 - + Fantastic.Four.2015.TRUEFRENCH.720p.BluRay.x264-Goatlove + Sun, 08 Jan 2017 12:29:06 +0200 + https://api.omgwtfnzbs.me/nzb/?id=5LRfb&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=5LRfb&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.07 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 05:47:13
Added to usenet: 08/01/2017 12:29:06
View NZB: https://omgwtfnzbs.me/details.php?id=5LRfb]]>
+ Movies: HD + movies.hd + 16 +
- Two.and.a.Half.Men.S10E11.1080p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 14:28:06 +0000 - http://api.omgwtfnzbs.org/sn.php?id=lcG65&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=lcG65&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 997 MB
Group: alt.binaries.etc
Added to index: 17/12/2012 14:27:39
Added to usenet: 17/12/2012 14:28:06
Weblink: http://thetvdb.com/?tab=series&id=72227&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=lcG65]]>
- TV: HD - tv.hd - 20 - + En.Busca.De.Marsupilami.2012.SPANiSH.MULTi.1080p.BluRay.x264-TORO + Sun, 08 Jan 2017 11:57:24 +0200 + https://api.omgwtfnzbs.me/nzb/?id=A7UGC&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=A7UGC&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 10.27 GB
Group: alt.binaries.movies.french
Added to index: 16/12/2016 22:56:11
Added to usenet: 08/01/2017 11:57:24
View NZB: https://omgwtfnzbs.me/details.php?id=A7UGC]]>
+ Movies: HD + movies.hd + 16 +
- EPL.2012.12.15.Queens.Park.Rangers.Vs.Fulham.720p.HDTV.x264-W4F - Mon, 17 Dec 2012 14:26:25 +0000 - http://api.omgwtfnzbs.org/sn.php?id=WyoTz&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=WyoTz&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.76 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:26:04
Added to usenet: 17/12/2012 14:26:25
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=WyoTz]]>
- TV: HD - tv.hd - 20 - + En.Busca.De.Marsupilami.2012.SPANiSH.MULTi.720p.BluRay.x264-TORO + Sun, 08 Jan 2017 11:56:17 +0200 + https://api.omgwtfnzbs.me/nzb/?id=JAJq3&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=JAJq3&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.43 GB
Group: alt.binaries.movies.french
Added to index: 14/12/2016 23:24:51
Added to usenet: 08/01/2017 11:56:17
View NZB: https://omgwtfnzbs.me/details.php?id=JAJq3]]>
+ Movies: HD + movies.hd + 16 +
- Two.and.a.Half.Men.S10E11.720p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 14:24:01 +0000 - http://api.omgwtfnzbs.org/sn.php?id=ILMrt&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=ILMrt&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 814.36 MB
Group: alt.binaries.etc
Added to index: 17/12/2012 14:23:31
Added to usenet: 17/12/2012 14:24:01
Weblink: http://thetvdb.com/?tab=series&id=72227&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=ILMrt]]>
- TV: HD - tv.hd - 20 - + Eddie.the.Eagle.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 11:51:32 +0200 + https://api.omgwtfnzbs.me/nzb/?id=bFyzl&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=bFyzl&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 15/12/2016 05:49:10
Added to usenet: 08/01/2017 11:51:32
View NZB: https://omgwtfnzbs.me/details.php?id=bFyzl]]>
+ Movies: HD + movies.hd + 16 +
- Dont.Trust.The.B----.In.Apartment.23.S02E06.1080p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 14:15:40 +0000 - http://api.omgwtfnzbs.org/sn.php?id=ROCRk&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=ROCRk&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 948.82 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:15:24
Added to usenet: 17/12/2012 14:15:40
Weblink: http://thetvdb.com/?tab=series&id=248812&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=ROCRk]]>
- TV: HD - tv.hd - 20 - + Dont.Breathe.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 11:51:00 +0200 + https://api.omgwtfnzbs.me/nzb/?id=ywGBi&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=ywGBi&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.82 GB
Group: alt.binaries.felfelida
Added to index: 04/12/2016 01:49:16
Added to usenet: 08/01/2017 11:51:00
View NZB: https://omgwtfnzbs.me/details.php?id=ywGBi]]>
+ Movies: HD + movies.hd + 16 +
- Dont.Trust.The.B----.In.Apartment.23.S02E06.720p.WEB-DL.DD5.1.H.264-NFHD - Mon, 17 Dec 2012 14:11:29 +0000 - http://api.omgwtfnzbs.org/sn.php?id=y7JDY&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=y7JDY&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 800.34 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 14:10:37
Added to usenet: 17/12/2012 14:11:29
Weblink: http://thetvdb.com/?tab=series&id=248812&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=y7JDY]]>
- TV: HD - tv.hd - 20 - + Dirty.Grandpa.2016.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 11:50:04 +0200 + https://api.omgwtfnzbs.me/nzb/?id=eiCXN&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=eiCXN&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.11 GB
Group: alt.binaries.felfelida
Added to index: 29/11/2016 08:48:32
Added to usenet: 08/01/2017 11:50:04
View NZB: https://omgwtfnzbs.me/details.php?id=eiCXN]]>
+ Movies: HD + movies.hd + 16 +
- WWE.Tables.Ladders.and.Chairs.2012.PPV.720p.HDTV.x264-KYR - Mon, 17 Dec 2012 13:42:12 +0000 - http://api.omgwtfnzbs.org/sn.php?id=1ZWlA&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=1ZWlA&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 6.51 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 13:40:11
Added to usenet: 17/12/2012 13:42:12
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=1ZWlA]]>
- TV: HD - tv.hd - 20 - + Debarquement.Immediat.2016.FRENCH.1080p.WEB.h264-TiMELiNE + Sun, 08 Jan 2017 11:47:55 +0200 + https://api.omgwtfnzbs.me/nzb/?id=nl27E&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=nl27E&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.92 GB
Group: alt.binaries.movies.french
Added to index: 10/12/2016 06:18:33
Added to usenet: 08/01/2017 11:47:55
View NZB: https://omgwtfnzbs.me/details.php?id=nl27E]]>
+ Movies: HD + movies.hd + 16 +
- Ben.10.Omniverse.S01E14.Blukic.and.Driba.Go.To.Mr.Smooth.480p.WEB-DL.x264-mSD - Mon, 17 Dec 2012 13:29:42 +0000 - http://api.omgwtfnzbs.org/sn.php?id=51kIm&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=51kIm&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 115.21 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 13:35:47
Added to usenet: 17/12/2012 13:29:42
Weblink: http://thetvdb.com/?tab=series&id=260995&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=51kIm]]>
- TV: STD - tv.sd - 19 - + Daddys.Home.2015.TRUEFRENCH.720p.BluRay.x264-PiNKPANTERS + Sun, 08 Jan 2017 11:47:24 +0200 + https://api.omgwtfnzbs.me/nzb/?id=BRJJB&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=BRJJB&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.82 GB
Group: alt.binaries.felfelida
Added to index: 29/11/2016 23:20:30
Added to usenet: 08/01/2017 11:47:24
View NZB: https://omgwtfnzbs.me/details.php?id=BRJJB]]>
+ Movies: HD + movies.hd + 16 +
- The.Horses.of.McBride.2012.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 13:07:12 +0000 - http://api.omgwtfnzbs.org/sn.php?id=tqWEI&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=tqWEI&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 517.24 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 13:13:05
Added to usenet: 17/12/2012 13:07:12
Weblink: http://lookpic.com/O/i2/395/Vl9n9DEY.jpeg[/IMG
View NZB: http://omgwtfnzbs.org/details.php?id=tqWEI]]>
- TV: STD - tv.sd - 19 - + Confirmation.2016.FRENCH.720p.BluRay.x264-VENUE + Sun, 08 Jan 2017 11:47:03 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Z7aV8&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Z7aV8&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.32 GB
Group: alt.binaries.felfelida
Added to index: 02/12/2016 05:13:09
Added to usenet: 08/01/2017 11:47:03
View NZB: https://omgwtfnzbs.me/details.php?id=Z7aV8]]>
+ Movies: HD + movies.hd + 16 +
- Royal.Pains.S04E15E16.PROPER.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 12:38:32 +0000 - http://api.omgwtfnzbs.org/sn.php?id=OREVT&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=OREVT&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 449.31 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 12:44:26
Added to usenet: 17/12/2012 12:38:32
Weblink: http://thetvdb.com/?tab=series&id=92411&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=OREVT]]>
- TV: STD - tv.sd - 19 - + Ben.Hur.2016.TRUEFRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 11:43:55 +0200 + https://api.omgwtfnzbs.me/nzb/?id=wnrh5&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=wnrh5&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.12 GB
Group: alt.binaries.felfelida
Added to index: 04/12/2016 01:47:16
Added to usenet: 08/01/2017 11:43:55
View NZB: https://omgwtfnzbs.me/details.php?id=wnrh5]]>
+ Movies: HD + movies.hd + 16 +
- The.Bachelorette.Special.Ashley.and.J.Ps.Wedding.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 12:03:56 +0000 - http://api.omgwtfnzbs.org/sn.php?id=MIq0q&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=MIq0q&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 660.6 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 12:09:44
Added to usenet: 17/12/2012 12:03:56
Weblink: http://lookpic.com/O/i2/871/MNxJjwjR.jpeg[/IMG
View NZB: http://omgwtfnzbs.org/details.php?id=MIq0q]]>
- TV: STD - tv.sd - 19 - + Bastille.Day.2016.FRENCH.720p.BluRay.x264-AiRLiNE + Sun, 08 Jan 2017 11:43:05 +0200 + https://api.omgwtfnzbs.me/nzb/?id=5qhGw&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=5qhGw&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.1 GB
Group: alt.binaries.felfelida
Added to index: 24/10/2016 08:48:11
Added to usenet: 08/01/2017 11:43:05
View NZB: https://omgwtfnzbs.me/details.php?id=5qhGw]]>
+ Movies: HD + movies.hd + 16 +
- Finding.Bigfoot.S03E06.Bigfoot.and.Wolverines.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:43:23 +0000 - http://api.omgwtfnzbs.org/sn.php?id=3ObPU&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=3ObPU&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 329.13 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:49:20
Added to usenet: 17/12/2012 11:43:23
Weblink: http://thetvdb.com/?tab=series&id=249235&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=3ObPU]]>
- TV: STD - tv.sd - 19 - + American.Ultra.2015.FRENCH.720p.BluRay.x264-LOST + Sun, 08 Jan 2017 11:42:18 +0200 + https://api.omgwtfnzbs.me/nzb/?id=0G5Eh&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=0G5Eh&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.78 GB
Group: alt.binaries.felfelida
Added to index: 06/12/2016 09:18:28
Added to usenet: 08/01/2017 11:42:18
View NZB: https://omgwtfnzbs.me/details.php?id=0G5Eh]]>
+ Movies: HD + movies.hd + 16 +
- Oliver.Stones.Untold.History.Of.The.United.States.S01E04.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:35:52 +0000 - http://api.omgwtfnzbs.org/sn.php?id=CRQzL&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=CRQzL&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 466.2 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:41:44
Added to usenet: 17/12/2012 11:35:52
Weblink: http://thetvdb.com/?tab=series&id=263532&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=CRQzL]]>
- TV: STD - tv.sd - 19 - + Alvin.and.the.Chipmunks.The.Road.Chip.2015.TRUEFRENCH.720p.BluRay.x264-PiNKPANTERS + Sun, 08 Jan 2017 11:41:16 +0200 + https://api.omgwtfnzbs.me/nzb/?id=NwMQe&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=NwMQe&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.83 GB
Group: alt.binaries.felfelida
Added to index: 15/12/2016 05:42:04
Added to usenet: 08/01/2017 11:41:16
View NZB: https://omgwtfnzbs.me/details.php?id=NwMQe]]>
+ Movies: HD + movies.hd + 16 +
- The.Fith.Estate.2012.11.16.Left.For.Dead.720p.HDTV.x264-TWG - Mon, 17 Dec 2012 11:32:54 +0000 - http://api.omgwtfnzbs.org/sn.php?id=LUGZC&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=LUGZC&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.04 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 11:29:30
Added to usenet: 17/12/2012 11:32:54
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=LUGZC]]>
- TV: HD - tv.hd - 20 - + Destroy.All.Monsters.1968.1080p.BluRay.x264-SADPANDA + Sun, 08 Jan 2017 08:19:34 +0200 + https://api.omgwtfnzbs.me/nzb/?id=0xGb4&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=0xGb4&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 8.7 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 07:12:46
Added to usenet: 08/01/2017 08:19:34
View NZB: https://omgwtfnzbs.me/details.php?id=0xGb4]]>
+ Movies: HD + movies.hd + 16 +
- The.Fith.Estate.2012.11.23.Lance.Armstrong.Master.Of.Spin.720p.HDTV.x264-TWG - Mon, 17 Dec 2012 11:32:13 +0000 - http://api.omgwtfnzbs.org/sn.php?id=jAXl9&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=jAXl9&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.27 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 11:31:22
Added to usenet: 17/12/2012 11:32:13
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=jAXl9]]>
- TV: HD - tv.hd - 20 - + Distance.Between.Dreams.2016.iNTERNAL.1080p.WEBRip.x264-13 + Sun, 08 Jan 2017 07:27:03 +0200 + https://api.omgwtfnzbs.me/nzb/?id=UjPQb&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=UjPQb&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.84 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 06:24:20
Added to usenet: 08/01/2017 07:27:03
View NZB: https://omgwtfnzbs.me/details.php?id=UjPQb]]>
+ Movies: HD + movies.hd + 16 +
- Curiosity.S02E10.What.Destroyed.the.Hindenburg.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:24:42 +0000 - http://api.omgwtfnzbs.org/sn.php?id=dZviu&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=dZviu&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 315.97 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:26:21
Added to usenet: 17/12/2012 11:24:42
Weblink: http://thetvdb.com/?tab=series&id=250572&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=dZviu]]>
- TV: STD - tv.sd - 19 - + Distance.Between.Dreams.2016.iNTERNAL.720p.WEBRip.x264-13 + Sun, 08 Jan 2017 07:13:18 +0200 + https://api.omgwtfnzbs.me/nzb/?id=Sb0vy&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=Sb0vy&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.22 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 06:10:17
Added to usenet: 08/01/2017 07:13:18
View NZB: https://omgwtfnzbs.me/details.php?id=Sb0vy]]>
+ Movies: HD + movies.hd + 16 +
- The.Horses.of.McBride.2012.720p.HDTV.x264-2HD - Mon, 17 Dec 2012 11:24:42 +0000 - http://api.omgwtfnzbs.org/sn.php?id=1GCur&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=1GCur&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.59 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 11:23:11
Added to usenet: 17/12/2012 11:24:42
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=1GCur]]>
- TV: HD - tv.hd - 20 - + Distance.Between.Dreams.2016.iNTERNAL.WEBRip.x264-13 + Sun, 08 Jan 2017 06:59:47 +0200 + https://api.omgwtfnzbs.me/nzb/?id=QScRL&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=QScRL&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 1.05 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 05:57:24
Added to usenet: 08/01/2017 06:59:47
View NZB: https://omgwtfnzbs.me/details.php?id=QScRL]]>
+ Movies: STD + movies.sd + 15 +
- Peep.Show.S08E04.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:16:50 +0000 - http://api.omgwtfnzbs.org/sn.php?id=VqvC2&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=VqvC2&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 133.76 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:22:54
Added to usenet: 17/12/2012 11:16:50
Weblink: http://thetvdb.com/?tab=series&id=71656&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=VqvC2]]>
- TV: STD - tv.sd - 19 - + Destroy.All.Monsters.1968.REAL.READNFO.BDRip.x264-VoMiT + Sun, 08 Jan 2017 06:32:49 +0200 + https://api.omgwtfnzbs.me/nzb/?id=apH4B&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=apH4B&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 885.99 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 05:30:51
Added to usenet: 08/01/2017 06:32:49
View NZB: https://omgwtfnzbs.me/details.php?id=apH4B]]>
+ Movies: STD + movies.sd + 15 +
- Royal.Pains.S04E15E16.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:13:38 +0000 - http://api.omgwtfnzbs.org/sn.php?id=BcrXh&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=BcrXh&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 474.45 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:19:31
Added to usenet: 17/12/2012 11:13:38
Weblink: http://thetvdb.com/?tab=series&id=92411&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=BcrXh]]>
- TV: STD - tv.sd - 19 - + Destroy.All.Monsters.1968.720p.BluRay.x264-SADPANDA + Sun, 08 Jan 2017 06:27:17 +0200 + https://api.omgwtfnzbs.me/nzb/?id=yVYG8&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=yVYG8&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 3.72 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 05:23:58
Added to usenet: 08/01/2017 06:27:17
View NZB: https://omgwtfnzbs.me/details.php?id=yVYG8]]>
+ Movies: HD + movies.hd + 16 +
- Strictly.Come.Dancing.S10E22.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 11:02:01 +0000 - http://api.omgwtfnzbs.org/sn.php?id=TiWhP&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=TiWhP&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 1 GB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 11:07:22
Added to usenet: 17/12/2012 11:02:01
Weblink: http://thetvdb.com/?tab=series&id=83127&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=TiWhP]]>
- TV: STD - tv.sd - 19 - + The.Brain.That.Wouldnt.Die.1962.OAR.BDRip.x264-VoMiT + Sun, 08 Jan 2017 06:18:27 +0200 + https://api.omgwtfnzbs.me/nzb/?id=YgsZY&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=YgsZY&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 993.5 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 05:16:32
Added to usenet: 08/01/2017 06:18:27
View NZB: https://omgwtfnzbs.me/details.php?id=YgsZY]]>
+ Movies: STD + movies.sd + 15 +
- Survivor.S25E15.Reunion.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 10:38:13 +0000 - http://api.omgwtfnzbs.org/sn.php?id=hXOrr&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=hXOrr&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 216.49 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 10:44:14
Added to usenet: 17/12/2012 10:38:13
Weblink: http://thetvdb.com/?tab=series&id=76733&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=hXOrr]]>
- TV: STD - tv.sd - 19 - + Coin.Heist.2017.WEBRip.X264-DEFLATE + Sun, 08 Jan 2017 06:04:01 +0200 + https://api.omgwtfnzbs.me/nzb/?id=NVeV4&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=NVeV4&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 779.85 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 05:01:51
Added to usenet: 08/01/2017 06:04:01
View NZB: https://omgwtfnzbs.me/details.php?id=NVeV4]]>
+ Movies: STD + movies.sd + 15 +
- Strictly.Come.Dancing.S10E23.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 10:32:15 +0000 - http://api.omgwtfnzbs.org/sn.php?id=bwmpc&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=bwmpc&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 413.76 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 10:38:10
Added to usenet: 17/12/2012 10:32:15
Weblink: http://thetvdb.com/?tab=series&id=83127&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=bwmpc]]>
- TV: STD - tv.sd - 19 - + Keeping.Up.With.The.Joneses.2016.REAL.REPACK.1080p.BluRay.x264-DRONES + Sun, 08 Jan 2017 04:33:31 +0200 + https://api.omgwtfnzbs.me/nzb/?id=aVxDs&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=aVxDs&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 8.82 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 03:30:47
Added to usenet: 08/01/2017 04:33:31
View NZB: https://omgwtfnzbs.me/details.php?id=aVxDs]]>
+ Movies: HD + movies.hd + 16 +
- Tron.Uprising.S01E13.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 10:22:39 +0000 - http://api.omgwtfnzbs.org/sn.php?id=u2RzK&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=u2RzK&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 152.83 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 10:28:43
Added to usenet: 17/12/2012 10:22:39
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=u2RzK]]>
- TV: STD - tv.sd - 19 - + Keeping.Up.With.The.Joneses.2016.REAL.REPACK.720p.BluRay.x264-DRONES + Sun, 08 Jan 2017 03:51:11 +0200 + https://api.omgwtfnzbs.me/nzb/?id=4I63P&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=4I63P&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.29 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 02:48:06
Added to usenet: 08/01/2017 03:51:11
View NZB: https://omgwtfnzbs.me/details.php?id=4I63P]]>
+ Movies: HD + movies.hd + 16 +
- The.Rolling.Stones.Live.One.More.Shot.PPV.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 10:18:56 +0000 - http://api.omgwtfnzbs.org/sn.php?id=oRpx5&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=oRpx5&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 1.88 GB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 10:13:24
Added to usenet: 17/12/2012 10:18:56
Weblink: http://lookpic.com/O/i2/1911/mc9I2FoX.jpeg[/IMG
View NZB: http://omgwtfnzbs.org/details.php?id=oRpx5]]>
- TV: STD - tv.sd - 19 - + Keeping.Up.With.The.Joneses.2016.REAL.REPACK.BDRip.x264-DRONES + Sun, 08 Jan 2017 03:39:16 +0200 + https://api.omgwtfnzbs.me/nzb/?id=YsoKa&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=YsoKa&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 798.64 MB
Group: alt.binaries.moovee
Added to index: 08/01/2017 02:37:32
Added to usenet: 08/01/2017 03:39:16
View NZB: https://omgwtfnzbs.me/details.php?id=YsoKa]]>
+ Movies: STD + movies.sd + 15 +
- The.Bachelorette.Special.Ashley.and.J.Ps.Wedding.720p.HDTV.x264-2HD - Mon, 17 Dec 2012 10:16:15 +0000 - http://api.omgwtfnzbs.org/sn.php?id=6XV6n&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=6XV6n&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 3.09 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 10:14:43
Added to usenet: 17/12/2012 10:16:15
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=6XV6n]]>
- TV: HD - tv.hd - 20 - + USS.Indianapolis.Men.of.Courage.2016.1080p.BluRay.x264-EiDER + Sun, 08 Jan 2017 03:00:29 +0200 + https://api.omgwtfnzbs.me/nzb/?id=kZI0P&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=kZI0P&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 10.04 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 01:56:21
Added to usenet: 08/01/2017 03:00:29
View NZB: https://omgwtfnzbs.me/details.php?id=kZI0P]]>
+ Movies: HD + movies.hd + 16 +
- Finding.Bigfoot.S03E06.Bigfoot.and.Wolverines.720p.HDTV.x264-DHD - Mon, 17 Dec 2012 10:01:45 +0000 - http://api.omgwtfnzbs.org/sn.php?id=OdAGV&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=OdAGV&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.27 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 09:59:38
Added to usenet: 17/12/2012 10:01:45
Weblink: http://thetvdb.com/?tab=series&id=249235&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=OdAGV]]>
- TV: HD - tv.hd - 20 - + The.Front.Page.1931.1080p.BluRay.x264-CiNEFiLE + Sun, 08 Jan 2017 02:56:25 +0200 + https://api.omgwtfnzbs.me/nzb/?id=8FZCM&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=8FZCM&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 9.2 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 01:53:40
Added to usenet: 08/01/2017 02:56:25
View NZB: https://omgwtfnzbs.me/details.php?id=8FZCM]]>
+ Movies: HD + movies.hd + 16 +
- VH1.Divas.2012.HDTV.x264-2HD - Mon, 17 Dec 2012 09:39:00 +0000 - http://api.omgwtfnzbs.org/sn.php?id=S5No7&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=S5No7&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 1.21 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 09:37:21
Added to usenet: 17/12/2012 09:39:00
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=S5No7]]>
- TV: STD - tv.sd - 19 - + The.Front.Page.1931.720p.BluRay.x264-CiNEFiLE + Sun, 08 Jan 2017 02:48:44 +0200 + https://api.omgwtfnzbs.me/nzb/?id=o1VY1&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=o1VY1&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 5.09 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 01:46:38
Added to usenet: 08/01/2017 02:48:44
View NZB: https://omgwtfnzbs.me/details.php?id=o1VY1]]>
+ Movies: HD + movies.hd + 16 +
- Match.Of.The.Day.Two.2012.12.16.480p.HDTV.x264-mSD - Mon, 17 Dec 2012 09:36:29 +0000 - http://api.omgwtfnzbs.org/sn.php?id=DRwC1&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=DRwC1&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 610.31 MB
Group: alt.binaries.multimedia
Added to index: 17/12/2012 09:42:34
Added to usenet: 17/12/2012 09:36:29
Weblink: http://lookpic.com/O/i2/1718/8EOt9D9x.jpeg[/IMG
View NZB: http://omgwtfnzbs.org/details.php?id=DRwC1]]>
- TV: STD - tv.sd - 19 - + Battleground.1949.1080p.BluRay.x264-SiNNERS + Sun, 08 Jan 2017 02:32:20 +0200 + https://api.omgwtfnzbs.me/nzb/?id=TnRtg&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=TnRtg&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 13.82 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 01:26:16
Added to usenet: 08/01/2017 02:32:20
View NZB: https://omgwtfnzbs.me/details.php?id=TnRtg]]>
+ Movies: HD + movies.hd + 16 +
- The.Horses.of.McBride.2012.HDTV.x264-2HD - Mon, 17 Dec 2012 09:13:27 +0000 - http://api.omgwtfnzbs.org/sn.php?id=b8DNy&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=b8DNy&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 913.02 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 09:11:30
Added to usenet: 17/12/2012 09:13:27
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=b8DNy]]>
- TV: STD - tv.sd - 19 - -
+ Battleground.1949.720p.BluRay.x264-SiNNERS + Sun, 08 Jan 2017 02:24:46 +0200 + https://api.omgwtfnzbs.me/nzb/?id=9ZOFL&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=9ZOFL&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 7.55 GB
Group: alt.binaries.moovee
Added to index: 08/01/2017 01:21:45
Added to usenet: 08/01/2017 02:24:46
View NZB: https://omgwtfnzbs.me/details.php?id=9ZOFL]]>
+ Movies: HD + movies.hd + 16 + +
- Homeland.S02E12.720p.WEB-DL.DD5.1.H.264-DON - Mon, 17 Dec 2012 08:33:56 +0000 - http://api.omgwtfnzbs.org/sn.php?id=kB2xp&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=kB2xp&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.3 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 08:33:22
Added to usenet: 17/12/2012 08:33:56
Weblink: http://thetvdb.com/?tab=series&id=247897&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=kB2xp]]>
- TV: HD - tv.hd - 20 - -
+ Children.of.Men.2006.iNTERNAL.1080p.BluRay.x264-LiBRARiANS + Sun, 08 Jan 2017 00:28:33 +0200 + https://api.omgwtfnzbs.me/nzb/?id=4zHPm&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=4zHPm&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 12.88 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 23:21:55
Added to usenet: 08/01/2017 00:28:33
View NZB: https://omgwtfnzbs.me/details.php?id=4zHPm]]>
+ Movies: HD + movies.hd + 16 + + - Tron.Uprising.S01E13.720p.HDTV.x264-2HD - Mon, 17 Dec 2012 08:25:53 +0000 - http://api.omgwtfnzbs.org/sn.php?id=YzotL&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=YzotL&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 975.2 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 08:25:16
Added to usenet: 17/12/2012 08:25:53
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=YzotL]]>
- TV: HD - tv.hd - 20 - -
+ Children.of.Men.2006.iNTERNAL.BDRip.x264-LiBRARiANS + Sun, 08 Jan 2017 00:17:59 +0200 + https://api.omgwtfnzbs.me/nzb/?id=klDlR&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=klDlR&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 1.37 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 23:15:28
Added to usenet: 08/01/2017 00:17:59
View NZB: https://omgwtfnzbs.me/details.php?id=klDlR]]>
+ Movies: STD + movies.sd + 15 + + - Tron.Uprising.S01E13.HDTV.x264-2HD - Mon, 17 Dec 2012 08:24:55 +0000 - http://api.omgwtfnzbs.org/sn.php?id=i2eTC&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=i2eTC&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 269.56 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 08:24:23
Added to usenet: 17/12/2012 08:24:55
Weblink: http://thetvdb.com/?tab=series&id=258480&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=i2eTC]]>
- TV: STD - tv.sd - 19 - -
+ Children.of.Men.2006.PROPER.720p.BluRay.x264-SADPANDA + Sat, 07 Jan 2017 22:20:51 +0200 + https://api.omgwtfnzbs.me/nzb/?id=sAuS0&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=sAuS0&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.29 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 21:18:21
Added to usenet: 07/01/2017 22:20:51
View NZB: https://omgwtfnzbs.me/details.php?id=sAuS0]]>
+ Movies: HD + movies.hd + 16 + + - Homeland.S02E12.The.Choice.720p.WEB-DL.DD5.1.H.264-DON - Mon, 17 Dec 2012 08:03:24 +0000 - http://api.omgwtfnzbs.org/sn.php?id=WrQOi&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=WrQOi&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 2.41 GB
Group: alt.binaries.tv
Added to index: 17/12/2012 07:11:03
Added to usenet: 17/12/2012 08:03:24
Weblink: http://thetvdb.com/?tab=series&id=247897&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=WrQOi]]>
- TV: HD - tv.hd - 20 - -
+ Camino.2008.1080p.BluRay.DD5.1.x264-DON + Sat, 07 Jan 2017 21:09:01 +0200 + https://api.omgwtfnzbs.me/nzb/?id=PPGp9&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=PPGp9&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 18.69 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 20:03:14
Added to usenet: 07/01/2017 21:09:01
View NZB: https://omgwtfnzbs.me/details.php?id=PPGp9]]>
+ Movies: HD + movies.hd + 16 + + - T.I.and.Tiny.The.Family.Hustle.S02E16.HDTV.x264-CRiMSON - Mon, 17 Dec 2012 07:38:05 +0000 - http://api.omgwtfnzbs.org/sn.php?id=aJdwK&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=aJdwK&user=nzbdrone&api=nzbdrone - Category: TV: STD
Size: 222.29 MB
Group: alt.binaries.teevee
Added to index: 17/12/2012 07:37:25
Added to usenet: 17/12/2012 07:38:05
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=aJdwK]]>
- TV: STD - tv.sd - 19 - -
+ Charlie.St.Cloud.2010.1080p.BluRay.DD5.1.x264-DON + Sat, 07 Jan 2017 20:38:12 +0200 + https://api.omgwtfnzbs.me/nzb/?id=fMXUE&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=fMXUE&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 13.13 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 19:33:26
Added to usenet: 07/01/2017 20:38:12
View NZB: https://omgwtfnzbs.me/details.php?id=fMXUE]]>
+ Movies: HD + movies.hd + 16 + + - Curiosity.S02E10.What.Destroyed.the.Hindenburg.720p.HDTV.x264-DHD - Mon, 17 Dec 2012 07:38:05 +0000 - http://api.omgwtfnzbs.org/sn.php?id=CdMkN&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=CdMkN&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 1.18 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 07:36:22
Added to usenet: 17/12/2012 07:38:05
Weblink: http://thetvdb.com/?tab=series&id=250572&lid=7
View NZB: http://omgwtfnzbs.org/details.php?id=CdMkN]]>
- TV: HD - tv.hd - 20 - -
+ USS.Indianapolis.Men.of.Courage.2016.720p.BluRay.x264-EiDER + Sat, 07 Jan 2017 19:03:29 +0200 + https://api.omgwtfnzbs.me/nzb/?id=fYTFG&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=fYTFG&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 6.26 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 18:00:32
Added to usenet: 07/01/2017 19:03:29
View NZB: https://omgwtfnzbs.me/details.php?id=fYTFG]]>
+ Movies: HD + movies.hd + 16 + + - EPL.2012.12.16.West.Bromwich.Albion.Vs.West.Ham.United.720p.HDTV.x264-FAIRPLAY - Mon, 17 Dec 2012 07:29:04 +0000 - http://api.omgwtfnzbs.org/sn.php?id=LgCKE&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=LgCKE&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 3.62 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 07:28:35
Added to usenet: 17/12/2012 07:29:04
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=LgCKE]]>
- TV: HD - tv.hd - 20 - -
+ USS.Indianapolis.Men.of.Courage.2016.BDRip.x264-EiDER + Sat, 07 Jan 2017 18:52:00 +0200 + https://api.omgwtfnzbs.me/nzb/?id=6gxyp&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=6gxyp&user=nzbdrone&api=nzbdrone + Category: Movies: STD
Size: 1.27 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 17:50:00
Added to usenet: 07/01/2017 18:52:00
View NZB: https://omgwtfnzbs.me/details.php?id=6gxyp]]>
+ Movies: STD + movies.sd + 15 + + - NFL.2012.12.16.Broncos.vs.Ravens.720p.HDTV.x264-BAJSKORV - Mon, 17 Dec 2012 07:26:56 +0000 - http://api.omgwtfnzbs.org/sn.php?id=jMTWB&user=nzbdrone&api=nzbdrone - http://api.omgwtfnzbs.org/sn.php?id=jMTWB&user=nzbdrone&api=nzbdrone - Category: TV: HD
Size: 5.93 GB
Group: alt.binaries.teevee
Added to index: 17/12/2012 07:25:16
Added to usenet: 17/12/2012 07:26:56
Weblink: N/A
View NZB: http://omgwtfnzbs.org/details.php?id=jMTWB]]>
- TV: HD - tv.hd - 20 - + End.of.a.Gun.2016.1080p.BluRay.DD5.1.x264-TayTO + Sat, 07 Jan 2017 18:24:21 +0200 + https://api.omgwtfnzbs.me/nzb/?id=tNLPi&user=nzbdrone&api=nzbdrone + https://api.omgwtfnzbs.me/nzb/?id=tNLPi&user=nzbdrone&api=nzbdrone + Category: Movies: HD
Size: 10.96 GB
Group: alt.binaries.moovee
Added to index: 07/01/2017 17:20:34
Added to usenet: 07/01/2017 18:24:21
View NZB: https://omgwtfnzbs.me/details.php?id=tNLPi]]>
+ Movies: HD + movies.hd + 16 +
diff --git a/src/NzbDrone.Core.Test/IndexerTests/OmgwtfnzbsTests/OmgwtfnzbsFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/OmgwtfnzbsTests/OmgwtfnzbsFixture.cs index c5542b943..d79a61236 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/OmgwtfnzbsTests/OmgwtfnzbsFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/OmgwtfnzbsTests/OmgwtfnzbsFixture.cs @@ -42,14 +42,14 @@ namespace NzbDrone.Core.Test.IndexerTests.OmgwtfnzbsTests var releaseInfo = releases.First(); - releaseInfo.Title.Should().Be("Stephen.Fry.Gadget.Man.S01E05.HDTV.x264-C4TV"); + releaseInfo.Title.Should().Be("Un.Petit.Boulot.2016.FRENCH.720p.BluRay.DTS.x264-LOST"); releaseInfo.DownloadProtocol.Should().Be(DownloadProtocol.Usenet); - releaseInfo.DownloadUrl.Should().Be("http://api.omgwtfnzbs.org/sn.php?id=OAl4g&user=nzbdrone&api=nzbdrone"); - releaseInfo.InfoUrl.Should().Be("http://omgwtfnzbs.org/details.php?id=OAl4g"); + releaseInfo.DownloadUrl.Should().Be("https://api.omgwtfnzbs.me/nzb/?id=8a2Bw&user=nzbdrone&api=nzbdrone"); + releaseInfo.InfoUrl.Should().Be("https://omgwtfnzbs.me/details.php?id=8a2Bw"); releaseInfo.CommentUrl.Should().BeNullOrEmpty(); releaseInfo.Indexer.Should().Be(Subject.Definition.Name); - releaseInfo.PublishDate.Should().Be(DateTime.Parse("2012/12/17 23:30:13")); - releaseInfo.Size.Should().Be(236822906); + releaseInfo.PublishDate.Should().Be(DateTime.Parse("2017/01/09 00:16:54")); + releaseInfo.Size.Should().Be(5354909355); } } } diff --git a/src/NzbDrone.Core/Datastore/Migration/115_update_movie_sorttitle.cs b/src/NzbDrone.Core/Datastore/Migration/115_update_movie_sorttitle.cs new file mode 100644 index 000000000..593665455 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/115_update_movie_sorttitle.cs @@ -0,0 +1,45 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(115)] + public class update_movie_sorttitle : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + // Create.Column("SortTitle").OnTable("Series").AsString().Nullable(); + Execute.WithConnection(SetSortTitles); + } + + private void SetSortTitles(IDbConnection conn, IDbTransaction tran) + { + using (IDbCommand getSeriesCmd = conn.CreateCommand()) + { + getSeriesCmd.Transaction = tran; + getSeriesCmd.CommandText = @"SELECT Id, Title FROM Movies"; + using (IDataReader seriesReader = getSeriesCmd.ExecuteReader()) + { + while (seriesReader.Read()) + { + var id = seriesReader.GetInt32(0); + var title = seriesReader.GetString(1); + + var sortTitle = Parser.Parser.NormalizeTitle(title).ToLower(); + + using (IDbCommand updateCmd = conn.CreateCommand()) + { + updateCmd.Transaction = tran; + updateCmd.CommandText = "UPDATE Movies SET SortTitle = ? WHERE Id = ?"; + updateCmd.AddParameter(sortTitle); + updateCmd.AddParameter(id); + + updateCmd.ExecuteNonQuery(); + } + } + } + } + } + } +} diff --git a/src/NzbDrone.Core/Datastore/Migration/116_update_movie_sorttitle_again.cs b/src/NzbDrone.Core/Datastore/Migration/116_update_movie_sorttitle_again.cs new file mode 100644 index 000000000..45666b1c2 --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/116_update_movie_sorttitle_again.cs @@ -0,0 +1,44 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(116)] + public class update_movie_sorttitle_again : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Execute.WithConnection(SetSortTitles); + } + + private void SetSortTitles(IDbConnection conn, IDbTransaction tran) + { + using (IDbCommand getSeriesCmd = conn.CreateCommand()) + { + getSeriesCmd.Transaction = tran; + getSeriesCmd.CommandText = @"SELECT Id, Title FROM Movies"; + using (IDataReader seriesReader = getSeriesCmd.ExecuteReader()) + { + while (seriesReader.Read()) + { + var id = seriesReader.GetInt32(0); + var title = seriesReader.GetString(1); + + var sortTitle = Parser.Parser.NormalizeTitle(title).ToLower(); + + using (IDbCommand updateCmd = conn.CreateCommand()) + { + updateCmd.Transaction = tran; + updateCmd.CommandText = "UPDATE Movies SET SortTitle = ? WHERE Id = ?"; + updateCmd.AddParameter(sortTitle); + updateCmd.AddParameter(id); + + updateCmd.ExecuteNonQuery(); + } + } + } + } + } + } +} diff --git a/src/NzbDrone.Core/Datastore/Migration/117_update_movie_file.cs b/src/NzbDrone.Core/Datastore/Migration/117_update_movie_file.cs new file mode 100644 index 000000000..ee1db828d --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/117_update_movie_file.cs @@ -0,0 +1,52 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(117)] + public class update_movie_file : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Create.Column("Edition").OnTable("MovieFiles").AsString().Nullable(); + //Execute.WithConnection(SetSortTitles); + } + + private void SetSortTitles(IDbConnection conn, IDbTransaction tran) + { + using (IDbCommand getSeriesCmd = conn.CreateCommand()) + { + getSeriesCmd.Transaction = tran; + getSeriesCmd.CommandText = @"SELECT Id, RelativePath FROM MovieFiles"; + using (IDataReader seriesReader = getSeriesCmd.ExecuteReader()) + { + while (seriesReader.Read()) + { + var id = seriesReader.GetInt32(0); + var relativePath = seriesReader.GetString(1); + + var result = Parser.Parser.ParseMovieTitle(relativePath); + + var edition = ""; + + if (result != null) + { + edition = Parser.Parser.ParseMovieTitle(relativePath).Edition; + } + + using (IDbCommand updateCmd = conn.CreateCommand()) + { + updateCmd.Transaction = tran; + updateCmd.CommandText = "UPDATE MovieFiles SET Edition = ? WHERE Id = ?"; + updateCmd.AddParameter(edition); + updateCmd.AddParameter(id); + + updateCmd.ExecuteNonQuery(); + } + } + } + } + } + } +} diff --git a/src/NzbDrone.Core/Datastore/Migration/118_update_movie_slug.cs b/src/NzbDrone.Core/Datastore/Migration/118_update_movie_slug.cs new file mode 100644 index 000000000..f7026ae5d --- /dev/null +++ b/src/NzbDrone.Core/Datastore/Migration/118_update_movie_slug.cs @@ -0,0 +1,71 @@ +using System.Data; +using FluentMigrator; +using NzbDrone.Core.Datastore.Migration.Framework; +using System.Text; +using System.Text.RegularExpressions; + +namespace NzbDrone.Core.Datastore.Migration +{ + [Migration(118)] + public class update_movie_slug : NzbDroneMigrationBase + { + protected override void MainDbUpgrade() + { + Execute.WithConnection(SetTitleSlug); + } + + private void SetTitleSlug(IDbConnection conn, IDbTransaction tran) + { + using (IDbCommand getSeriesCmd = conn.CreateCommand()) + { + getSeriesCmd.Transaction = tran; + getSeriesCmd.CommandText = @"SELECT Id, Title, Year FROM Movies"; + using (IDataReader seriesReader = getSeriesCmd.ExecuteReader()) + { + while (seriesReader.Read()) + { + var id = seriesReader.GetInt32(0); + var title = seriesReader.GetString(1); + var year = seriesReader.GetInt32(2); + + var titleSlug = ToUrlSlug(title + "-" + year); + + using (IDbCommand updateCmd = conn.CreateCommand()) + { + updateCmd.Transaction = tran; + updateCmd.CommandText = "UPDATE Movies SET TitleSlug = ? WHERE Id = ?"; + updateCmd.AddParameter(titleSlug); + updateCmd.AddParameter(id); + + updateCmd.ExecuteNonQuery(); + } + } + } + } + } + + public static string ToUrlSlug(string value) + { + //First to lower case + value = value.ToLowerInvariant(); + + //Remove all accents + var bytes = Encoding.GetEncoding("Cyrillic").GetBytes(value); + value = Encoding.ASCII.GetString(bytes); + + //Replace spaces + value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled); + + //Remove invalid chars + value = Regex.Replace(value, @"[^a-z0-9\s-_]", "", RegexOptions.Compiled); + + //Trim dashes from end + value = value.Trim('-', '_'); + + //Replace double occurences of - or _ + value = Regex.Replace(value, @"([-_]){2,}", "$1", RegexOptions.Compiled); + + return value; + } + } +} \ No newline at end of file diff --git a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs index 882105a9d..67117ca85 100644 --- a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs +++ b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs @@ -24,8 +24,6 @@ namespace NzbDrone.Core.DecisionEngine { CompareQuality, CompareProtocol, - CompareEpisodeCount, - CompareEpisodeNumber, ComparePeersIfTorrent, CompareAgeIfUsenet, CompareSize @@ -56,6 +54,12 @@ namespace NzbDrone.Core.DecisionEngine private int CompareQuality(DownloadDecision x, DownloadDecision y) { + if (x.IsForMovie && y.IsForMovie) + { + return CompareAll(CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => remoteEpisode.Movie.Profile.Value.Items.FindIndex(v => v.Quality == remoteEpisode.ParsedMovieInfo.Quality.Quality)), + CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => remoteEpisode.ParsedMovieInfo.Quality.Revision.Real), + CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => remoteEpisode.ParsedMovieInfo.Quality.Revision.Version)); + } return CompareAll(CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.Series.Profile.Value.Items.FindIndex(v => v.Quality == remoteEpisode.ParsedEpisodeInfo.Quality.Quality)), CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.ParsedEpisodeInfo.Quality.Revision.Real), CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.ParsedEpisodeInfo.Quality.Revision.Version)); @@ -63,6 +67,7 @@ namespace NzbDrone.Core.DecisionEngine private int CompareProtocol(DownloadDecision x, DownloadDecision y) { + var result = CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => { var delayProfile = _delayProfileService.BestForTags(remoteEpisode.Series.Tags); @@ -70,13 +75,22 @@ namespace NzbDrone.Core.DecisionEngine return downloadProtocol == delayProfile.PreferredProtocol; }); + if (x.IsForMovie) + { + result = CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => + { + var delayProfile = _delayProfileService.BestForTags(remoteEpisode.Movie.Tags); + var downloadProtocol = remoteEpisode.Release.DownloadProtocol; + return downloadProtocol == delayProfile.PreferredProtocol; + }); + } + return result; } private int CompareEpisodeCount(DownloadDecision x, DownloadDecision y) { - return CompareAll(CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.ParsedEpisodeInfo.FullSeason), - CompareByReverse(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.Episodes.Count)); + return 0; } private int CompareEpisodeNumber(DownloadDecision x, DownloadDecision y) @@ -88,20 +102,20 @@ namespace NzbDrone.Core.DecisionEngine { // Different protocols should get caught when checking the preferred protocol, // since we're dealing with the same series in our comparisions - if (x.RemoteEpisode.Release.DownloadProtocol != DownloadProtocol.Torrent || - y.RemoteEpisode.Release.DownloadProtocol != DownloadProtocol.Torrent) + if (x.RemoteMovie.Release.DownloadProtocol != DownloadProtocol.Torrent || + y.RemoteMovie.Release.DownloadProtocol != DownloadProtocol.Torrent) { return 0; } return CompareAll( - CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => + CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => { var seeders = TorrentInfo.GetSeeders(remoteEpisode.Release); return seeders.HasValue && seeders.Value > 0 ? Math.Round(Math.Log10(seeders.Value)) : 0; }), - CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => + CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => { var peers = TorrentInfo.GetPeers(remoteEpisode.Release); @@ -117,7 +131,7 @@ namespace NzbDrone.Core.DecisionEngine return 0; } - return CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => + return CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => { var ageHours = remoteEpisode.Release.AgeHours; var age = remoteEpisode.Release.Age; @@ -145,7 +159,7 @@ namespace NzbDrone.Core.DecisionEngine { // TODO: Is smaller better? Smaller for usenet could mean no par2 files. - return CompareBy(x.RemoteEpisode, y.RemoteEpisode, remoteEpisode => remoteEpisode.Release.Size.Round(200.Megabytes())); + return CompareBy(x.RemoteMovie, y.RemoteMovie, remoteEpisode => remoteEpisode.Release.Size.Round(200.Megabytes())); } } } diff --git a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs index 5e3b0d824..ec7513482 100644 --- a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs +++ b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs @@ -265,7 +265,6 @@ namespace NzbDrone.Core.DecisionEngine e.Data.Add("parsed", remoteEpisode.ParsedEpisodeInfo.ToJson()); _logger.Error(e, "Couldn't evaluate decision on " + remoteEpisode.Release.Title + ", with spec: " + spec.GetType().Name); return new Rejection(string.Format("{0}: {1}", spec.GetType().Name, e.Message));//TODO UPDATE SPECS! - return null; } return null; diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs index 9a1e7ca36..08995e4d2 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs @@ -64,7 +64,7 @@ namespace NzbDrone.Core.DecisionEngine.Specifications if (!_qualityUpgradableSpecification.CutoffNotMet(subject.Movie.Profile, remoteEpisode.ParsedMovieInfo.Quality, subject.ParsedMovieInfo.Quality)) { - return Decision.Reject("Quality for release in queue already meets cutoff: {0}", remoteEpisode.ParsedEpisodeInfo.Quality); + return Decision.Reject("Quality for release in queue already meets cutoff: {0}", remoteEpisode.ParsedMovieInfo.Quality); } _logger.Debug("Checking if release is higher quality than queued release. Queued quality is: {0}", remoteEpisode.ParsedMovieInfo.Quality); diff --git a/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackholeSettings.cs b/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackholeSettings.cs index d05ee7f22..a716a3b8d 100644 --- a/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackholeSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackholeSettings.cs @@ -26,10 +26,10 @@ namespace NzbDrone.Core.Download.Clients.Blackhole private static readonly TorrentBlackholeSettingsValidator Validator = new TorrentBlackholeSettingsValidator(); - [FieldDefinition(0, Label = "Torrent Folder", Type = FieldType.Path, HelpText = "Folder in which Sonarr will store the .torrent file")] + [FieldDefinition(0, Label = "Torrent Folder", Type = FieldType.Path, HelpText = "Folder in which Radarr will store the .torrent file")] public string TorrentFolder { get; set; } - [FieldDefinition(1, Label = "Watch Folder", Type = FieldType.Path, HelpText = "Folder from which Sonarr should import completed downloads")] + [FieldDefinition(1, Label = "Watch Folder", Type = FieldType.Path, HelpText = "Folder from which Radarr should import completed downloads")] public string WatchFolder { get; set; } [DefaultValue(false)] @@ -39,7 +39,7 @@ namespace NzbDrone.Core.Download.Clients.Blackhole [DefaultValue(false)] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] - [FieldDefinition(3, Label = "Read Only", Type = FieldType.Checkbox, HelpText = "Instead of moving files this will instruct Sonarr to Copy or Hardlink (depending on settings/system configuration)")] + [FieldDefinition(3, Label = "Read Only", Type = FieldType.Checkbox, HelpText = "Instead of moving files this will instruct Radarr to Copy or Hardlink (depending on settings/system configuration)")] public bool ReadOnly { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/Blackhole/UsenetBlackholeSettings.cs b/src/NzbDrone.Core/Download/Clients/Blackhole/UsenetBlackholeSettings.cs index b2ff88149..59a8e6a0f 100644 --- a/src/NzbDrone.Core/Download/Clients/Blackhole/UsenetBlackholeSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Blackhole/UsenetBlackholeSettings.cs @@ -19,10 +19,10 @@ namespace NzbDrone.Core.Download.Clients.Blackhole { private static readonly UsenetBlackholeSettingsValidator Validator = new UsenetBlackholeSettingsValidator(); - [FieldDefinition(0, Label = "Nzb Folder", Type = FieldType.Path, HelpText = "Folder in which Sonarr will store the .nzb file")] + [FieldDefinition(0, Label = "Nzb Folder", Type = FieldType.Path, HelpText = "Folder in which Radarr will store the .nzb file")] public string NzbFolder { get; set; } - [FieldDefinition(1, Label = "Watch Folder", Type = FieldType.Path, HelpText = "Folder from which Sonarr should import completed downloads")] + [FieldDefinition(1, Label = "Watch Folder", Type = FieldType.Path, HelpText = "Folder from which Radarr should import completed downloads")] public string WatchFolder { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs index 6312672a6..831c31b4f 100644 --- a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs +++ b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs @@ -31,25 +31,17 @@ namespace NzbDrone.Core.Download.Clients.Deluge _proxy = proxy; } - protected override string AddFromMagnetLink(RemoteMovie remoteEpisode, string hash, string magnetLink) + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { var actualHash = _proxy.AddTorrentFromMagnet(magnetLink, Settings); - if (!Settings.TvCategory.IsNullOrWhiteSpace()) + if (!Settings.MovieCategory.IsNullOrWhiteSpace()) { - _proxy.SetLabel(actualHash, Settings.TvCategory, Settings); + _proxy.SetLabel(actualHash, Settings.MovieCategory, Settings); } _proxy.SetTorrentConfiguration(actualHash, "remove_at_ratio", false, Settings); - /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)DelugePriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)DelugePriority.First) - { - _proxy.MoveTorrentToTopInQueue(actualHash, Settings); - }*/ - return actualHash.ToUpper(); } @@ -57,66 +49,24 @@ namespace NzbDrone.Core.Download.Clients.Deluge { var actualHash = _proxy.AddTorrentFromFile(filename, fileContent, Settings); - if (!Settings.TvCategory.IsNullOrWhiteSpace()) + if (!Settings.MovieCategory.IsNullOrWhiteSpace()) { - _proxy.SetLabel(actualHash, Settings.TvCategory, Settings); + _proxy.SetLabel(actualHash, Settings.MovieCategory, Settings); } _proxy.SetTorrentConfiguration(actualHash, "remove_at_ratio", false, Settings); - /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)DelugePriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)DelugePriority.First) - { - _proxy.MoveTorrentToTopInQueue(actualHash, Settings); - }*/ - return actualHash.ToUpper(); } protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink) { - var actualHash = _proxy.AddTorrentFromMagnet(magnetLink, Settings); - - if (!Settings.TvCategory.IsNullOrWhiteSpace()) - { - _proxy.SetLabel(actualHash, Settings.TvCategory, Settings); - } - - _proxy.SetTorrentConfiguration(actualHash, "remove_at_ratio", false, Settings); - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)DelugePriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)DelugePriority.First) - { - _proxy.MoveTorrentToTopInQueue(actualHash, Settings); - } - - return actualHash.ToUpper(); + throw new NotImplementedException("Episodes are not working with Radarr"); } protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent) { - var actualHash = _proxy.AddTorrentFromFile(filename, fileContent, Settings); - - if (!Settings.TvCategory.IsNullOrWhiteSpace()) - { - _proxy.SetLabel(actualHash, Settings.TvCategory, Settings); - } - - _proxy.SetTorrentConfiguration(actualHash, "remove_at_ratio", false, Settings); - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)DelugePriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)DelugePriority.First) - { - _proxy.MoveTorrentToTopInQueue(actualHash, Settings); - } - - return actualHash.ToUpper(); + throw new NotImplementedException("Episodes are not working with Radarr"); } public override string Name => "Deluge"; @@ -127,9 +77,9 @@ namespace NzbDrone.Core.Download.Clients.Deluge try { - if (!Settings.TvCategory.IsNullOrWhiteSpace()) + if (!Settings.MovieCategory.IsNullOrWhiteSpace()) { - torrents = _proxy.GetTorrentsByLabel(Settings.TvCategory, Settings); + torrents = _proxy.GetTorrentsByLabel(Settings.MovieCategory, Settings); } else { @@ -149,7 +99,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge var item = new DownloadClientItem(); item.DownloadId = torrent.Hash.ToUpper(); item.Title = torrent.Name; - item.Category = Settings.TvCategory; + item.Category = Settings.MovieCategory; item.DownloadClient = Definition.Name; @@ -280,7 +230,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge private ValidationFailure TestCategory() { - if (Settings.TvCategory.IsNullOrWhiteSpace()) + if (Settings.MovieCategory.IsNullOrWhiteSpace()) { return null; } @@ -297,16 +247,16 @@ namespace NzbDrone.Core.Download.Clients.Deluge var labels = _proxy.GetAvailableLabels(Settings); - if (!labels.Contains(Settings.TvCategory)) + if (!labels.Contains(Settings.MovieCategory)) { - _proxy.AddLabel(Settings.TvCategory, Settings); + _proxy.AddLabel(Settings.MovieCategory, Settings); labels = _proxy.GetAvailableLabels(Settings); - if (!labels.Contains(Settings.TvCategory)) + if (!labels.Contains(Settings.MovieCategory)) { - return new NzbDroneValidationFailure("TvCategory", "Configuration of label failed") + return new NzbDroneValidationFailure("MovieCategory", "Configuration of label failed") { - DetailedDescription = "Sonarr as unable to add the label to Deluge." + DetailedDescription = "Radarr as unable to add the label to Deluge." }; } } diff --git a/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs b/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs index 73bc0212a..a7175dff6 100644 --- a/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Deluge/DelugeSettings.cs @@ -12,7 +12,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge RuleFor(c => c.Host).ValidHost(); RuleFor(c => c.Port).GreaterThan(0); - RuleFor(c => c.TvCategory).Matches("^[-a-z]*$").WithMessage("Allowed characters a-z and -"); + RuleFor(c => c.MovieCategory).Matches("^[-a-z]*$").WithMessage("Allowed characters a-z and -"); } } @@ -25,7 +25,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge Host = "localhost"; Port = 8112; Password = "deluge"; - TvCategory = "movie-radarr"; + MovieCategory = "movie-radarr"; } [FieldDefinition(0, Label = "Host", Type = FieldType.Textbox)] @@ -41,15 +41,9 @@ namespace NzbDrone.Core.Download.Clients.Deluge public string Password { get; set; } [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] - public string TvCategory { get; set; } + public string MovieCategory { get; set; } - [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] - public int RecentTvPriority { get; set; } - - [FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(DelugePriority), HelpText = "Priority to use when grabbing episodes that aired over 14 days ago")] - public int OlderTvPriority { get; set; } - - [FieldDefinition(7, Label = "Use SSL", Type = FieldType.Checkbox)] + [FieldDefinition(5, Label = "Use SSL", Type = FieldType.Checkbox)] public bool UseSsl { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs b/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs index 411624c9d..749ef9d04 100644 --- a/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/NzbVortex/NzbVortexSettings.cs @@ -43,7 +43,7 @@ namespace NzbDrone.Core.Download.Clients.NzbVortex [FieldDefinition(2, Label = "API Key", Type = FieldType.Textbox)] public string ApiKey { get; set; } - [FieldDefinition(3, Label = "Group", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional")] + [FieldDefinition(3, Label = "Group", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] public string TvCategory { get; set; } [FieldDefinition(4, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbVortexPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] diff --git a/src/NzbDrone.Core/Download/Clients/Nzbget/Nzbget.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/Nzbget.cs index c358040f2..754e67abd 100644 --- a/src/NzbDrone.Core/Download/Clients/Nzbget/Nzbget.cs +++ b/src/NzbDrone.Core/Download/Clients/Nzbget/Nzbget.cs @@ -337,7 +337,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget return new NzbDroneValidationFailure(string.Empty, "NzbGet setting KeepHistory should be greater than 0") { InfoLink = string.Format("http://{0}:{1}/", Settings.Host, Settings.Port), - DetailedDescription = "NzbGet setting KeepHistory is set to 0. Which prevents Sonarr from seeing completed downloads." + DetailedDescription = "NzbGet setting KeepHistory is set to 0. Which prevents Radarr from seeing completed downloads." }; } diff --git a/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs index 5aeef86b4..3321c7671 100644 --- a/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Nzbget/NzbgetSettings.cs @@ -45,7 +45,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget [FieldDefinition(3, Label = "Password", Type = FieldType.Password)] public string Password { get; set; } - [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional")] + [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] public string TvCategory { get; set; } [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(NzbgetPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs index 4d4dc47db..5db723ff0 100644 --- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs @@ -33,81 +33,35 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink) { - _proxy.AddTorrentFromUrl(magnetLink, Settings); - - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) - { - _proxy.SetTorrentLabel(hash.ToLower(), Settings.TvCategory, Settings); - } - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)QBittorrentPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)QBittorrentPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); - } - - return hash; + throw new NotImplementedException("Episodes are not working with Radarr"); } protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, Byte[] fileContent) { - _proxy.AddTorrentFromFile(filename, fileContent, Settings); - - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) - { - _proxy.SetTorrentLabel(hash.ToLower(), Settings.TvCategory, Settings); - } - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)QBittorrentPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)QBittorrentPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); - } - - return hash; + throw new NotImplementedException("Episodes are not working with Radarr"); } - protected override string AddFromMagnetLink(RemoteMovie remoteEpisode, string hash, string magnetLink) + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { _proxy.AddTorrentFromUrl(magnetLink, Settings); - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { - _proxy.SetTorrentLabel(hash.ToLower(), Settings.TvCategory, Settings); + _proxy.SetTorrentLabel(hash.ToLower(), Settings.MovieCategory, Settings); } - /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)QBittorrentPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)QBittorrentPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); - }*/ //TODO: Maybe reimplement for movies - return hash; } - protected override string AddFromTorrentFile(RemoteMovie remoteEpisode, string hash, string filename, Byte[] fileContent) + protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, Byte[] fileContent) { _proxy.AddTorrentFromFile(filename, fileContent, Settings); - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { - _proxy.SetTorrentLabel(hash.ToLower(), Settings.TvCategory, Settings); + _proxy.SetTorrentLabel(hash.ToLower(), Settings.MovieCategory, Settings); } - /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)QBittorrentPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)QBittorrentPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash.ToLower(), Settings); - }*/ - return hash; } @@ -236,7 +190,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent else if (version < 6) { // API version 6 introduced support for labels - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { return new NzbDroneValidationFailure("Category", "Category is not supported") { @@ -244,7 +198,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent }; } } - else if (Settings.TvCategory.IsNullOrWhiteSpace()) + else if (Settings.MovieCategory.IsNullOrWhiteSpace()) { // warn if labels are supported, but category is not provided return new NzbDroneValidationFailure("TvCategory", "Category is recommended") diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentProxy.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentProxy.cs index e00c57585..be4ca16c5 100644 --- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentProxy.cs +++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentProxy.cs @@ -58,8 +58,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent public List GetTorrents(QBittorrentSettings settings) { var request = BuildRequest(settings).Resource("/query/torrents") - .AddQueryParam("label", settings.TvCategory) - .AddQueryParam("category", settings.TvCategory); + .AddQueryParam("label", settings.MovieCategory) + .AddQueryParam("category", settings.MovieCategory); var response = ProcessRequest>(request, settings); diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs index d139d244b..c02619f2f 100644 --- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrentSettings.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent { Host = "localhost"; Port = 9091; - TvCategory = "movie-radarr"; + MovieCategory = "movie-radarr"; } [FieldDefinition(0, Label = "Host", Type = FieldType.Textbox)] @@ -38,16 +38,9 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent public string Password { get; set; } [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] - public string TvCategory { get; set; } + public string MovieCategory { get; set; } - //Todo: update this shit. - [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] - public int RecentTvPriority { get; set; } - - [FieldDefinition(6, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(QBittorrentPriority), HelpText = "Priority to use when grabbing episodes that aired over 14 days ago")] - public int OlderTvPriority { get; set; } - - [FieldDefinition(7, Label = "Use SSL", Type = FieldType.Checkbox, HelpText = "Use a secure connection. See Options -> Web UI -> 'Use HTTPS instead of HTTP' in qBittorrent.")] + [FieldDefinition(5, Label = "Use SSL", Type = FieldType.Checkbox, HelpText = "Use a secure connection. See Options -> Web UI -> 'Use HTTPS instead of HTTP' in qBittorrent.")] public bool UseSsl { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs index bc32aedb1..52fef65b0 100644 --- a/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs +++ b/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs @@ -30,13 +30,13 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd } // patch can be a number (releases) or 'x' (git) - private static readonly Regex VersionRegex = new Regex(@"(?\d+)\.(?\d+)\.(?\d+|x)(?.*)", RegexOptions.Compiled); + private static readonly Regex VersionRegex = new Regex(@"(?\d+)\.(?\d+)\.(?\d+|x)", RegexOptions.Compiled); protected override string AddFromNzbFile(RemoteEpisode remoteEpisode, string filename, byte[] fileContents) { var category = Settings.TvCategory; var priority = remoteEpisode.IsRecentEpisode() ? Settings.RecentTvPriority : Settings.OlderTvPriority; - + var response = _proxy.DownloadNzb(fileContents, filename, category, priority, Settings); if (response != null && response.Ids.Any()) @@ -284,110 +284,103 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd failures.AddIfNotNull(TestCategory()); } - private bool HasVersion(int major, int minor, int patch = 0, string candidate = null) + private bool HasVersion(int major, int minor, int patch = 0) { - candidate = candidate ?? string.Empty; - - var version = _proxy.GetVersion(Settings); - var parsed = VersionRegex.Match(version); + var rawVersion = _proxy.GetVersion(Settings); + var version = ParseVersion(rawVersion); - int actualMajor; - int actualMinor; - int actualPatch; - string actualCandidate; - - if (!parsed.Success) + if (version == null) { - if (!version.Equals("develop", StringComparison.InvariantCultureIgnoreCase)) - { - return false; - } - - actualMajor = 1; - actualMinor = 1; - actualPatch = 0; - actualCandidate = null; - } - - else - { - actualMajor = Convert.ToInt32(parsed.Groups["major"].Value); - actualMinor = Convert.ToInt32(parsed.Groups["minor"].Value); - actualPatch = Convert.ToInt32(parsed.Groups["patch"].Value.Replace("x", "")); - actualCandidate = parsed.Groups["candidate"].Value.ToUpper(); + return false; } - if (actualMajor > major) + if (version.Major > major) { return true; } - else if (actualMajor < major) + else if (version.Major < major) { return false; } - if (actualMinor > minor) + if (version.Minor > minor) { return true; } - else if (actualMinor < minor) + else if (version.Minor < minor) { return false; } - if (actualPatch > patch) + if (version.Build > patch) { return true; } - else if (actualPatch < patch) + else if (version.Build < patch) { return false; } - if (actualCandidate.IsNullOrWhiteSpace()) - { - return true; - } - else if (candidate.IsNullOrWhiteSpace()) + return true; + } + + private Version ParseVersion(string version) + { + var parsed = VersionRegex.Match(version); + + int major; + int minor; + int patch; + + if (parsed.Success) { - return false; + major = Convert.ToInt32(parsed.Groups["major"].Value); + minor = Convert.ToInt32(parsed.Groups["minor"].Value); + patch = Convert.ToInt32(parsed.Groups["patch"].Value.Replace("x", "0")); } + else { - return actualCandidate.CompareTo(candidate) > 0; + if (!version.Equals("develop", StringComparison.InvariantCultureIgnoreCase)) + { + return null; + } + + major = 1; + minor = 1; + patch = 0; } + + return new Version(major, minor, patch); } private ValidationFailure TestConnectionAndVersion() { try { - var version = _proxy.GetVersion(Settings); - var parsed = VersionRegex.Match(version); + var rawVersion = _proxy.GetVersion(Settings); + var version = ParseVersion(rawVersion); - if (!parsed.Success) + if (version == null) { - if (version.Equals("develop", StringComparison.InvariantCultureIgnoreCase)) - { - return new NzbDroneValidationFailure("Version", "Sabnzbd develop version, assuming version 1.1.0 or higher.") - { - IsWarning = true, - DetailedDescription = "Sonarr may not be able to support new features added to SABnzbd when running develop versions." - }; - } - return new ValidationFailure("Version", "Unknown Version: " + version); } - var major = Convert.ToInt32(parsed.Groups["major"].Value); - var minor = Convert.ToInt32(parsed.Groups["minor"].Value); + if (rawVersion.Equals("develop", StringComparison.InvariantCultureIgnoreCase)) + { + return new NzbDroneValidationFailure("Version", "Sabnzbd develop version, assuming version 1.1.0 or higher.") + { + IsWarning = true, + DetailedDescription = "Radarr may not be able to support new features added to SABnzbd when running develop versions." + }; + } - if (major >= 1) + if (version.Major >= 1) { return null; } - if (minor >= 7) + if (version.Minor >= 7) { return null; } @@ -431,7 +424,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd return new NzbDroneValidationFailure("", "Disable 'Check before download' option in Sabnbzd") { InfoLink = string.Format("http://{0}:{1}/sabnzbd/config/switches/", Settings.Host, Settings.Port), - DetailedDescription = "Using Check before download affects Sonarr ability to track new downloads. Also Sabnzbd recommends 'Abort jobs that cannot be completed' instead since it's more effective." + DetailedDescription = "Using Check before download affects Radarr ability to track new downloads. Also Sabnzbd recommends 'Abort jobs that cannot be completed' instead since it's more effective." }; } @@ -450,7 +443,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd return new NzbDroneValidationFailure("TvCategory", "Enable Job folders") { InfoLink = string.Format("http://{0}:{1}/sabnzbd/config/categories/", Settings.Host, Settings.Port), - DetailedDescription = "Sonarr prefers each download to have a separate folder. With * appended to the Folder/Path Sabnzbd will not create these job folders. Go to Sabnzbd to fix it." + DetailedDescription = "Radarr prefers each download to have a separate folder. With * appended to the Folder/Path Sabnzbd will not create these job folders. Go to Sabnzbd to fix it." }; } } @@ -475,7 +468,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd return new NzbDroneValidationFailure("TvCategory", "Disable TV Sorting") { InfoLink = string.Format("http://{0}:{1}/sabnzbd/config/sorting/", Settings.Host, Settings.Port), - DetailedDescription = "You must disable Sabnzbd TV Sorting for the category Sonarr uses to prevent import issues. Go to Sabnzbd to fix it." + DetailedDescription = "You must disable Sabnzbd TV Sorting for the category Radarr uses to prevent import issues. Go to Sabnzbd to fix it." }; } } @@ -489,7 +482,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd return new NzbDroneValidationFailure("TvCategory", "Disable Movie Sorting") { InfoLink = string.Format("http://{0}:{1}/sabnzbd/config/sorting/", Settings.Host, Settings.Port), - DetailedDescription = "You must disable Sabnzbd Movie Sorting for the category Sonarr uses to prevent import issues. Go to Sabnzbd to fix it." + DetailedDescription = "You must disable Sabnzbd Movie Sorting for the category Radarr uses to prevent import issues. Go to Sabnzbd to fix it." }; } } @@ -503,7 +496,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd return new NzbDroneValidationFailure("TvCategory", "Disable Date Sorting") { InfoLink = string.Format("http://{0}:{1}/sabnzbd/config/sorting/", Settings.Host, Settings.Port), - DetailedDescription = "You must disable Sabnzbd Date Sorting for the category Sonarr uses to prevent import issues. Go to Sabnzbd to fix it." + DetailedDescription = "You must disable Sabnzbd Date Sorting for the category Radarr uses to prevent import issues. Go to Sabnzbd to fix it." }; } } diff --git a/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs index 22a3389bf..0c1dc8221 100644 --- a/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Sabnzbd/SabnzbdSettings.cs @@ -58,7 +58,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd [FieldDefinition(4, Label = "Password", Type = FieldType.Password)] public string Password { get; set; } - [FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional")] + [FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] public string TvCategory { get; set; } [FieldDefinition(6, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(SabnzbdPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs index da62e6bcb..1eb6b6ce8 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs @@ -54,21 +54,21 @@ namespace NzbDrone.Core.Download.Clients.Transmission var outputPath = new OsPath(torrent.DownloadDir); - if (Settings.TvDirectory.IsNotNullOrWhiteSpace()) + if (Settings.MovieDirectory.IsNotNullOrWhiteSpace()) { - if (!new OsPath(Settings.TvDirectory).Contains(outputPath)) continue; + if (!new OsPath(Settings.MovieDirectory).Contains(outputPath)) continue; } - else if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + else if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { var directories = outputPath.FullPath.Split('\\', '/'); - if (!directories.Contains(Settings.TvCategory)) continue; + if (!directories.Contains(Settings.MovieCategory)) continue; } outputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, outputPath); var item = new DownloadClientItem(); item.DownloadId = torrent.HashString.ToUpper(); - item.Category = Settings.TvCategory; + item.Category = Settings.MovieCategory; item.Title = torrent.Name; item.DownloadClient = Definition.Name; @@ -123,9 +123,9 @@ namespace NzbDrone.Core.Download.Clients.Transmission var config = _proxy.GetConfig(Settings); var destDir = config.GetValueOrDefault("download-dir") as string; - if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { - destDir = string.Format("{0}/.{1}", destDir, Settings.TvCategory); + destDir = string.Format("{0}/.{1}", destDir, Settings.MovieCategory); } return new DownloadClientStatus @@ -137,56 +137,23 @@ namespace NzbDrone.Core.Download.Clients.Transmission protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink) { - _proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings); - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)TransmissionPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)TransmissionPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash, Settings); - } - - return hash; + throw new NotImplementedException("Episodes are not working with Radarr"); } protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent) { - _proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings); - - var isRecentEpisode = remoteEpisode.IsRecentEpisode(); - - if (isRecentEpisode && Settings.RecentTvPriority == (int)TransmissionPriority.First || - !isRecentEpisode && Settings.OlderTvPriority == (int)TransmissionPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash, Settings); - } - - return hash; + throw new NotImplementedException("Episodes are not working with Radarr"); } protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { _proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings); - if (remoteMovie.Release.Age < 14 && Settings.RecentTvPriority == (int)TransmissionPriority.First || - remoteMovie.Release.Age > 14 && Settings.OlderTvPriority == (int)TransmissionPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash, Settings); - } - return hash; } protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent) { _proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings); - - if (remoteMovie.Release.Age < 14 && Settings.RecentTvPriority == (int)TransmissionPriority.First || - remoteMovie.Release.Age > 14 && Settings.OlderTvPriority == (int)TransmissionPriority.First) - { - _proxy.MoveTorrentToTopInQueue(hash, Settings); - } - return hash; } @@ -204,16 +171,16 @@ namespace NzbDrone.Core.Download.Clients.Transmission protected string GetDownloadDirectory() { - if (Settings.TvDirectory.IsNotNullOrWhiteSpace()) + if (Settings.MovieDirectory.IsNotNullOrWhiteSpace()) { - return Settings.TvDirectory; + return Settings.MovieDirectory; } - else if (Settings.TvCategory.IsNotNullOrWhiteSpace()) + else if (Settings.MovieCategory.IsNotNullOrWhiteSpace()) { var config = _proxy.GetConfig(Settings); var destDir = (string)config.GetValueOrDefault("download-dir"); - return string.Format("{0}/{1}", destDir.TrimEnd('/'), Settings.TvCategory); + return string.Format("{0}/{1}", destDir.TrimEnd('/'), Settings.MovieCategory); } else { @@ -232,7 +199,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission _logger.Error(ex, ex.Message); return new NzbDroneValidationFailure("Username", "Authentication failure") { - DetailedDescription = string.Format("Please verify your username and password. Also verify if the host running Sonarr isn't blocked from accessing {0} by WhiteList limitations in the {0} configuration.", Name) + DetailedDescription = string.Format("Please verify your username and password. Also verify if the host running Radarr isn't blocked from accessing {0} by WhiteList limitations in the {0} configuration.", Name) }; } catch (WebException ex) diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs index 893705bda..9d0a860ec 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionSettings.cs @@ -16,10 +16,10 @@ namespace NzbDrone.Core.Download.Clients.Transmission RuleFor(c => c.UrlBase).ValidUrlBase(); - RuleFor(c => c.TvCategory).Matches(@"^\.?[-a-z]*$", RegexOptions.IgnoreCase).WithMessage("Allowed characters a-z and -"); + RuleFor(c => c.MovieCategory).Matches(@"^\.?[-a-z]*$", RegexOptions.IgnoreCase).WithMessage("Allowed characters a-z and -"); - RuleFor(c => c.TvCategory).Empty() - .When(c => c.TvDirectory.IsNotNullOrWhiteSpace()) + RuleFor(c => c.MovieCategory).Empty() + .When(c => c.MovieDirectory.IsNotNullOrWhiteSpace()) .WithMessage("Cannot use Category and Directory"); } } @@ -50,19 +50,13 @@ namespace NzbDrone.Core.Download.Clients.Transmission [FieldDefinition(4, Label = "Password", Type = FieldType.Password)] public string Password { get; set; } - [FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional. Creates a [category] subdirectory in the output directory.")] - public string TvCategory { get; set; } + [FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional. Creates a [category] subdirectory in the output directory.")] + public string MovieCategory { get; set; } [FieldDefinition(6, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default Transmission location")] - public string TvDirectory { get; set; } + public string MovieDirectory { get; set; } - [FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing movies that we're released within the last 14 days")] - public int RecentTvPriority { get; set; } - - [FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing movies that we're released over 14 days ago")] - public int OlderTvPriority { get; set; } - - [FieldDefinition(9, Label = "Use SSL", Type = FieldType.Checkbox)] + [FieldDefinition(7, Label = "Use SSL", Type = FieldType.Checkbox)] public bool UseSsl { get; set; } public NzbDroneValidationResult Validate() diff --git a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs index b456f828c..cc9b80aa5 100644 --- a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs @@ -37,51 +37,23 @@ namespace NzbDrone.Core.Download.Clients.RTorrent _rTorrentDirectoryValidator = rTorrentDirectoryValidator; } - protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) + protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink) { - _proxy.AddTorrentFromUrl(magnetLink, Settings); - - // Download the magnet to the appropriate directory. - _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); - //SetPriority(remoteEpisode, hash); - SetDownloadDirectory(hash); - - // Once the magnet meta download finishes, rTorrent replaces it with the actual torrent download with default settings. - // Schedule an event to apply the appropriate settings when that happens. - // var priority = (RTorrentPriority)(remoteEpisode.IsRecentEpisode() ? Settings.RecentTvPriority : Settings.OlderTvPriority); - //_proxy.SetDeferredMagnetProperties(hash, Settings.TvCategory, Settings.TvDirectory, priority, Settings); - - _proxy.StartTorrent(hash, Settings); - - // Wait for the magnet to be resolved. - var tries = 10; - var retryDelay = 500; - if (WaitForTorrent(hash, tries, retryDelay)) - { - return hash; - } - else - { - _logger.Warn("rTorrent could not resolve magnet within {0} seconds, download may remain stuck: {1}.", tries * retryDelay / 1000, magnetLink); + throw new NotImplementedException("Episodes are not working with Radarr"); + } - return hash; - } + protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent) + { + throw new NotImplementedException("Episodes are not working with Radarr"); } - protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink) + protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink) { _proxy.AddTorrentFromUrl(magnetLink, Settings); // Download the magnet to the appropriate directory. - _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); - SetPriority(remoteEpisode, hash); + _proxy.SetTorrentLabel(hash, Settings.MovieCategory, Settings); SetDownloadDirectory(hash); - - // Once the magnet meta download finishes, rTorrent replaces it with the actual torrent download with default settings. - // Schedule an event to apply the appropriate settings when that happens. - var priority = (RTorrentPriority)(remoteEpisode.IsRecentEpisode() ? Settings.RecentTvPriority : Settings.OlderTvPriority); - _proxy.SetDeferredMagnetProperties(hash, Settings.TvCategory, Settings.TvDirectory, priority, Settings); - _proxy.StartTorrent(hash, Settings); // Wait for the magnet to be resolved. @@ -107,13 +79,9 @@ namespace NzbDrone.Core.Download.Clients.RTorrent var retryDelay = 100; if (WaitForTorrent(hash, tries, retryDelay)) { - _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); - - //SetPriority(remoteEpisode, hash); + _proxy.SetTorrentLabel(hash, Settings.MovieCategory, Settings); SetDownloadDirectory(hash); - _proxy.StartTorrent(hash, Settings); - return hash; } else @@ -125,32 +93,6 @@ namespace NzbDrone.Core.Download.Clients.RTorrent } } - protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent) - { - _proxy.AddTorrentFromFile(filename, fileContent, Settings); - - var tries = 2; - var retryDelay = 100; - if (WaitForTorrent(hash, tries, retryDelay)) - { - _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); - - SetPriority(remoteEpisode, hash); - SetDownloadDirectory(hash); - - _proxy.StartTorrent(hash, Settings); - - return hash; - } - else - { - _logger.Debug("rTorrent could not add file"); - - RemoveItem(hash, true); - throw new ReleaseDownloadException(remoteEpisode.Release, "Downloading torrent failed"); - } - } - public override string Name => "rTorrent"; public override ProviderMessage Message => new ProviderMessage("Radarr is unable to remove torrents that have finished seeding when using rTorrent", ProviderMessageType.Warning); @@ -167,7 +109,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent foreach (RTorrentTorrent torrent in torrents) { // Don't concern ourselves with categories other than specified - if (torrent.Category != Settings.TvCategory) continue; + if (torrent.Category != Settings.MovieCategory) continue; if (torrent.Path.StartsWith(".")) { @@ -287,17 +229,11 @@ namespace NzbDrone.Core.Download.Clients.RTorrent return result.Errors.First(); } - private void SetPriority(RemoteEpisode remoteEpisode, string hash) - { - var priority = (RTorrentPriority)(remoteEpisode.IsRecentEpisode() ? Settings.RecentTvPriority : Settings.OlderTvPriority); - _proxy.SetTorrentPriority(hash, priority, Settings); - } - private void SetDownloadDirectory(string hash) { - if (Settings.TvDirectory.IsNotNullOrWhiteSpace()) + if (Settings.MovieDirectory.IsNotNullOrWhiteSpace()) { - _proxy.SetTorrentDownloadDirectory(hash, Settings.TvDirectory, Settings); + _proxy.SetTorrentDownloadDirectory(hash, Settings.MovieDirectory, Settings); } } diff --git a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentDirectoryValidator.cs b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentDirectoryValidator.cs index 3cb2d6a8b..1d0f5063a 100644 --- a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentDirectoryValidator.cs +++ b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentDirectoryValidator.cs @@ -18,13 +18,13 @@ namespace NzbDrone.Core.Download.Clients.rTorrent DroneFactoryValidator droneFactoryValidator, MappedNetworkDriveValidator mappedNetworkDriveValidator) { - RuleFor(c => c.TvDirectory).Cascade(CascadeMode.StopOnFirstFailure) + RuleFor(c => c.MovieDirectory).Cascade(CascadeMode.StopOnFirstFailure) .IsValidPath() .SetValidator(rootFolderValidator) .SetValidator(droneFactoryValidator) .SetValidator(mappedNetworkDriveValidator) .SetValidator(pathExistsValidator) - .When(c => c.TvDirectory.IsNotNullOrWhiteSpace()) + .When(c => c.MovieDirectory.IsNotNullOrWhiteSpace()) .When(c => c.Host == "localhost" || c.Host == "127.0.0.1"); } } diff --git a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs index 570392395..4965c9a78 100644 --- a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrentSettings.cs @@ -11,7 +11,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent { RuleFor(c => c.Host).ValidHost(); RuleFor(c => c.Port).InclusiveBetween(0, 65535); - RuleFor(c => c.TvCategory).NotEmpty() + RuleFor(c => c.MovieCategory).NotEmpty() .WithMessage("A category is recommended") .AsWarning(); } @@ -26,9 +26,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent Host = "localhost"; Port = 8080; UrlBase = "RPC2"; - TvCategory = "movies-radarr"; - OlderTvPriority = (int)RTorrentPriority.Normal; - RecentTvPriority = (int)RTorrentPriority.Normal; + MovieCategory = "movies-radarr"; } [FieldDefinition(0, Label = "Host", Type = FieldType.Textbox)] @@ -49,17 +47,11 @@ namespace NzbDrone.Core.Download.Clients.RTorrent [FieldDefinition(5, Label = "Password", Type = FieldType.Password)] public string Password { get; set; } - [FieldDefinition(6, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional.")] - public string TvCategory { get; set; } + [FieldDefinition(6, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional.")] + public string MovieCategory { get; set; } [FieldDefinition(7, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default rTorrent location")] - public string TvDirectory { get; set; } - - [FieldDefinition(8, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] - public int RecentTvPriority { get; set; } - - [FieldDefinition(9, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(RTorrentPriority), HelpText = "Priority to use when grabbing episodes that aired over 14 days ago")] - public int OlderTvPriority { get; set; } + public string MovieDirectory { get; set; } public NzbDroneValidationResult Validate() { diff --git a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs index da942b7f1..171910744 100644 --- a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs @@ -68,6 +68,38 @@ namespace NzbDrone.Core.Download.Clients.UTorrent return hash; } + protected override string AddFromMagnetLink(RemoteMovie remoteEpisode, string hash, string magnetLink) + { + _proxy.AddTorrentFromUrl(magnetLink, Settings); + _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); + + /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); + + if (isRecentEpisode && Settings.RecentTvPriority == (int)UTorrentPriority.First || + !isRecentEpisode && Settings.OlderTvPriority == (int)UTorrentPriority.First) + { + _proxy.MoveTorrentToTopInQueue(hash, Settings); + }*/ + + return hash; + } + + protected override string AddFromTorrentFile(RemoteMovie remoteEpisode, string hash, string filename, byte[] fileContent) + { + _proxy.AddTorrentFromFile(filename, fileContent, Settings); + _proxy.SetTorrentLabel(hash, Settings.TvCategory, Settings); + + /*var isRecentEpisode = remoteEpisode.IsRecentEpisode(); + + if (isRecentEpisode && Settings.RecentTvPriority == (int)UTorrentPriority.First || + !isRecentEpisode && Settings.OlderTvPriority == (int)UTorrentPriority.First) + { + _proxy.MoveTorrentToTopInQueue(hash, Settings); + }*/ + + return hash; + } + public override string Name => "uTorrent"; public override IEnumerable GetItems() diff --git a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs index a5e5b006f..394fc53b4 100644 --- a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs +++ b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrentSettings.cs @@ -38,7 +38,7 @@ namespace NzbDrone.Core.Download.Clients.UTorrent [FieldDefinition(3, Label = "Password", Type = FieldType.Password)] public string Password { get; set; } - [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Sonarr avoids conflicts with unrelated downloads, but it's optional")] + [FieldDefinition(4, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional")] public string TvCategory { get; set; } [FieldDefinition(5, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(UTorrentPriority), HelpText = "Priority to use when grabbing episodes that aired within the last 14 days")] diff --git a/src/NzbDrone.Core/Download/CompletedDownloadService.cs b/src/NzbDrone.Core/Download/CompletedDownloadService.cs index a70bdca20..c55b98e84 100644 --- a/src/NzbDrone.Core/Download/CompletedDownloadService.cs +++ b/src/NzbDrone.Core/Download/CompletedDownloadService.cs @@ -94,30 +94,18 @@ namespace NzbDrone.Core.Download return; } - var series = _parsingService.GetSeries(trackedDownload.DownloadItem.Title); - - if (series == null) + var movie = _parsingService.GetMovie(trackedDownload.DownloadItem.Title); + if (movie == null) { if (historyItem != null) { - //series = _seriesService.GetSeries(historyItem.SeriesId); + movie = _movieService.GetMovie(historyItem.MovieId); } - if (series == null) + if (movie == null) { - var movie = _parsingService.GetMovie(trackedDownload.DownloadItem.Title); - - if (movie == null) - { - movie = _movieService.GetMovie(historyItem.MovieId); - - if (movie == null) - { - trackedDownload.Warn("Movie title mismatch, automatic import is not possible."); - } - } - //trackedDownload.Warn("Series title mismatch, automatic import is not possible."); - //return; + trackedDownload.Warn("Movie title mismatch, automatic import is not possible."); + return; } } } @@ -128,61 +116,30 @@ namespace NzbDrone.Core.Download private void Import(TrackedDownload trackedDownload) { var outputPath = trackedDownload.DownloadItem.OutputPath.FullPath; - if (trackedDownload.RemoteMovie.Movie != null) - { - var importResults = _downloadedMovieImportService.ProcessPath(outputPath, ImportMode.Auto, trackedDownload.RemoteMovie.Movie, trackedDownload.DownloadItem); - - if (importResults.Empty()) - { - trackedDownload.Warn("No files found are eligible for import in {0}", outputPath); - return; - } + var importResults = _downloadedMovieImportService.ProcessPath(outputPath, ImportMode.Auto, trackedDownload.RemoteMovie.Movie, trackedDownload.DownloadItem); - if (importResults.Count(c => c.Result == ImportResultType.Imported) >= 1) - { - trackedDownload.State = TrackedDownloadStage.Imported; - _eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload)); - return; - } - - if (importResults.Any(c => c.Result != ImportResultType.Imported)) - { - var statusMessages = importResults - .Where(v => v.Result != ImportResultType.Imported) - .Select(v => new TrackedDownloadStatusMessage(Path.GetFileName(v.ImportDecision.LocalEpisode.Path), v.Errors)) - .ToArray(); - - trackedDownload.Warn(statusMessages); - } - } - else if (trackedDownload.RemoteEpisode.Series != null) + if (importResults.Empty()) { - var importResults = _downloadedEpisodesImportService.ProcessPath(outputPath, ImportMode.Auto, trackedDownload.RemoteEpisode.Series, trackedDownload.DownloadItem); - - if (importResults.Empty()) - { - trackedDownload.Warn("No files found are eligible for import in {0}", outputPath); - return; - } + trackedDownload.Warn("No files found are eligible for import in {0}", outputPath); + return; + } - if (importResults.Count(c => c.Result == ImportResultType.Imported) >= Math.Max(1, trackedDownload.RemoteEpisode.Episodes.Count)) - { - trackedDownload.State = TrackedDownloadStage.Imported; - _eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload)); - return; - } + if (importResults.Count(c => c.Result == ImportResultType.Imported) >= 1) + { + trackedDownload.State = TrackedDownloadStage.Imported; + _eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload)); + return; + } - if (importResults.Any(c => c.Result != ImportResultType.Imported)) - { - var statusMessages = importResults - .Where(v => v.Result != ImportResultType.Imported) - .Select(v => new TrackedDownloadStatusMessage(Path.GetFileName(v.ImportDecision.LocalEpisode.Path), v.Errors)) - .ToArray(); + if (importResults.Any(c => c.Result != ImportResultType.Imported)) + { + var statusMessages = importResults + .Where(v => v.Result != ImportResultType.Imported) + .Select(v => new TrackedDownloadStatusMessage(Path.GetFileName(v.ImportDecision.LocalMovie.Path), v.Errors)) + .ToArray(); - trackedDownload.Warn(statusMessages); - } + trackedDownload.Warn(statusMessages); } - } } } diff --git a/src/NzbDrone.Core/Download/FailedDownloadService.cs b/src/NzbDrone.Core/Download/FailedDownloadService.cs index e084f2c3b..4168e0451 100644 --- a/src/NzbDrone.Core/Download/FailedDownloadService.cs +++ b/src/NzbDrone.Core/Download/FailedDownloadService.cs @@ -72,7 +72,7 @@ namespace NzbDrone.Core.Download if (grabbedItems.Empty()) { - trackedDownload.Warn("Download wasn't grabbed by sonarr, skipping"); + trackedDownload.Warn("Download wasn't grabbed by Radarr, skipping"); return; } diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs index ca03130e6..e8ee88d68 100644 --- a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupOrphanedHistoryItems.cs @@ -13,8 +13,9 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers public void Clean() { - CleanupOrphanedBySeries(); - CleanupOrphanedByEpisode(); + //CleanupOrphanedBySeries(); + //CleanupOrphanedByEpisode(); + CleanupOrphanedByMovie(); } private void CleanupOrphanedBySeries() @@ -29,6 +30,18 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers WHERE Series.Id IS NULL)"); } + private void CleanupOrphanedByMovie() + { + var mapper = _database.GetDataMapper(); + + mapper.ExecuteNonQuery(@"DELETE FROM History + WHERE Id IN ( + SELECT History.Id FROM History + LEFT OUTER JOIN Movies + ON History.MovieId = Movies.Id + WHERE Movies.Id IS NULL)"); + } + private void CleanupOrphanedByEpisode() { var mapper = _database.GetDataMapper(); diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHD.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHD.cs new file mode 100644 index 000000000..afe7892a0 --- /dev/null +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHD.cs @@ -0,0 +1,30 @@ +using NLog; +using NzbDrone.Common.Http; +using NzbDrone.Core.Configuration; +using NzbDrone.Core.Parser; + +namespace NzbDrone.Core.Indexers.AwesomeHD +{ + public class AwesomeHD : HttpIndexerBase + { + public override string Name => "AwesomeHD"; + public override DownloadProtocol Protocol => DownloadProtocol.Torrent; + public override bool SupportsRss => true; + public override bool SupportsSearch => true; + public override int PageSize => 50; + + public AwesomeHD(IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) + : base(httpClient, indexerStatusService, configService, parsingService, logger) + { } + + public override IIndexerRequestGenerator GetRequestGenerator() + { + return new AwesomeHDRequestGenerator() { Settings = Settings }; + } + + public override IParseIndexerResponse GetParser() + { + return new AwesomeHDRssParser(Settings); + } + } +} diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDApi.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDApi.cs new file mode 100644 index 000000000..77744b4ac --- /dev/null +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDApi.cs @@ -0,0 +1,80 @@ +using System; +using Newtonsoft.Json; + +using System.Xml.Serialization; +using System.Collections.Generic; + +namespace NzbDrone.Core.Indexers.AwesomeHD +{ + public class Torrent + { + [XmlElement(ElementName = "id")] + public string Id { get; set; } + [XmlElement(ElementName = "groupid")] + public string GroupId { get; set; } + [XmlElement(ElementName = "time")] + public DateTime Time { get; set; } + [XmlElement(ElementName = "userid")] + public string Userid { get; set; } + [XmlElement(ElementName = "size")] + public long Size { get; set; } + [XmlElement(ElementName = "snatched")] + public string Snatched { get; set; } + [XmlElement(ElementName = "seeders")] + public string Seeders { get; set; } + [XmlElement(ElementName = "leechers")] + public string Leechers { get; set; } + [XmlElement(ElementName = "releasegroup")] + public string Releasegroup { get; set; } + [XmlElement(ElementName = "resolution")] + public string Resolution { get; set; } + [XmlElement(ElementName = "media")] + public string Media { get; set; } + [XmlElement(ElementName = "format")] + public string Format { get; set; } + [XmlElement(ElementName = "encoding")] + public string Encoding { get; set; } + [XmlElement(ElementName = "audioformat")] + public string Audioformat { get; set; } + [XmlElement(ElementName = "audiobitrate")] + public string Audiobitrate { get; set; } + [XmlElement(ElementName = "audiochannels")] + public string Audiochannels { get; set; } + [XmlElement(ElementName = "subtitles")] + public string Subtitles { get; set; } + [XmlElement(ElementName = "encodestatus")] + public string Encodestatus { get; set; } + [XmlElement(ElementName = "freeleech")] + public string Freeleech { get; set; } + [XmlElement(ElementName = "cover")] + public string Cover { get; set; } + [XmlElement(ElementName = "smallcover")] + public string Smallcover { get; set; } + [XmlElement(ElementName = "year")] + public string Year { get; set; } + [XmlElement(ElementName = "name")] + public string Name { get; set; } + [XmlElement(ElementName = "imdb")] + public string Imdb { get; set; } + [XmlElement(ElementName = "type")] + public string Type { get; set; } + [XmlElement(ElementName = "plotoutline")] + public string Plotoutline { get; set; } + } + + public class SearchResults + { + [XmlElement(ElementName = "authkey")] + public string AuthKey { get; set; } + [XmlElement(ElementName = "torrent")] + public List Torrent { get; set; } + } + + public class AwesomeHDSearchResponse + { + [XmlElement(ElementName = "?xml")] + public string Xml { get; set; } + [XmlElement(ElementName = "searchresults")] + public SearchResults SearchResults { get; set; } + } +} diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRequestGenerator.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRequestGenerator.cs new file mode 100644 index 000000000..00289d7e4 --- /dev/null +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRequestGenerator.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NzbDrone.Common.Http; +using NzbDrone.Common.Serializer; +using NzbDrone.Core.IndexerSearch.Definitions; + +namespace NzbDrone.Core.Indexers.AwesomeHD +{ + public class AwesomeHDRequestGenerator : IIndexerRequestGenerator + { + public AwesomeHDSettings Settings { get; set; } + + public virtual IndexerPageableRequestChain GetRecentRequests() + { + var pageableRequests = new IndexerPageableRequestChain(); + + pageableRequests.Add(GetRequest(null)); + + return pageableRequests; + } + + public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) + { + return new IndexerPageableRequestChain(); + } + + public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) + { + return new IndexerPageableRequestChain(); + } + + public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) + { + return new IndexerPageableRequestChain(); + } + + public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) + { + return new IndexerPageableRequestChain(); + } + + public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) + { + return new IndexerPageableRequestChain(); + } + + public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) + { + var pageableRequests = new IndexerPageableRequestChain(); + pageableRequests.Add(GetRequest(searchCriteria.Movie.ImdbId)); + return pageableRequests; + } + + private IEnumerable GetRequest(string searchParameters) + { + if (searchParameters != null) + { + yield return new IndexerRequest(string.Format("{0}/searchapi.php?action=imdbsearch&passkey={1}&imdb={2}", Settings.BaseUrl.Trim().TrimEnd('/'), Settings.Passkey.Trim(), searchParameters), HttpAccept.Rss); + } + else + { + yield return new IndexerRequest(string.Format("{0}/searchapi.php?action=latestmovies&passkey={1}", Settings.BaseUrl.Trim().TrimEnd('/'), Settings.Passkey.Trim()), HttpAccept.Rss); + } + + } + } +} diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs new file mode 100644 index 000000000..e7a2632a0 --- /dev/null +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDRssParser.cs @@ -0,0 +1,92 @@ +using System.Collections.Generic; +using System.Net; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using NzbDrone.Common.Http; +using NzbDrone.Core.Indexers.Exceptions; +using NzbDrone.Core.Parser.Model; +using System; +using System.Linq; +using System.Xml; + +namespace NzbDrone.Core.Indexers.AwesomeHD +{ + public class AwesomeHDRssParser : IParseIndexerResponse + { + private readonly AwesomeHDSettings _settings; + + public AwesomeHDRssParser(AwesomeHDSettings settings) + { + _settings = settings; + } + + public IList ParseResponse(IndexerResponse indexerResponse) + { + var torrentInfos = new List(); + + if (indexerResponse.HttpResponse.StatusCode != HttpStatusCode.OK) + { + throw new IndexerException(indexerResponse, + "Unexpected response status {0} code from API request", + indexerResponse.HttpResponse.StatusCode); + } + + // Hacky ¯\_(ツ)_/¯ + XmlDocument doc = new XmlDocument(); + doc.LoadXml(indexerResponse.Content); + + var json = JsonConvert.SerializeXmlNode(doc); + + Console.WriteLine(json); + + var jsonResponse = JsonConvert.DeserializeObject(json); + + if (jsonResponse == null) + { + throw new IndexerException(indexerResponse, "Unexpected response from request"); + } + + foreach (var torrent in jsonResponse.SearchResults.Torrent) + { + var id = torrent.Id; + var title = $"{torrent.Name}.{torrent.Year}.{torrent.Resolution}.{torrent.Media}.{torrent.Encoding}.{torrent.Audioformat}-{torrent.Releasegroup}"; + + torrentInfos.Add(new TorrentInfo() + { + Guid = string.Format("AwesomeHD-{0}", id), + Title = title, + Size = torrent.Size, + DownloadUrl = GetDownloadUrl(id, jsonResponse.SearchResults.AuthKey, _settings.Passkey), + InfoUrl = GetInfoUrl(torrent.GroupId, id), + Seeders = int.Parse(torrent.Seeders), + Peers = int.Parse(torrent.Leechers) + int.Parse(torrent.Seeders), + PublishDate = torrent.Time.ToUniversalTime() + }); + } + + return torrentInfos.OrderByDescending(o => ((dynamic)o).Seeders).ToArray(); + } + + private string GetDownloadUrl(string torrentId, string authKey, string passKey) + { + var url = new HttpUri(_settings.BaseUrl) + .CombinePath("/torrents.php") + .AddQueryParam("action", "download") + .AddQueryParam("id", torrentId) + .AddQueryParam("authkey", authKey) + .AddQueryParam("torrent_pass", passKey); + + return url.FullUri; + } + + private string GetInfoUrl(string groupId, string torrentId) + { + var url = new HttpUri(_settings.BaseUrl) + .CombinePath("/torrents.php") + .AddQueryParam("id", groupId) + .AddQueryParam("torrentid", torrentId); + + return url.FullUri; + } + } +} diff --git a/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs new file mode 100644 index 000000000..3c6f525c4 --- /dev/null +++ b/src/NzbDrone.Core/Indexers/AwesomeHD/AwesomeHDSettings.cs @@ -0,0 +1,37 @@ +using FluentValidation; +using NzbDrone.Core.Annotations; +using NzbDrone.Core.ThingiProvider; +using NzbDrone.Core.Validation; + +namespace NzbDrone.Core.Indexers.AwesomeHD +{ + public class AwesomeHDSettingsValidator : AbstractValidator + { + public AwesomeHDSettingsValidator() + { + RuleFor(c => c.BaseUrl).ValidRootUrl(); + RuleFor(c => c.Passkey).NotEmpty(); + } + } + + public class AwesomeHDSettings : IProviderConfig + { + private static readonly AwesomeHDSettingsValidator Validator = new AwesomeHDSettingsValidator(); + + public AwesomeHDSettings() + { + BaseUrl = "https://awesome-hd.me"; + } + + [FieldDefinition(0, Label = "API URL", Advanced = true, HelpText = "Do not change this unless you know what you're doing. Since you Passkey will be sent to that host.")] + public string BaseUrl { get; set; } + + [FieldDefinition(1, Label = "Passkey")] + public string Passkey { get; set; } + + public NzbDroneValidationResult Validate() + { + return new NzbDroneValidationResult(Validator.Validate(this)); + } + } +} diff --git a/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs b/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs index 307ed0021..de939341b 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs @@ -39,14 +39,15 @@ namespace NzbDrone.Core.Indexers.Newznab { get { - yield return GetDefinition("Dognzb.cr", GetSettings("https://api.dognzb.cr")); + yield return GetDefinition("DOGnzb", GetSettings("https://api.dognzb.cr")); yield return GetDefinition("DrunkenSlug", GetSettings("https://api.drunkenslug.com")); + yield return GetDefinition("Nzb-Tortuga", GetSettings("https://www.nzb-tortuga.com")); yield return GetDefinition("Nzb.su", GetSettings("https://api.nzb.su")); yield return GetDefinition("NZBCat", GetSettings("https://nzb.cat")); - yield return GetDefinition("NZBFinder.ws", GetSettings("https://nzbfinder.ws", 5010, 5030, 5040, 5045)); + yield return GetDefinition("NZBFinder.ws", GetSettings("https://nzbfinder.ws")); yield return GetDefinition("NZBgeek", GetSettings("https://api.nzbgeek.info")); yield return GetDefinition("nzbplanet.net", GetSettings("https://api.nzbplanet.net")); - yield return GetDefinition("Nzbs.org", GetSettings("http://nzbs.org", 2000)); + yield return GetDefinition("Nzbs.org", GetSettings("http://nzbs.org")); yield return GetDefinition("OZnzb.com", GetSettings("https://api.oznzb.com")); yield return GetDefinition("PFmonkey", GetSettings("https://www.pfmonkey.com")); yield return GetDefinition("SimplyNZBs", GetSettings("https://simplynzbs.com")); diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs index 7ccaba8d8..71e0d806b 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs @@ -124,7 +124,7 @@ namespace NzbDrone.Core.Indexers.Newznab { var pageableRequests = new IndexerPageableRequestChain(); - if (SupportsMovieSearch) + if (false) { pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "movie", string.Format("&imdbid={0}", searchCriteria.Movie.ImdbId.Substring(2)))); //strip off the "tt" - VERY HACKY @@ -133,7 +133,7 @@ namespace NzbDrone.Core.Indexers.Newznab { //Let's try anyways with q parameter, worst case nothing found. pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories, "search", - string.Format("&q={0}", searchCriteria.Movie.Title))); + string.Format("&q={0}", Parser.Parser.NormalizeTitle(searchCriteria.Movie.Title)))); } return pageableRequests; diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs index 472776df4..125391f57 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabSettings.cs @@ -60,7 +60,7 @@ namespace NzbDrone.Core.Indexers.Newznab public NewznabSettings() { - Categories = new[] { 2030, 2035, 2040, 2050 }; + Categories = new[] { 2000, 2010, 2020, 2030, 2035, 2040, 2045, 2050, 2060 }; AnimeCategories = Enumerable.Empty(); } diff --git a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRssParser.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRssParser.cs index a5946e5ff..644fff382 100644 --- a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRssParser.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.Indexers.Omgwtfnzbs protected override string GetInfoUrl(XElement item) { //Todo: Me thinks I need to parse details to get this... - var match = Regex.Match(item.Description(), @"(?:\View NZB\:\<\/b\>\s\.+)(?:\""\starget)", + var match = Regex.Match(item.Description(), @"(?:\View NZB\:\<\/b\>\s\.+)(?:\"")", RegexOptions.IgnoreCase | RegexOptions.Compiled); if (match.Success) diff --git a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoParser.cs b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoParser.cs index 2c21e408e..fdaf7bb9d 100644 --- a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoParser.cs +++ b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoParser.cs @@ -40,6 +40,7 @@ namespace NzbDrone.Core.Indexers.TorrentPotato torrentInfo.Seeders = torrent.seeders; torrentInfo.Peers = torrent.leechers + torrent.seeders; torrentInfo.Freeleech = torrent.freeleech; + torrentInfo.PublishDate = torrent.publishdate.ToUniversalTime(); results.Add(torrentInfo); } diff --git a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoRequestGenerator.cs b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoRequestGenerator.cs index f85969d1e..808a40b89 100644 --- a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoRequestGenerator.cs @@ -78,9 +78,16 @@ namespace NzbDrone.Core.Indexers.TorrentPotato .Accept(HttpAccept.Json); requestBuilder.AddQueryParam("passkey", Settings.Passkey); - requestBuilder.AddQueryParam("user", Settings.User); - // requestBuilder.AddQueryParam("imdbid", "tt0076759"); //For now just search for Star Wars. - requestBuilder.AddQueryParam("search", "the"); // there has to be movies with 'the' in the title on any indexer + if (!string.IsNullOrWhiteSpace(Settings.User)) + { + requestBuilder.AddQueryParam("user", Settings.User); + } + else + { + requestBuilder.AddQueryParam("user", ""); + } + + requestBuilder.AddQueryParam("search", "the"); yield return new IndexerRequest(requestBuilder.Build()); } @@ -91,7 +98,15 @@ namespace NzbDrone.Core.Indexers.TorrentPotato .Accept(HttpAccept.Json); requestBuilder.AddQueryParam("passkey", Settings.Passkey); - requestBuilder.AddQueryParam("user", Settings.User); + + if (!string.IsNullOrWhiteSpace(Settings.User)) + { + requestBuilder.AddQueryParam("user", Settings.User); + } + else + { + requestBuilder.AddQueryParam("user", ""); + } if (searchCriteria.Movie.ImdbId.IsNotNullOrWhiteSpace()) { diff --git a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoResponse.cs b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoResponse.cs index 9b8300405..b0551ca67 100644 --- a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoResponse.cs +++ b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoResponse.cs @@ -21,6 +21,7 @@ namespace NzbDrone.Core.Indexers.TorrentPotato public int size { get; set; } public int leechers { get; set; } public int seeders { get; set; } + public DateTime publishdate { get; set; } } } diff --git a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoSettings.cs b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoSettings.cs index d0b902f5e..14c91e2d0 100644 --- a/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoSettings.cs +++ b/src/NzbDrone.Core/Indexers/TorrentPotato/TorrentPotatoSettings.cs @@ -19,7 +19,7 @@ namespace NzbDrone.Core.Indexers.TorrentPotato public TorrentPotatoSettings() { - BaseUrl = ""; + BaseUrl = "http://127.0.0.1"; } [FieldDefinition(0, Label = "API URL", HelpText = "URL to TorrentPotato api.")] diff --git a/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs b/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs index 602edc540..b17573758 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs @@ -97,8 +97,7 @@ namespace NzbDrone.Core.Indexers.Torznab } if (capabilities.SupportedTvSearchParameters != null && - new[] { "q", "tvdbid", "rid" }.Any(v => capabilities.SupportedTvSearchParameters.Contains(v)) && - new[] { "season", "ep" }.All(v => capabilities.SupportedTvSearchParameters.Contains(v))) + new[] { "q", "imdbid" }.Any(v => capabilities.SupportedTvSearchParameters.Contains(v))) { return null; } diff --git a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs index 253386963..27ad87129 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs @@ -39,10 +39,7 @@ namespace NzbDrone.Core.Indexers.Torznab protected override ReleaseInfo ProcessItem(XElement item, ReleaseInfo releaseInfo) { var torrentInfo = base.ProcessItem(item, releaseInfo) as TorrentInfo; - - torrentInfo.TvdbId = GetTvdbId(item); - torrentInfo.TvRageId = GetTvRageId(item); - + torrentInfo.ImdbId = int.Parse(GetImdbId(item).Substring(2)); return torrentInfo; } @@ -100,31 +97,12 @@ namespace NzbDrone.Core.Indexers.Torznab return url; } - protected virtual int GetTvdbId(XElement item) + protected virtual string GetImdbId(XElement item) { - var tvdbIdString = TryGetTorznabAttribute(item, "tvdbid"); - int tvdbId; - - if (!tvdbIdString.IsNullOrWhiteSpace() && int.TryParse(tvdbIdString, out tvdbId)) - { - return tvdbId; - } - - return 0; + var imdbIdString = TryGetTorznabAttribute(item, "imdbid"); + return (!imdbIdString.IsNullOrWhiteSpace() ? imdbIdString.Substring(2) : null); } - protected virtual int GetTvRageId(XElement item) - { - var tvRageIdString = TryGetTorznabAttribute(item, "rageid"); - int tvRageId; - - if (!tvRageIdString.IsNullOrWhiteSpace() && int.TryParse(tvRageIdString, out tvRageId)) - { - return tvRageId; - } - - return 0; - } protected override string GetInfoHash(XElement item) { return TryGetTorznabAttribute(item, "infohash"); diff --git a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs index d4d2ec71c..1c37adb82 100644 --- a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs +++ b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs @@ -178,7 +178,7 @@ namespace NzbDrone.Core.MediaFiles _mediaFileTableCleanupService.Clean(movie, mediaFileList); var decisionsStopwatch = Stopwatch.StartNew(); - var decisions = _importDecisionMaker.GetImportDecisions(mediaFileList, movie); + var decisions = _importDecisionMaker.GetImportDecisions(mediaFileList, movie, true); decisionsStopwatch.Stop(); _logger.Trace("Import decisions complete for: {0} [{1}]", movie, decisionsStopwatch.Elapsed); diff --git a/src/NzbDrone.Core/MediaFiles/DownloadedMovieImportService.cs b/src/NzbDrone.Core/MediaFiles/DownloadedMovieImportService.cs index 05617dffe..1843bdf72 100644 --- a/src/NzbDrone.Core/MediaFiles/DownloadedMovieImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/DownloadedMovieImportService.cs @@ -183,7 +183,7 @@ namespace NzbDrone.Core.MediaFiles } } - var decisions = _importDecisionMaker.GetImportDecisions(videoFiles.ToList(), movie, folderInfo, true); + var decisions = _importDecisionMaker.GetImportDecisions(videoFiles.ToList(), movie, folderInfo, true, false); var importResults = _importApprovedMovie.Import(decisions, true, downloadClientItem, importMode); if ((downloadClientItem == null || !downloadClientItem.IsReadOnly) && @@ -237,7 +237,7 @@ namespace NzbDrone.Core.MediaFiles } } - var decisions = _importDecisionMaker.GetImportDecisions(new List() { fileInfo.FullName }, movie, null, true); + var decisions = _importDecisionMaker.GetImportDecisions(new List() { fileInfo.FullName }, movie, null, true, false); return _importApprovedMovie.Import(decisions, true, downloadClientItem, importMode); } diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedMovie.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedMovie.cs index 128ca64f9..1a2c812d6 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedMovie.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportApprovedMovie.cs @@ -83,6 +83,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport episodeFile.MediaInfo = localMovie.MediaInfo; episodeFile.Movie = localMovie.Movie; episodeFile.ReleaseGroup = localMovie.ParsedMovieInfo.ReleaseGroup; + episodeFile.Edition = localMovie.ParsedMovieInfo.Edition; bool copyOnly; switch (importMode) diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs index 9d4abe042..e1f095791 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/ImportDecisionMaker.cs @@ -19,7 +19,8 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport { List GetImportDecisions(List videoFiles, Series series); List GetImportDecisions(List videoFiles, Movie movie); - List GetImportDecisions(List videoFiles, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource); //TODO: Needs changing to ParsedMovieInfo!! + List GetImportDecisions(List videoFiles, Movie movie, bool shouldCheckQuality); + List GetImportDecisions(List videoFiles, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource, bool shouldCheckQuality); //TODO: Needs changing to ParsedMovieInfo!! List GetImportDecisions(List videoFiles, Series series, ParsedEpisodeInfo folderInfo, bool sceneSource); } @@ -31,6 +32,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport private readonly IDiskProvider _diskProvider; private readonly IVideoFileInfoReader _videoFileInfoReader; private readonly IDetectSample _detectSample; + private readonly IQualityDefinitionService _qualitiesService; private readonly Logger _logger; public ImportDecisionMaker(IEnumerable specifications, @@ -39,6 +41,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport IDiskProvider diskProvider, IVideoFileInfoReader videoFileInfoReader, IDetectSample detectSample, + IQualityDefinitionService qualitiesService, Logger logger) { _specifications = specifications; @@ -47,6 +50,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport _diskProvider = diskProvider; _videoFileInfoReader = videoFileInfoReader; _detectSample = detectSample; + _qualitiesService = qualitiesService; _logger = logger; } @@ -57,7 +61,12 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport public List GetImportDecisions(List videoFiles, Movie movie) { - return GetImportDecisions(videoFiles, movie, null, false); + return GetImportDecisions(videoFiles, movie, null, true, false); + } + + public List GetImportDecisions(List videoFiles, Movie movie, bool shouldCheckQuality = false) + { + return GetImportDecisions(videoFiles, movie, null, true, shouldCheckQuality); } public List GetImportDecisions(List videoFiles, Series series, ParsedEpisodeInfo folderInfo, bool sceneSource) @@ -77,7 +86,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport return decisions; } - public List GetImportDecisions(List videoFiles, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource) + public List GetImportDecisions(List videoFiles, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource, bool shouldCheckQuality = false) { var newFiles = _mediaFileService.FilterExistingFiles(videoFiles.ToList(), movie); @@ -88,13 +97,13 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport foreach (var file in newFiles) { - decisions.AddIfNotNull(GetDecision(file, movie, folderInfo, sceneSource, shouldUseFolderName)); + decisions.AddIfNotNull(GetDecision(file, movie, folderInfo, sceneSource, shouldUseFolderName, shouldCheckQuality)); } return decisions; } - private ImportDecision GetDecision(string file, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource, bool shouldUseFolderName) + private ImportDecision GetDecision(string file, Movie movie, ParsedMovieInfo folderInfo, bool sceneSource, bool shouldUseFolderName, bool shouldCheckQuality = false) { ImportDecision decision = null; @@ -113,6 +122,106 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport if (sceneSource) { localMovie.MediaInfo = _videoFileInfoReader.GetMediaInfo(file); + if (shouldCheckQuality) + { + var width = localMovie.MediaInfo.Width; + var current = localMovie.Quality; + var qualityName = current.Quality.Name.ToLower(); + QualityModel updated = null; + if (width > 1400) + { + if (qualityName.Contains("bluray")) + { + updated = new QualityModel(Quality.Bluray1080p); + } + + else if (qualityName.Contains("webdl")) + { + updated = new QualityModel(Quality.WEBDL1080p); + } + + else if (qualityName.Contains("hdtv")) + { + updated = new QualityModel(Quality.HDTV1080p); + } + + else + { + + var def = _qualitiesService.Get(Quality.HDTV1080p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.HDTV1080p); + } + def = _qualitiesService.Get(Quality.WEBDL1080p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.WEBDL1080p); + } + def = _qualitiesService.Get(Quality.Bluray1080p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.Bluray1080p); + } + if (updated == null) + { + updated = new QualityModel(Quality.Bluray1080p); + } + } + + } + else + if (width > 900) + { + if (qualityName.Contains("bluray")) + { + updated = new QualityModel(Quality.Bluray720p); + } + + else if (qualityName.Contains("webdl")) + { + updated = new QualityModel(Quality.WEBDL720p); + } + + else if (qualityName.Contains("hdtv")) + { + updated = new QualityModel(Quality.HDTV720p); + } + + else + { + + var def = _qualitiesService.Get(Quality.HDTV720p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.HDTV720p); + } + def = _qualitiesService.Get(Quality.WEBDL720p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.WEBDL720p); + } + def = _qualitiesService.Get(Quality.Bluray720p); + if (localMovie.Size > def.MinSize && def.MaxSize > localMovie.Size) + { + updated = new QualityModel(Quality.Bluray720p); + } + if (updated == null) + { + updated = new QualityModel(Quality.Bluray720p); + } + + } + } + if (updated != null && updated != current) + { + updated.QualitySource = QualitySource.MediaInfo; + localMovie.Quality = updated; + } + } + + + decision = GetDecision(localMovie); } else diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs index e8f228327..d113d53b0 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Manual/ManualImportService.cs @@ -161,7 +161,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Manual } var importDecisions = _importDecisionMaker.GetImportDecisions(new List { file }, - movie, null, SceneSource(movie, folder)); + movie, null, SceneSource(movie, folder), true); return importDecisions.Any() ? MapItem(importDecisions.First(), folder, downloadId) : null; } diff --git a/src/NzbDrone.Core/MediaFiles/MediaFileService.cs b/src/NzbDrone.Core/MediaFiles/MediaFileService.cs index 0587bb793..37e663ee5 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaFileService.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaFileService.cs @@ -26,6 +26,7 @@ namespace NzbDrone.Core.MediaFiles List FilterExistingFiles(List files, Series series); List FilterExistingFiles(List files, Movie movie); EpisodeFile Get(int id); + MovieFile GetMovie(int id); List Get(IEnumerable ids); List GetMovies(IEnumerable ids); @@ -150,5 +151,9 @@ namespace NzbDrone.Core.MediaFiles _movieFileRepository.Update(episodeFile); } + public MovieFile GetMovie(int id) + { + return _movieFileRepository.Get(id); + } } } \ No newline at end of file diff --git a/src/NzbDrone.Core/MediaFiles/MovieFile.cs b/src/NzbDrone.Core/MediaFiles/MovieFile.cs index dfb753ab6..9bb0f1ddd 100644 --- a/src/NzbDrone.Core/MediaFiles/MovieFile.cs +++ b/src/NzbDrone.Core/MediaFiles/MovieFile.cs @@ -19,6 +19,7 @@ namespace NzbDrone.Core.MediaFiles public string ReleaseGroup { get; set; } public QualityModel Quality { get; set; } public MediaInfoModel MediaInfo { get; set; } + public string Edition { get; set; } public LazyLoaded Movie { get; set; } public override string ToString() diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/Resource/TMDBResources.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/Resource/TMDBResources.cs index 80e1b42cf..c0987e04f 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/Resource/TMDBResources.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/Resource/TMDBResources.cs @@ -55,7 +55,7 @@ namespace NzbDrone.Core.MetadataSource.SkyHook.Resource public Production_Companies[] production_companies { get; set; } public Production_Countries[] production_countries { get; set; } public string release_date { get; set; } - public int revenue { get; set; } + public long revenue { get; set; } public int runtime { get; set; } public Spoken_Languages[] spoken_languages { get; set; } public string status { get; set; } diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index 478b6dd13..6f1534ed7 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -13,6 +13,7 @@ using NzbDrone.Core.MetadataSource; using NzbDrone.Core.Tv; using Newtonsoft.Json; using System.Text.RegularExpressions; +using System.Text; namespace NzbDrone.Core.MetadataSource.SkyHook { @@ -88,8 +89,9 @@ namespace NzbDrone.Core.MetadataSource.SkyHook movie.TmdbId = TmdbId; movie.ImdbId = resource.imdb_id; movie.Title = resource.title; - movie.TitleSlug = movie.Title.ToLower().Replace(" ", "-"); + movie.TitleSlug = ToUrlSlug(movie.Title); movie.CleanTitle = Parser.Parser.CleanSeriesTitle(movie.Title); + movie.SortTitle = Parser.Parser.NormalizeTitle(movie.Title); movie.Overview = resource.overview; movie.Website = resource.homepage; if (resource.release_date.IsNotNullOrWhiteSpace()) @@ -98,11 +100,6 @@ namespace NzbDrone.Core.MetadataSource.SkyHook movie.Year = movie.InCinemas.Value.Year; } - var slugResult = _movieService.FindByTitleSlug(movie.TitleSlug); - if (slugResult != null) - { - _logger.Debug("Movie with this title slug already exists. Adding year..."); - } movie.TitleSlug += "-" + movie.Year.ToString(); movie.Images.Add(_configService.GetCoverForURL(resource.poster_path, MediaCoverTypes.Poster));//TODO: Update to load image specs from tmdb page! @@ -189,7 +186,7 @@ namespace NzbDrone.Core.MetadataSource.SkyHook { var lowerTitle = title.ToLower(); - var parserResult = Parser.Parser.ParseMovieTitle(title); + var parserResult = Parser.Parser.ParseMovieTitle(title, true); var yearTerm = ""; @@ -327,23 +324,20 @@ namespace NzbDrone.Core.MetadataSource.SkyHook imdbMovie.TmdbId = result.id; try { - imdbMovie.SortTitle = result.title; + imdbMovie.SortTitle = Parser.Parser.NormalizeTitle(result.title); imdbMovie.Title = result.title; - string titleSlug = result.title; + string titleSlug = ToUrlSlug(result.title); imdbMovie.TitleSlug = titleSlug.ToLower().Replace(" ", "-"); if (result.release_date.IsNotNullOrWhiteSpace()) { imdbMovie.Year = DateTime.Parse(result.release_date).Year; } - - - - var slugResult = _movieService.FindByTitleSlug(imdbMovie.TitleSlug); - if (slugResult != null) - { - _logger.Debug("Movie with this title slug already exists. Adding year..."); - } + //var slugResult = _movieService.FindByTitleSlug(imdbMovie.TitleSlug); + //if (slugResult != null) + //{ + // _logger.Debug("Movie with this title slug already exists. Adding year..."); + //} imdbMovie.TitleSlug += "-" + imdbMovie.Year.ToString(); imdbMovie.Images = new List(); @@ -524,5 +518,29 @@ namespace NzbDrone.Core.MetadataSource.SkyHook return MediaCoverTypes.Unknown; } } + + public static string ToUrlSlug(string value) + { + //First to lower case + value = value.ToLowerInvariant(); + + //Remove all accents + var bytes = Encoding.GetEncoding("Cyrillic").GetBytes(value); + value = Encoding.ASCII.GetString(bytes); + + //Replace spaces + value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled); + + //Remove invalid chars + value = Regex.Replace(value, @"[^a-z0-9\s-_]", "", RegexOptions.Compiled); + + //Trim dashes from end + value = value.Trim('-', '_'); + + //Replace double occurences of - or _ + value = Regex.Replace(value, @"([-_]){2,}", "$1", RegexOptions.Compiled); + + return value; + } } } diff --git a/src/NzbDrone.Core/Notifications/Email/Email.cs b/src/NzbDrone.Core/Notifications/Email/Email.cs index 71bb9130c..27e991332 100644 --- a/src/NzbDrone.Core/Notifications/Email/Email.cs +++ b/src/NzbDrone.Core/Notifications/Email/Email.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Core.Notifications.Email public override void OnGrab(GrabMessage grabMessage) { - const string subject = "Sonarr [TV] - Grabbed"; + const string subject = "Radarr [TV] - Grabbed"; var body = string.Format("{0} sent to queue.", grabMessage.Message); _emailService.SendEmail(Settings, subject, body); @@ -26,7 +26,7 @@ namespace NzbDrone.Core.Notifications.Email public override void OnDownload(DownloadMessage message) { - const string subject = "Sonarr [TV] - Downloaded"; + const string subject = "Radarr [TV] - Downloaded"; var body = string.Format("{0} Downloaded and sorted.", message.Message); _emailService.SendEmail(Settings, subject, body); diff --git a/src/NzbDrone.Core/Notifications/Email/EmailService.cs b/src/NzbDrone.Core/Notifications/Email/EmailService.cs index f1469d2e9..84d1ed298 100644 --- a/src/NzbDrone.Core/Notifications/Email/EmailService.cs +++ b/src/NzbDrone.Core/Notifications/Email/EmailService.cs @@ -64,7 +64,7 @@ namespace NzbDrone.Core.Notifications.Email try { - SendEmail(settings, "Sonarr - Test Notification", body); + SendEmail(settings, "Radarr - Test Notification", body); } catch (Exception ex) { diff --git a/src/NzbDrone.Core/Notifications/Join/Join.cs b/src/NzbDrone.Core/Notifications/Join/Join.cs index 747a141e1..4e1f81105 100644 --- a/src/NzbDrone.Core/Notifications/Join/Join.cs +++ b/src/NzbDrone.Core/Notifications/Join/Join.cs @@ -18,14 +18,14 @@ namespace NzbDrone.Core.Notifications.Join public override void OnGrab(GrabMessage grabMessage) { - const string title = "Sonarr - Episode Grabbed"; + const string title = "Radarr - Episode Grabbed"; _proxy.SendNotification(title, grabMessage.Message, Settings); } public override void OnDownload(DownloadMessage message) { - const string title = "Sonarr - Episode Downloaded"; + const string title = "Radarr - Episode Downloaded"; _proxy.SendNotification(title, message.Message, Settings); } diff --git a/src/NzbDrone.Core/Notifications/MediaBrowser/MediaBrowser.cs b/src/NzbDrone.Core/Notifications/MediaBrowser/MediaBrowser.cs index 795095c44..7c68fc306 100644 --- a/src/NzbDrone.Core/Notifications/MediaBrowser/MediaBrowser.cs +++ b/src/NzbDrone.Core/Notifications/MediaBrowser/MediaBrowser.cs @@ -18,7 +18,7 @@ namespace NzbDrone.Core.Notifications.MediaBrowser public override void OnGrab(GrabMessage grabMessage) { - const string title = "Sonarr - Grabbed"; + const string title = "Radarr - Grabbed"; if (Settings.Notify) { @@ -28,7 +28,7 @@ namespace NzbDrone.Core.Notifications.MediaBrowser public override void OnDownload(DownloadMessage message) { - const string title = "Sonarr - Downloaded"; + const string title = "Radarr - Downloaded"; if (Settings.Notify) { diff --git a/src/NzbDrone.Core/Notifications/Plex/PlexClient.cs b/src/NzbDrone.Core/Notifications/Plex/PlexClient.cs index 844b3bb0a..e38e87f96 100644 --- a/src/NzbDrone.Core/Notifications/Plex/PlexClient.cs +++ b/src/NzbDrone.Core/Notifications/Plex/PlexClient.cs @@ -18,13 +18,13 @@ namespace NzbDrone.Core.Notifications.Plex public override void OnGrab(GrabMessage grabMessage) { - const string header = "Sonarr [TV] - Grabbed"; + const string header = "Radarr [TV] - Grabbed"; _plexClientService.Notify(Settings, header, grabMessage.Message); } public override void OnDownload(DownloadMessage message) { - const string header = "Sonarr [TV] - Downloaded"; + const string header = "Radarr [TV] - Downloaded"; _plexClientService.Notify(Settings, header, message.Message); } diff --git a/src/NzbDrone.Core/Notifications/Plex/PlexHomeTheater.cs b/src/NzbDrone.Core/Notifications/Plex/PlexHomeTheater.cs index 63affad8d..e96c2c4f2 100644 --- a/src/NzbDrone.Core/Notifications/Plex/PlexHomeTheater.cs +++ b/src/NzbDrone.Core/Notifications/Plex/PlexHomeTheater.cs @@ -23,14 +23,14 @@ namespace NzbDrone.Core.Notifications.Plex public override void OnGrab(GrabMessage grabMessage) { - const string header = "Sonarr - Grabbed"; + const string header = "Radarr - Grabbed"; Notify(Settings, header, grabMessage.Message); } public override void OnDownload(DownloadMessage message) { - const string header = "Sonarr - Downloaded"; + const string header = "Radarr - Downloaded"; Notify(Settings, header, message.Message); } diff --git a/src/NzbDrone.Core/Notifications/Plex/PlexServerService.cs b/src/NzbDrone.Core/Notifications/Plex/PlexServerService.cs index 727c63e35..67b8efe23 100644 --- a/src/NzbDrone.Core/Notifications/Plex/PlexServerService.cs +++ b/src/NzbDrone.Core/Notifications/Plex/PlexServerService.cs @@ -98,7 +98,7 @@ namespace NzbDrone.Core.Notifications.Plex { if (version >= new Version(1, 3, 0) && version < new Version(1, 3, 1)) { - throw new PlexVersionException("Found version {0}, upgrade to PMS 1.3.1 to fix library updating and then restart Sonarr", version); + throw new PlexVersionException("Found version {0}, upgrade to PMS 1.3.1 to fix library updating and then restart Radarr", version); } } diff --git a/src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs b/src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs index 684ff702b..be2afe912 100644 --- a/src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs +++ b/src/NzbDrone.Core/Notifications/PushBullet/PushBullet.cs @@ -18,14 +18,14 @@ namespace NzbDrone.Core.Notifications.PushBullet public override void OnGrab(GrabMessage grabMessage) { - const string title = "Sonarr - Episode Grabbed"; + const string title = "Radarr - Episode Grabbed"; _proxy.SendNotification(title, grabMessage.Message, Settings); } public override void OnDownload(DownloadMessage message) { - const string title = "Sonarr - Episode Downloaded"; + const string title = "Radarr - Episode Downloaded"; _proxy.SendNotification(title, message.Message, Settings); } diff --git a/src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs b/src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs index b7406d981..ad3f23c9d 100644 --- a/src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs +++ b/src/NzbDrone.Core/Notifications/PushBullet/PushBulletProxy.cs @@ -92,7 +92,7 @@ namespace NzbDrone.Core.Notifications.PushBullet { try { - const string title = "Sonarr - Test Notification"; + const string title = "Radarr - Test Notification"; const string body = "This is a test message from Radarr"; SendNotification(title, body, settings); diff --git a/src/NzbDrone.Core/Notifications/Pushalot/PushalotSettings.cs b/src/NzbDrone.Core/Notifications/Pushalot/PushalotSettings.cs index a0fbd08e1..de3ebb1ff 100644 --- a/src/NzbDrone.Core/Notifications/Pushalot/PushalotSettings.cs +++ b/src/NzbDrone.Core/Notifications/Pushalot/PushalotSettings.cs @@ -28,7 +28,7 @@ namespace NzbDrone.Core.Notifications.Pushalot [FieldDefinition(1, Label = "Priority", Type = FieldType.Select, SelectOptions = typeof(PushalotPriority))] public int Priority { get; set; } - [FieldDefinition(2, Label = "Image", Type = FieldType.Checkbox, HelpText = "Include Sonarr logo with notifications")] + [FieldDefinition(2, Label = "Image", Type = FieldType.Checkbox, HelpText = "Include Radarr logo with notifications")] public bool Image { get; set; } public bool IsValid => !string.IsNullOrWhiteSpace(AuthToken); diff --git a/src/NzbDrone.Core/Notifications/Slack/Slack.cs b/src/NzbDrone.Core/Notifications/Slack/Slack.cs index 498d17349..5e581a25f 100644 --- a/src/NzbDrone.Core/Notifications/Slack/Slack.cs +++ b/src/NzbDrone.Core/Notifications/Slack/Slack.cs @@ -101,7 +101,7 @@ namespace NzbDrone.Core.Notifications.Slack { try { - var message = $"Test message from Sonarr posted at {DateTime.Now}"; + var message = $"Test message from Radarr posted at {DateTime.Now}"; var payload = new SlackPayload { IconEmoji = Settings.Icon, diff --git a/src/NzbDrone.Core/Notifications/Twitter/TwitterService.cs b/src/NzbDrone.Core/Notifications/Twitter/TwitterService.cs index 6c894b228..f6e334194 100644 --- a/src/NzbDrone.Core/Notifications/Twitter/TwitterService.cs +++ b/src/NzbDrone.Core/Notifications/Twitter/TwitterService.cs @@ -125,7 +125,7 @@ namespace NzbDrone.Core.Notifications.Twitter { try { - var body = "Sonarr: Test Message @ " + DateTime.Now; + var body = "Radarr: Test Message @ " + DateTime.Now; SendNotification(body, settings); } diff --git a/src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs b/src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs index c6a0c82df..08fdbfaa4 100644 --- a/src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs +++ b/src/NzbDrone.Core/Notifications/Xbmc/Xbmc.cs @@ -23,14 +23,14 @@ namespace NzbDrone.Core.Notifications.Xbmc public override void OnGrab(GrabMessage grabMessage) { - const string header = "Sonarr - Grabbed"; + const string header = "Radarr - Grabbed"; Notify(Settings, header, grabMessage.Message); } public override void OnDownload(DownloadMessage message) { - const string header = "Sonarr - Downloaded"; + const string header = "Radarr - Downloaded"; Notify(Settings, header, message.Message); UpdateAndClean(message.Series, message.OldFiles.Any()); diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 3a6153c86..563e08c8e 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -193,6 +193,10 @@ + + + + @@ -587,6 +591,7 @@ + @@ -594,6 +599,10 @@ + + + + diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index 25399e6de..36b8e926d 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -58,7 +58,7 @@ namespace NzbDrone.Core.Organizer public static readonly Regex SeriesTitleRegex = new Regex(@"(?\{(?:Series)(?[- ._])(Clean)?Title\})", RegexOptions.Compiled | RegexOptions.IgnoreCase); - public static readonly Regex MovieTitleRegex = new Regex(@"(?\{(?:Movie)(?[- ._])(Clean)?Title\})", + public static readonly Regex MovieTitleRegex = new Regex(@"(?\{((?:(Movie|Original))(?[- ._])(Clean)?Title)\})", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex FileNameCleanupRegex = new Regex(@"([- ._])(\1)+", RegexOptions.Compiled); @@ -163,6 +163,7 @@ namespace NzbDrone.Core.Organizer AddReleaseDateTokens(tokenHandlers, movie.Year); //In case we want to separate the year AddQualityTokens(tokenHandlers, movie, movieFile); AddMediaInfoTokens(tokenHandlers, movieFile); + AddMovieFileTokens(tokenHandlers, movieFile); var fileName = ReplaceTokens(pattern, tokenHandlers, namingConfig).Trim(); fileName = FileNameCleanupRegex.Replace(fileName, match => match.Captures[0].Value[0].ToString()); @@ -503,6 +504,13 @@ namespace NzbDrone.Core.Organizer tokenHandlers["{Release Group}"] = m => episodeFile.ReleaseGroup ?? m.DefaultValue("Sonarr"); } + private void AddMovieFileTokens(Dictionary> tokenHandlers, MovieFile episodeFile) + { + tokenHandlers["{Original Title}"] = m => GetOriginalTitle(episodeFile); + tokenHandlers["{Original Filename}"] = m => GetOriginalFileName(episodeFile); + tokenHandlers["{Release Group}"] = m => episodeFile.ReleaseGroup ?? m.DefaultValue("Sonarr"); + } + private void AddQualityTokens(Dictionary> tokenHandlers, Series series, EpisodeFile episodeFile) { var qualityTitle = _qualityDefinitionService.Get(episodeFile.Quality.Quality).Title; diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 2120c3add..d133f4e86 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -18,16 +18,10 @@ namespace NzbDrone.Core.Parser private static readonly Regex[] ReportMovieTitleRegex = new[] { //Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.Special.Edition.2011 - new Regex(@"^(?.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<edition>(\w+\.?edition))\.(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)", + new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<edition>(\.?((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized).(Cut|Edition|Version)|Extended|Uncensored|Remastered|Unrated|Uncut|IMAX)))\.(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled), //Special, Despecialized, etc. Edition Movies, e.g: Mission.Impossible.3.2011.Special.Edition //TODO: Seems to slow down parsing heavily! - new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)(?<edition>((\w+\.?){1,3}edition))", - RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Cut Movies, e.g: Mission.Impossible.3.Directors.Cut.2011 - new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<edition>(\w+\.?cut))\.(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)", - RegexOptions.IgnoreCase | RegexOptions.Compiled), - //Cut Movies, e.g: Mission.Impossible.3.2011.Directors.Cut - new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)(?<edition>((\w+\.?){1,3}cut))", + new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)\[!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\]|\W\d+)))+(\W+|_|$)(?!\\)(?<edition>((Extended.|Ultimate.)?(Director.?s|Collector.?s|Theatrical|Ultimate|Final|Extended|Rogue|Special|Despecialized).(Cut|Edition|Version)|Extended|Uncensored|Remastered|Unrated|Uncut|IMAX))", RegexOptions.IgnoreCase | RegexOptions.Compiled), //Normal movie format, e.g: Mission.Impossible.3.2011 @@ -36,6 +30,15 @@ namespace NzbDrone.Core.Parser //PassThePopcorn Torrent names: Star.Wars[PassThePopcorn] new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![()\[!]))*(?<year>(\[\w *\])))+(\W+|_|$)(?!\\)", RegexOptions.IgnoreCase | RegexOptions.Compiled), + //That did not work? Maybe some tool uses [] for years. Who would do that? + new Regex(@"^(?<title>.+?)?(?:(?:[-_\W](?<![)!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\W\d+)))+(\W+|_|$)(?!\\)", + RegexOptions.IgnoreCase | RegexOptions.Compiled), + }; + + private static readonly Regex[] ReportMovieTitleFolderRegex = new[] + { + //When year comes first. + new Regex(@"^(?:(?:[-_\W](?<![)!]))*(?<year>(19|20)\d{2}(?!p|i|\d+|\W\d+)))+(\W+|_|$)(?<title>.+?)?$") }; private static readonly Regex[] ReportTitleRegex = new[] @@ -327,7 +330,7 @@ namespace NzbDrone.Core.Parser { var fileInfo = new FileInfo(path); - var result = ParseMovieTitle(fileInfo.Name); + var result = ParseMovieTitle(fileInfo.Name, true); if (result == null) { @@ -345,7 +348,7 @@ namespace NzbDrone.Core.Parser } - public static ParsedMovieInfo ParseMovieTitle(string title) + public static ParsedMovieInfo ParseMovieTitle(string title, bool isDir = false) { ParsedMovieInfo realResult = null; @@ -376,7 +379,14 @@ namespace NzbDrone.Core.Parser simpleTitle = CleanTorrentSuffixRegex.Replace(simpleTitle, string.Empty); - foreach (var regex in ReportMovieTitleRegex) + var allRegexes = ReportMovieTitleRegex.ToList(); + + if (isDir) + { + allRegexes.AddRange(ReportMovieTitleFolderRegex); + } + + foreach (var regex in allRegexes) { var match = regex.Matches(simpleTitle); diff --git a/src/NzbDrone.Core/Queue/QueueService.cs b/src/NzbDrone.Core/Queue/QueueService.cs index f03d86ccc..f7390ee6b 100644 --- a/src/NzbDrone.Core/Queue/QueueService.cs +++ b/src/NzbDrone.Core/Queue/QueueService.cs @@ -44,14 +44,14 @@ namespace NzbDrone.Core.Queue private IEnumerable<Queue> MapQueue(TrackedDownload trackedDownload) { - if (trackedDownload.RemoteEpisode.Episodes != null && trackedDownload.RemoteEpisode.Episodes.Any()) + if (trackedDownload.RemoteEpisode != null && trackedDownload.RemoteEpisode.Episodes != null && trackedDownload.RemoteEpisode.Episodes.Any()) { foreach (var episode in trackedDownload.RemoteEpisode.Episodes) { yield return MapEpisode(trackedDownload, episode); } } - else if (trackedDownload.RemoteMovie.Movie != null) + else if (trackedDownload.RemoteMovie != null && trackedDownload.RemoteMovie.Movie != null) { yield return MapMovie(trackedDownload, trackedDownload.RemoteMovie.Movie); } diff --git a/src/NzbDrone.Core/RootFolders/RootFolderService.cs b/src/NzbDrone.Core/RootFolders/RootFolderService.cs index f1a1145e9..bf4d06972 100644 --- a/src/NzbDrone.Core/RootFolders/RootFolderService.cs +++ b/src/NzbDrone.Core/RootFolders/RootFolderService.cs @@ -149,7 +149,11 @@ namespace NzbDrone.Core.RootFolders foreach (string unmappedFolder in unmappedFolders) { var di = new DirectoryInfo(unmappedFolder.Normalize()); - results.Add(new UnmappedFolder { Name = di.Name, Path = di.FullName }); + if (!di.Attributes.HasFlag(FileAttributes.System) && !di.Attributes.HasFlag(FileAttributes.Hidden)) + { + results.Add(new UnmappedFolder { Name = di.Name, Path = di.FullName }); + } + } var setToRemove = SpecialFolders; diff --git a/src/NzbDrone.Host/Bootstrap.cs b/src/NzbDrone.Host/Bootstrap.cs index ec3e7a32a..5fdb487de 100644 --- a/src/NzbDrone.Host/Bootstrap.cs +++ b/src/NzbDrone.Host/Bootstrap.cs @@ -24,7 +24,7 @@ namespace Radarr.Host SecurityProtocolPolicy.Register(); X509CertificateValidationPolicy.Register(); - Logger.Info("Starting Sonarr - {0} - Version {1}", Assembly.GetCallingAssembly().Location, Assembly.GetExecutingAssembly().GetName().Version); + Logger.Info("Starting Radarr - {0} - Version {1}", Assembly.GetCallingAssembly().Location, Assembly.GetExecutingAssembly().GetName().Version); if (!PlatformValidation.IsValidate(userAlert)) { diff --git a/src/NzbDrone/Resources/Thumbs.db b/src/NzbDrone/Resources/Thumbs.db deleted file mode 100644 index 32f10f9f8..000000000 Binary files a/src/NzbDrone/Resources/Thumbs.db and /dev/null differ diff --git a/src/Thumbs.db b/src/Thumbs.db deleted file mode 100644 index f63c67336..000000000 Binary files a/src/Thumbs.db and /dev/null differ diff --git a/src/UI/Activity/History/Details/HistoryDetailsViewTemplate.hbs b/src/UI/Activity/History/Details/HistoryDetailsViewTemplate.hbs index 89a757660..090c46978 100644 --- a/src/UI/Activity/History/Details/HistoryDetailsViewTemplate.hbs +++ b/src/UI/Activity/History/Details/HistoryDetailsViewTemplate.hbs @@ -91,7 +91,7 @@ {{/if_eq}} {{#if_eq reason compare="MissingFromDisk"}} - Sonarr was unable to find the file on disk so it was removed + Radarr was unable to find the file on disk so it was removed {{/if_eq}} {{#if_eq reason compare="Upgrade"}} diff --git a/src/UI/AddMovies/MonitoringTooltipTemplate.hbs b/src/UI/AddMovies/MonitoringTooltipTemplate.hbs index 0cf813e98..66ad7d77f 100644 --- a/src/UI/AddMovies/MonitoringTooltipTemplate.hbs +++ b/src/UI/AddMovies/MonitoringTooltipTemplate.hbs @@ -1,18 +1,6 @@ <dl class="monitor-tooltip-contents"> - <dt>All</dt> - <dd>Monitor all episodes except specials</dd> - <dt>Future</dt> - <dd>Monitor episodes that have not aired yet</dd> - <dt>Missing</dt> - <dd>Monitor episodes that do not have files or have not aired yet</dd> - <dt>Existing</dt> - <dd>Monitor episodes that have files or have not aired yet</dd> - <dt>First Season</dt> - <dd>Monitor all episodes of the first season. All other seasons will be ignored</dd> - <dt>Latest Season</dt> - <dd>Monitor all episodes of the latest season and future seasons</dd> - <dt>None</dt> - <dd>No episodes will be monitored.</dd> - <!--<dt>Latest Season</dt>--> - <!--<dd>Monitor all episodes the latest season only, previous seasons will be ignored</dd>--> + <dt>Yes</dt> + <dd>Monitor for new releases</dd> + <dt>No</dt> + <dd>Do not monitor for new releases</dd> </dl> \ No newline at end of file diff --git a/src/UI/AddMovies/SearchResultView.js b/src/UI/AddMovies/SearchResultView.js index abeaf5016..f563e6f66 100644 --- a/src/UI/AddMovies/SearchResultView.js +++ b/src/UI/AddMovies/SearchResultView.js @@ -84,7 +84,7 @@ var view = Marionette.ItemView.extend({ content : content, html : true, trigger : 'hover', - title : 'Episode Monitoring Options', + title : 'Movie Monitoring Options', placement : 'right', container : this.$el }); diff --git a/src/UI/Calendar/CalendarFeedViewTemplate.hbs b/src/UI/Calendar/CalendarFeedViewTemplate.hbs index c192c740d..8d8e3c7be 100644 --- a/src/UI/Calendar/CalendarFeedViewTemplate.hbs +++ b/src/UI/Calendar/CalendarFeedViewTemplate.hbs @@ -1,7 +1,7 @@ <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>Sonarr Calendar feed</h3> + <h3>Radarr Calendar feed</h3> </div> <div class="modal-body edit-series-modal"> <div class="form-horizontal"> diff --git a/src/UI/Cells/DownloadedQualityCell.js b/src/UI/Cells/DownloadedQualityCell.js new file mode 100644 index 000000000..1a7d9c354 --- /dev/null +++ b/src/UI/Cells/DownloadedQualityCell.js @@ -0,0 +1,28 @@ +var Backgrid = require('backgrid'); +var ProfileCollection = require('../Profile/ProfileCollection'); +var _ = require('underscore'); + +module.exports = Backgrid.Cell.extend({ + className : 'profile-cell', + + _originalInit : Backgrid.Cell.prototype.initialize, + + initialize : function () { + this._originalInit.apply(this, arguments); + + this.listenTo(ProfileCollection, 'sync', this.render); + }, + + render : function() { + + this.$el.empty(); + if (this.model.get("movieFile")) { + var profileId = this.model.get("movieFile").quality.quality.id; + this.$el.html(this.model.get("movieFile").quality.quality.name); + + } + + + return this; + } +}); diff --git a/src/UI/Cells/FileTitleCell.js b/src/UI/Cells/FileTitleCell.js new file mode 100644 index 000000000..372ee07c4 --- /dev/null +++ b/src/UI/Cells/FileTitleCell.js @@ -0,0 +1,15 @@ +var NzbDroneCell = require('./NzbDroneCell'); + +module.exports = NzbDroneCell.extend({ + className : 'file-title-cell', + + render : function() { + this.$el.empty(); + + var title = this.model.get('relativePath'); + this.$el.html(title); + + + return this; + } +}); diff --git a/src/UI/Cells/InCinemasCell.js b/src/UI/Cells/InCinemasCell.js index a49690f61..9f1cb2d57 100644 --- a/src/UI/Cells/InCinemasCell.js +++ b/src/UI/Cells/InCinemasCell.js @@ -7,10 +7,16 @@ module.exports = TemplatedCell.extend({ var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; - var cinemasDate = new Date(this.model.get("inCinemas")); - var year = cinemasDate.getFullYear(); - var month = monthNames[cinemasDate.getMonth()]; - this.$el.html(month + " " + year); //Hack, but somehow handlebar helper does not work. - return this; + + this.$el.html(""); + + if (this.model.get("inCinemas")) { + var cinemasDate = new Date(this.model.get("inCinemas")); + var year = cinemasDate.getFullYear(); + var month = monthNames[cinemasDate.getMonth()]; + this.$el.html(month + " " + year); //Hack, but somehow handlebar helper does not work. + } + + return this; } }); diff --git a/src/UI/Cells/MediaInfoCell.js b/src/UI/Cells/MediaInfoCell.js new file mode 100644 index 000000000..ed42380a3 --- /dev/null +++ b/src/UI/Cells/MediaInfoCell.js @@ -0,0 +1,23 @@ +var NzbDroneCell = require('./NzbDroneCell'); + +module.exports = NzbDroneCell.extend({ + className : 'release-title-cell', + + render : function() { + this.$el.empty(); + + var info = this.model.get('mediaInfo'); + if (info) { + var runtime = info.runTime; + if (runtime) { + runtime = runtime.split(".")[0]; + } + var video = "{0} ({1}x{2}) ({3})".format(info.videoCodec, info.width, info.height, runtime); + var audio = "{0} ({1})".format(info.audioFormat, info.audioLanguages); + this.$el.html(video + " " + audio); + } + + + return this; + } +}); diff --git a/src/UI/Cells/MovieDownloadStatusCell.js b/src/UI/Cells/MovieDownloadStatusCell.js index ba35657b4..7cb154374 100644 --- a/src/UI/Cells/MovieDownloadStatusCell.js +++ b/src/UI/Cells/MovieDownloadStatusCell.js @@ -3,4 +3,8 @@ var TemplatedCell = require('./TemplatedCell'); module.exports = TemplatedCell.extend({ className : 'movie-title-cell', template : 'Cells/MovieDownloadStatusTemplate', + sortKey : function(model) { + debugger; + return 0; + } }); diff --git a/src/UI/Cells/MovieStatusCell.js b/src/UI/Cells/MovieStatusCell.js index 126afeb98..668e36d4e 100644 --- a/src/UI/Cells/MovieStatusCell.js +++ b/src/UI/Cells/MovieStatusCell.js @@ -32,10 +32,10 @@ module.exports = NzbDroneCell.extend({ this._setStatusWeight(1); } - else if (!monitored) { - this.$el.html('<i class="icon-sonarr-series-unmonitored grid-icon" title="Not Monitored"></i>'); - this._setStatusWeight(0); - } + // else if (!monitored) { + // this.$el.html('<i class="icon-sonarr-series-unmonitored grid-icon" title="Not Monitored"></i>'); + // this._setStatusWeight(0); + // } return this; }, diff --git a/src/UI/Cells/QualityCell.js b/src/UI/Cells/QualityCell.js index 962bd2ab4..947eb4e91 100644 --- a/src/UI/Cells/QualityCell.js +++ b/src/UI/Cells/QualityCell.js @@ -4,5 +4,7 @@ var QualityCellEditor = require('./Edit/QualityCellEditor'); module.exports = TemplatedCell.extend({ className : 'quality-cell', template : 'Cells/QualityCellTemplate', - editor : QualityCellEditor -}); \ No newline at end of file + editor : QualityCellEditor, + + +}); diff --git a/src/UI/Cells/QualityCellTemplate.hbs b/src/UI/Cells/QualityCellTemplate.hbs index 6625ade9b..9c76376a9 100644 --- a/src/UI/Cells/QualityCellTemplate.hbs +++ b/src/UI/Cells/QualityCellTemplate.hbs @@ -1,5 +1,5 @@ {{#if_gt proper compare="1"}} <span class="badge badge-info" title="PROPER">{{quality.name}}</span> {{else}} - <span class="badge">{{quality.name}}</span> -{{/if_gt}} \ No newline at end of file + <span class="badge" title="{{#if hardcodedSubs}}Warning: {{hardcodedSubs}}{{/if}}">{{quality.name}}</span> +{{/if_gt}} diff --git a/src/UI/Cells/ReleaseTitleCell.js b/src/UI/Cells/ReleaseTitleCell.js index 7d3551e41..761c642ff 100644 --- a/src/UI/Cells/ReleaseTitleCell.js +++ b/src/UI/Cells/ReleaseTitleCell.js @@ -17,4 +17,4 @@ module.exports = NzbDroneCell.extend({ return this; } -}); \ No newline at end of file +}); diff --git a/src/UI/Handlebars/Helpers/Series.js b/src/UI/Handlebars/Helpers/Series.js index b33e192b0..5f5cce2ed 100644 --- a/src/UI/Handlebars/Helpers/Series.js +++ b/src/UI/Handlebars/Helpers/Series.js @@ -181,10 +181,13 @@ Handlebars.registerHelper('inCinemas', function() { var year = d.getFullYear(); return "Available: " + day + ". " + month + " " + year; } - var cinemasDate = new Date(this.inCinemas); - var year = cinemasDate.getFullYear(); - var month = monthNames[cinemasDate.getMonth()]; - return "In Cinemas: " + month + " " + year; + if (this.inCinemas) { + var cinemasDate = new Date(this.inCinemas); + var year = cinemasDate.getFullYear(); + var month = monthNames[cinemasDate.getMonth()]; + return "In Cinemas: " + month + " " + year; + } + return "To be announced"; }); Handlebars.registerHelper('tvRageUrl', function() { diff --git a/src/UI/ManualImport/Movie/SelectMovieLayout.js b/src/UI/ManualImport/Movie/SelectMovieLayout.js index 55799a2c5..ecde63b54 100644 --- a/src/UI/ManualImport/Movie/SelectMovieLayout.js +++ b/src/UI/ManualImport/Movie/SelectMovieLayout.js @@ -21,7 +21,7 @@ module.exports = Marionette.Layout.extend({ name : 'title', label : 'Title', cell : 'String', - sortValue : 'sortTitle' + sortValue : 'title' } ], diff --git a/src/UI/Movies/Details/InfoViewTemplate.hbs b/src/UI/Movies/Details/InfoViewTemplate.hbs index 35652f838..c62818297 100644 --- a/src/UI/Movies/Details/InfoViewTemplate.hbs +++ b/src/UI/Movies/Details/InfoViewTemplate.hbs @@ -15,12 +15,6 @@ <span class="label label-info">{{Bytes sizeOnDisk}}</span> - {{#if_eq fileCount compare="1"}} - <span class="label label-info"> 1 file</span> - {{else}} - <span class="label label-info"> {{fileCount}} files</span> - {{/if_eq}} - {{#if_eq status compare="released"}} <span class="label label-info">{{inCinemas}}</span> {{else}} diff --git a/src/UI/Movies/Details/MoviesDetailsLayout.js b/src/UI/Movies/Details/MoviesDetailsLayout.js index da92d260a..1d01f8439 100644 --- a/src/UI/Movies/Details/MoviesDetailsLayout.js +++ b/src/UI/Movies/Details/MoviesDetailsLayout.js @@ -11,6 +11,7 @@ var LoadingView = require('../../Shared/LoadingView'); var EpisodeFileEditorLayout = require('../../EpisodeFile/Editor/EpisodeFileEditorLayout'); var HistoryLayout = require('../History/MovieHistoryLayout'); var SearchLayout = require('../Search/MovieSearchLayout'); +var FilesLayout = require("../Files/FilesLayout"); require('backstrech'); require('../../Mixins/backbone.signalr.mixin'); @@ -22,7 +23,8 @@ module.exports = Marionette.Layout.extend({ seasons : '#seasons', info : '#info', search : '#movie-search', - history : '#movie-history' + history : '#movie-history', + files : "#movie-files" }, @@ -36,11 +38,12 @@ module.exports = Marionette.Layout.extend({ poster : '.x-movie-poster', manualSearch : '.x-manual-search', history : '.x-movie-history', - search : '.x-movie-search' + search : '.x-movie-search', + files : ".x-movie-files" }, events : { - 'click .x-episode-file-editor' : '_openEpisodeFileEditor', + 'click .x-episode-file-editor' : '_showFiles', 'click .x-monitored' : '_toggleMonitored', 'click .x-edit' : '_editMovie', 'click .x-refresh' : '_refreshMovies', @@ -48,7 +51,8 @@ module.exports = Marionette.Layout.extend({ 'click .x-search' : '_moviesSearch', 'click .x-manual-search' : '_showSearch', 'click .x-movie-history' : '_showHistory', - 'click .x-movie-search' : '_showSearch' + 'click .x-movie-search' : '_showSearch', + "click .x-movie-files" : "_showFiles", }, initialize : function() { @@ -72,11 +76,18 @@ module.exports = Marionette.Layout.extend({ this.searchLayout = new SearchLayout({ model : this.model }); this.searchLayout.startManualSearch = true; + this.filesLayout = new FilesLayout({ model : this.model }); + this._showBackdrop(); this._showSeasons(); this._setMonitoredState(); this._showInfo(); - this._showHistory(); + if (this.model.get("movieFile")) { + this._showFiles() + } else { + this._showHistory(); + } + }, onRender : function() { @@ -144,6 +155,15 @@ module.exports = Marionette.Layout.extend({ this.search.show(this.searchLayout); }, + _showFiles : function(e) { + if (e) { + e.preventDefault(); + } + + this.ui.files.tab('show'); + this.files.show(this.filesLayout); + }, + _toggleMonitored : function() { var savePromise = this.model.save('monitored', !this.model.get('monitored'), { wait : true }); diff --git a/src/UI/Movies/Details/MoviesDetailsTemplate.hbs b/src/UI/Movies/Details/MoviesDetailsTemplate.hbs index 8516e5665..8e5bb874e 100644 --- a/src/UI/Movies/Details/MoviesDetailsTemplate.hbs +++ b/src/UI/Movies/Details/MoviesDetailsTemplate.hbs @@ -9,7 +9,7 @@ {{title}} <div class="movie-actions pull-right"> <div class="x-episode-file-editor"> - <i class="icon-sonarr-episode-file" title="Modify episode files for movie"/> + <i class="icon-sonarr-episode-file" title="Modify movie files"/> </div> <div class="x-refresh"> <i class="icon-sonarr-refresh icon-can-spin" title="Update movie info and scan disk"/> @@ -42,10 +42,12 @@ <ul class="nav nav-tabs" id="myTab"> <li><a href="#movie-history" class="x-movie-history">History</a></li> <li><a href="#movie-search" class="x-movie-search">Search</a></li> + <li><a href="#movie-files" class="x-movie-files">Files</a></li> </ul> <div class="tab-content"> <div class="tab-pane" id="movie-history"/> <div class="tab-pane" id="movie-search"/> + <div class="tab-pane" id="movie-files"/> </div> </div> </div> diff --git a/src/UI/Movies/Files/DeleteFileCell.js b/src/UI/Movies/Files/DeleteFileCell.js new file mode 100644 index 000000000..45f815f04 --- /dev/null +++ b/src/UI/Movies/Files/DeleteFileCell.js @@ -0,0 +1,26 @@ +var vent = require('vent'); +var Backgrid = require('backgrid'); + +module.exports = Backgrid.Cell.extend({ + className : 'delete-episode-file-cell', + + events : { + 'click' : '_onClick' + }, + + render : function() { + this.$el.empty(); + this.$el.html('<i class="icon-sonarr-delete" title="Delete movie file from disk"></i>'); + + return this; + }, + + _onClick : function() { + var self = this; + if (window.confirm('Are you sure you want to delete \'{0}\' from disk?'.format(this.model.get('relativePath')))) { + this.model.destroy().done(function() { + vent.trigger(vent.Events.MovieFileDeleted, { movieFile : self.model }); + }); + } + } +}); diff --git a/src/UI/Movies/Files/FileModel.js b/src/UI/Movies/Files/FileModel.js new file mode 100644 index 000000000..cb2f217f3 --- /dev/null +++ b/src/UI/Movies/Files/FileModel.js @@ -0,0 +1,3 @@ +var Backbone = require('backbone'); + +module.exports = Backbone.Model.extend({}); diff --git a/src/UI/Movies/Files/FilesCollection.js b/src/UI/Movies/Files/FilesCollection.js new file mode 100644 index 000000000..dc787838e --- /dev/null +++ b/src/UI/Movies/Files/FilesCollection.js @@ -0,0 +1,30 @@ +var PagableCollection = require('backbone.pageable'); +var FileModel = require('./FileModel'); +var AsSortedCollection = require('../../Mixins/AsSortedCollection'); + +var Collection = PagableCollection.extend({ + url : window.NzbDrone.ApiRoot + "/moviefile", + model : FileModel, + + state : { + pageSize : 2000, + sortKey : 'title', + order : -1 + }, + + mode : 'client', + + sortMappings : { + 'quality' : { + sortKey : "qualityWeight" + }, + "edition" : { + sortKey : "edition" + } + }, + +}); + +Collection = AsSortedCollection.call(Collection); + +module.exports = Collection; diff --git a/src/UI/Movies/Files/FilesLayout.js b/src/UI/Movies/Files/FilesLayout.js new file mode 100644 index 000000000..3e6dd2bdd --- /dev/null +++ b/src/UI/Movies/Files/FilesLayout.js @@ -0,0 +1,107 @@ +var vent = require('vent'); +var Marionette = require('marionette'); +var Backgrid = require('backgrid'); +//var ButtonsView = require('./ButtonsView'); +//var ManualSearchLayout = require('./ManualLayout'); +var FilesCollection = require('./FilesCollection'); +var CommandController = require('../../Commands/CommandController'); +var LoadingView = require('../../Shared/LoadingView'); +var NoResultsView = require('./NoFilesView'); +var FileModel = require("./FileModel"); +var FileTitleCell = require('../../Cells/FileTitleCell'); +var FileSizeCell = require('../../Cells/FileSizeCell'); +var QualityCell = require('../../Cells/QualityCell'); +var MediaInfoCell = require('../../Cells/MediaInfoCell'); +var ApprovalStatusCell = require('../../Cells/ApprovalStatusCell'); +var DownloadReportCell = require('../../Release/DownloadReportCell'); +var AgeCell = require('../../Release/AgeCell'); +var ProtocolCell = require('../../Release/ProtocolCell'); +var PeersCell = require('../../Release/PeersCell'); +var EditionCell = require('../../Cells/EditionCell'); +var DeleteFileCell = require("./DeleteFileCell"); + +module.exports = Marionette.Layout.extend({ + template : 'Movies/Files/FilesLayoutTemplate', + + regions : { + main : '#movie-files-region', + grid : "#movie-files-grid" + }, + + events : { + 'click .x-search-auto' : '_searchAuto', + 'click .x-search-manual' : '_searchManual', + 'click .x-search-back' : '_showButtons' + }, + + columns : [ + { + name : 'title', + label : 'Title', + cell : FileTitleCell + }, + { + name : "mediaInfo", + label : "Media Info", + cell : MediaInfoCell + }, + { + name : 'edition', + label : 'Edition', + cell : EditionCell, + title : "Edition", + }, + { + name : 'size', + label : 'Size', + cell : FileSizeCell + }, + { + name : 'quality', + label : 'Quality', + cell : QualityCell, + }, + { + name : "delete", + label : "", + cell : DeleteFileCell, + } + ], + + + initialize : function(movie) { + this.filesCollection = new FilesCollection(); + var file = movie.model.get("movieFile"); + this.filesCollection.add(file); + //this.listenTo(this.releaseCollection, 'sync', this._showSearchResults); + }, + + onShow : function() { + this.grid.show(new Backgrid.Grid({ + row : Backgrid.Row, + columns : this.columns, + collection : this.filesCollection, + className : 'table table-hover' + })); + }, + + _showMainView : function() { + this.main.show(this.mainView); + }, + + _showButtons : function() { + this._showMainView(); + }, + + _showSearchResults : function() { + if (this.releaseCollection.length === 0) { + this.mainView = new NoResultsView(); + } + + else { + //this.mainView = new ManualSearchLayout({ collection : this.releaseCollection }); + } + + this._showMainView(); + } +}); diff --git a/src/UI/Movies/Files/FilesLayoutTemplate.hbs b/src/UI/Movies/Files/FilesLayoutTemplate.hbs new file mode 100644 index 000000000..ac6a3ca36 --- /dev/null +++ b/src/UI/Movies/Files/FilesLayoutTemplate.hbs @@ -0,0 +1 @@ +<div id="movie-files-region"><div id="movie-files-grid" class="table-responsive"></div></div> diff --git a/src/UI/Movies/Files/NoFilesView.js b/src/UI/Movies/Files/NoFilesView.js new file mode 100644 index 000000000..22a2f7c4c --- /dev/null +++ b/src/UI/Movies/Files/NoFilesView.js @@ -0,0 +1,5 @@ +var Marionette = require('marionette'); + +module.exports = Marionette.ItemView.extend({ + template : 'Movies/Files/NoFilesViewTemplate' +}); diff --git a/src/UI/Movies/Files/NoFilesViewTemplate.hbs b/src/UI/Movies/Files/NoFilesViewTemplate.hbs new file mode 100644 index 000000000..300e4f666 --- /dev/null +++ b/src/UI/Movies/Files/NoFilesViewTemplate.hbs @@ -0,0 +1,3 @@ +<p class="text-warning"> + No files for this movie. +</p> diff --git a/src/UI/Movies/Index/MoviesIndexLayout.js b/src/UI/Movies/Index/MoviesIndexLayout.js index 3b12a36e0..87a2de772 100644 --- a/src/UI/Movies/Index/MoviesIndexLayout.js +++ b/src/UI/Movies/Index/MoviesIndexLayout.js @@ -13,6 +13,7 @@ var MovieLinksCell = require('../../Cells/MovieLinksCell'); var MovieActionCell = require('../../Cells/MovieActionCell'); var MovieStatusCell = require('../../Cells/MovieStatusCell'); var MovieDownloadStatusCell = require('../../Cells/MovieDownloadStatusCell'); +var DownloadedQualityCell = require('../../Cells/DownloadedQualityCell'); var FooterView = require('./FooterView'); var FooterModel = require('./FooterModel'); var ToolbarLayout = require('../../Shared/Toolbar/ToolbarLayout'); @@ -40,6 +41,11 @@ module.exports = Marionette.Layout.extend({ cell : MovieTitleCell, cellValue : 'this', }, + { + name : "downloadedQuality", + label : "Downloaded", + cell : DownloadedQualityCell, + }, { name : 'profileId', label : 'Profile', @@ -54,12 +60,19 @@ module.exports = Marionette.Layout.extend({ name : 'this', label : 'Links', cell : MovieLinksCell, - className : "movie-links-cell" + className : "movie-links-cell", + sortable : false, }, { name : "this", label : "Status", cell : MovieDownloadStatusCell, + sortValue : function(m, k) { + if (m.get("downloaded")) { + return -1; + } + return 0; + } }, { name : 'this', @@ -126,7 +139,7 @@ module.exports = Marionette.Layout.extend({ items : [ { title : 'Title', - name : 'title' + name : 'sortTitle' }, { title : 'Quality', @@ -162,6 +175,13 @@ module.exports = Marionette.Layout.extend({ tooltip : 'Monitored Only', icon : 'icon-sonarr-monitored', callback : this._setFilter + }, + { + key : 'missing', + title : '', + tooltip : 'Missing Only', + icon : 'icon-sonarr-missing', + callback : this._setFilter } ] }; diff --git a/src/UI/Movies/MovieModel.js b/src/UI/Movies/MovieModel.js index a3e0d5a35..5c8538271 100644 --- a/src/UI/Movies/MovieModel.js +++ b/src/UI/Movies/MovieModel.js @@ -9,5 +9,31 @@ module.exports = Backbone.Model.extend({ episodeCount : 0, isExisting : false, status : 0 + }, + + getStatus : function() { + var monitored = this.get("monitored"); + var status = this.get("status"); + var inCinemas = this.get("inCinemas"); + var date = new Date(inCinemas); + var timeSince = new Date().getTime() - date.getTime(); + var numOfMonths = timeSince / 1000 / 60 / 60 / 24 / 30; + + if (status === "announced") { + return "announced" + } + + if (numOfMonths < 3 && numOfMonths > 0) { + + return "inCinemas"; + } + + if (status === 'released') { + return "released"; + } + + if (numOfMonths > 3) { + return "released";//TODO: Update for PreDB.me + } } }); diff --git a/src/UI/Movies/MoviesCollection.js b/src/UI/Movies/MoviesCollection.js index 16d50298f..193f47ef6 100644 --- a/src/UI/Movies/MoviesCollection.js +++ b/src/UI/Movies/MoviesCollection.js @@ -15,10 +15,10 @@ var Collection = PageableCollection.extend({ tableName : 'movie', state : { - sortKey : 'title', + sortKey : 'sortTitle', order : 1, pageSize : 100000, - secondarySortKey : 'title', + secondarySortKey : 'sortTitle', secondarySortOrder : -1 }, @@ -65,17 +65,35 @@ var Collection = PageableCollection.extend({ true ], 'missing' : [ - null, - null, - function(model) { return model.get('episodeCount') !== model.get('episodeFileCount'); } + 'downloaded', + false ] }, sortMappings : { title : { - sortKey : 'title' + sortKey : 'sortTitle' }, + statusWeight : { + sortValue : function(model, attr) { + if (model.getStatus() == "released") { + return 1; + } + if (model.getStatus() == "inCinemas") { + return 0; + } + return -1; + } + }, + downloadedQuality : { + sortValue : function(model, attr) { + if (model.get("movieFile")) { + return 1000-model.get("movieFile").quality.quality.id; + } + return -1; + } + }, nextAiring : { sortValue : function(model, attr, order) { var nextAiring = model.get(attr); @@ -91,7 +109,15 @@ var Collection = PageableCollection.extend({ return Number.MAX_VALUE; } }, - + status: { + sortValue : function(model, attr) { + debugger; + if (model.get("downloaded")) { + return -1; + } + return 0; + } + }, percentOfEpisodes : { sortValue : function(model, attr) { var percentOfEpisodes = model.get(attr); @@ -100,7 +126,18 @@ var Collection = PageableCollection.extend({ return percentOfEpisodes + episodeCount / 1000000; } }, - + inCinemas : { + + sortValue : function(model, attr) { + var monthNames = ["January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December" + ]; + if (model.get("inCinemas")) { + return model.get("inCinemas"); + } + return "2100-01-01"; + } + }, path : { sortValue : function(model) { var path = model.get('path'); diff --git a/src/UI/Movies/Search/ManualLayout.js b/src/UI/Movies/Search/ManualLayout.js index af5413779..304b08911 100644 --- a/src/UI/Movies/Search/ManualLayout.js +++ b/src/UI/Movies/Search/ManualLayout.js @@ -37,7 +37,7 @@ module.exports = Marionette.Layout.extend({ name : 'edition', label : 'Edition', cell : EditionCell, - title : "Edition" + title : "Edition", }, { name : 'indexer', @@ -57,7 +57,7 @@ module.exports = Marionette.Layout.extend({ { name : 'quality', label : 'Quality', - cell : QualityCell + cell : QualityCell, }, { name : 'rejections', diff --git a/src/UI/Movies/Search/ManualLayoutTemplate.hbs b/src/UI/Movies/Search/ManualLayoutTemplate.hbs index 1797eb289..3a5f59438 100644 --- a/src/UI/Movies/Search/ManualLayoutTemplate.hbs +++ b/src/UI/Movies/Search/ManualLayoutTemplate.hbs @@ -1,2 +1 @@ <div id="episode-release-grid" class="table-responsive"></div> -<button class="btn x-search-back">Back</button> \ No newline at end of file diff --git a/src/UI/Navbar/NavbarLayoutTemplate.hbs b/src/UI/Navbar/NavbarLayoutTemplate.hbs index 6009587df..1665c6838 100644 --- a/src/UI/Navbar/NavbarLayoutTemplate.hbs +++ b/src/UI/Navbar/NavbarLayoutTemplate.hbs @@ -7,12 +7,12 @@ <span class="icon-sonarr-navbar-collapsed fa-lg"></span> </button> <a class="navbar-brand" href="{{UrlBase}}/"> - <!--<img src="{{UrlBase}}/Content/Images/logo.png?v=2" alt="Sonarr">--> + <!--<img src="{{UrlBase}}/Content/Images/logo.png?v=2" alt="Radarr">--> <img src="{{UrlBase}}/Content/Images/logos/128.png" class="visible-lg"/> <img src="{{UrlBase}}/Content/Images/logos/64.png" class="visible-md visible-sm"/> <span class="visible-xs"> <img src="{{UrlBase}}/Content/Images/logos/32.png"/> - <span class="logo-text">sonarr</span> + <span class="logo-text">Radarr</span> </span> </a> diff --git a/src/UI/Release/ReleaseCollection.js b/src/UI/Release/ReleaseCollection.js index 1e67296be..2b810982a 100644 --- a/src/UI/Release/ReleaseCollection.js +++ b/src/UI/Release/ReleaseCollection.js @@ -16,7 +16,7 @@ var Collection = PagableCollection.extend({ sortMappings : { 'quality' : { - sortKey : 'qualityWeight' + sortKey : "qualityWeight" }, 'rejections' : { sortValue : function(model) { @@ -30,6 +30,9 @@ var Collection = PagableCollection.extend({ return releaseWeight; } }, + "edition" : { + sortKey : "edition" + }, 'download' : { sortKey : 'releaseWeight' }, diff --git a/src/UI/Series/Edit/EditSeriesViewTemplate.hbs b/src/UI/Series/Edit/EditSeriesViewTemplate.hbs index 746504cc9..baeab579b 100644 --- a/src/UI/Series/Edit/EditSeriesViewTemplate.hbs +++ b/src/UI/Series/Edit/EditSeriesViewTemplate.hbs @@ -27,7 +27,7 @@ </label> <span class="help-inline-checkbox"> - <i class="icon-sonarr-form-info" title="Should Sonarr download episodes for this series?"/> + <i class="icon-sonarr-form-info" title="Should Radarr download episodes for this series?"/> </span> </div> </div> diff --git a/src/UI/Settings/DownloadClient/RemotePathMapping/RemotePathMappingEditViewTemplate.hbs b/src/UI/Settings/DownloadClient/RemotePathMapping/RemotePathMappingEditViewTemplate.hbs index bc7926439..f5f08a591 100644 --- a/src/UI/Settings/DownloadClient/RemotePathMapping/RemotePathMappingEditViewTemplate.hbs +++ b/src/UI/Settings/DownloadClient/RemotePathMapping/RemotePathMappingEditViewTemplate.hbs @@ -10,7 +10,7 @@ <div class="modal-body remotepath-mapping-modal"> <div class="form-horizontal"> <div> - <p>Use this feature if you have a remotely running Download Client. Sonarr will use the information provided to translate the paths provided by the Download Client API to something Sonarr can access and import.</p> + <p>Use this feature if you have a remotely running Download Client. Radarr will use the information provided to translate the paths provided by the Download Client API to something Radarr can access and import.</p> </div> <div class="form-group"> <label class="col-sm-3 control-label">Host</label> @@ -40,7 +40,7 @@ <label class="col-sm-3 control-label">Local Path</label> <div class="col-sm-1 col-sm-push-5 help-inline"> - <i class="icon-sonarr-form-info" title="Path that Sonarr should use to access the same directory remotely." /> + <i class="icon-sonarr-form-info" title="Path that Radarr should use to access the same directory remotely." /> </div> <div class="col-sm-5 col-sm-pull-1"> diff --git a/src/UI/Settings/General/GeneralViewTemplate.hbs b/src/UI/Settings/General/GeneralViewTemplate.hbs index a8493cd8e..e4b3e6b59 100644 --- a/src/UI/Settings/General/GeneralViewTemplate.hbs +++ b/src/UI/Settings/General/GeneralViewTemplate.hbs @@ -100,7 +100,7 @@ </label> <span class="help-inline-checkbox"> - <i class="icon-sonarr-form-info" title="Open a web browser and navigate to Sonarr homepage on app start. Has no effect if installed as a windows service"/> + <i class="icon-sonarr-form-info" title="Open a web browser and navigate to Radarr homepage on app start. Has no effect if installed as a windows service"/> </span> </div> </div> @@ -114,7 +114,7 @@ <div class="col-sm-1 col-sm-push-4 help-inline"> <i class="icon-sonarr-form-warning" title="Requires restart to take effect"/> - <i class="icon-sonarr-form-info" title="Require Username and Password to access Sonarr"/> + <i class="icon-sonarr-form-info" title="Require Username and Password to access Radarr"/> </div> <div class="col-sm-4 col-sm-pull-1"> @@ -308,7 +308,7 @@ </label> <span class="help-inline-checkbox"> - <i class="icon-sonarr-form-info" title="Send anonymous information about your browser and which parts of the web interface you use to Sonarr servers. We use this information to prioritize features and browser support. We will NEVER include any personal information or any information that could identify you."/> + <i class="icon-sonarr-form-info" title="Send anonymous information about your browser and which parts of the web interface you use to Radarr servers. We use this information to prioritize features and browser support. We will NEVER include any personal information or any information that could identify you."/> <i class="icon-sonarr-form-warning" title="Requires restart to take effect"/> </span> </div> diff --git a/src/UI/Settings/Indexers/Add/IndexerAddCollectionViewTemplate.hbs b/src/UI/Settings/Indexers/Add/IndexerAddCollectionViewTemplate.hbs index 16bc741ad..3d581b5e4 100644 --- a/src/UI/Settings/Indexers/Add/IndexerAddCollectionViewTemplate.hbs +++ b/src/UI/Settings/Indexers/Add/IndexerAddCollectionViewTemplate.hbs @@ -5,7 +5,7 @@ </div> <div class="modal-body"> <div class="alert alert-info"> - Sonarr supports any indexer that uses the Newznab standard, as well as other indexers listed below.<br/> + Radarr supports any indexer that uses the Newznab standard, as well as other indexers listed below.<br/> For more information on the individual indexers, click on the info buttons. </div> <div class="add-indexer add-thingies"> diff --git a/src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.hbs b/src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.hbs index 9fd640ec0..bee701a07 100644 --- a/src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.hbs +++ b/src/UI/Settings/MediaManagement/FileManagement/FileManagementViewTemplate.hbs @@ -61,7 +61,7 @@ </label> <span class="help-inline-checkbox"> - <i class="icon-sonarr-form-info" title="Extract video information such as resolution, runtime and codec information from files. This requires Sonarr to read parts of the file which may cause high disk or network activity during scans."/> + <i class="icon-sonarr-form-info" title="Extract video information such as resolution, runtime and codec information from files. This requires Radarr to read parts of the file which may cause high disk or network activity during scans."/> </span> </div> </div> diff --git a/src/UI/Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate.hbs b/src/UI/Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate.hbs index 06429a722..0b6e7f0b5 100644 --- a/src/UI/Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate.hbs +++ b/src/UI/Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate.hbs @@ -1,5 +1,5 @@ <div class="form-group"> - <label class="col-sm-3 control-label">Include Series Title</label> + {{!--<label class="col-sm-3 control-label">Include Series Title</label> <div class="col-sm-9"> <div class="input-group"> @@ -36,7 +36,7 @@ </label> </div> </div> -</div> +</div>--}} <div class="form-group"> <label class="col-sm-3 control-label">Include Quality</label> @@ -88,7 +88,7 @@ </div> </div> -<div class="form-group"> +{{!--<div class="form-group"> <label class="col-sm-3 control-label">Numbering Style</label> <div class="col-sm-9"> @@ -99,4 +99,4 @@ <option value="s{season:00}e{episode:00}">s01e05</option> </select> </div> -</div> +</div>--}} diff --git a/src/UI/Settings/MediaManagement/Permissions/PermissionsViewTemplate.hbs b/src/UI/Settings/MediaManagement/Permissions/PermissionsViewTemplate.hbs index 2d870c1ae..6342dae47 100644 --- a/src/UI/Settings/MediaManagement/Permissions/PermissionsViewTemplate.hbs +++ b/src/UI/Settings/MediaManagement/Permissions/PermissionsViewTemplate.hbs @@ -28,7 +28,7 @@ <label class="col-sm-3 control-label">File chmod mask</label> <div class="col-sm-1 col-sm-push-4 help-inline"> - <i class="icon-sonarr-form-info" title="Octal, applied to media files when imported/renamed by Sonarr"/> + <i class="icon-sonarr-form-info" title="Octal, applied to media files when imported/renamed by Radarr"/> </div> <div class="col-sm-4 col-sm-pull-1"> @@ -40,7 +40,7 @@ <label class="col-sm-3 control-label">Folder chmod mask</label> <div class="col-sm-1 col-sm-push-4 help-inline"> - <i class="icon-sonarr-form-info" title="Octal, applied to series/season folders created by Sonarr"/> + <i class="icon-sonarr-form-info" title="Octal, applied to series/season folders created by Radarr"/> </div> <div class="col-sm-4 col-sm-pull-1"> diff --git a/src/UI/Settings/Profile/Edit/EditProfileViewTemplate.hbs b/src/UI/Settings/Profile/Edit/EditProfileViewTemplate.hbs index cae0f2447..c19d10e5c 100644 --- a/src/UI/Settings/Profile/Edit/EditProfileViewTemplate.hbs +++ b/src/UI/Settings/Profile/Edit/EditProfileViewTemplate.hbs @@ -40,6 +40,6 @@ </div> <div class="col-sm-1 help-inline"> - <i class="icon-sonarr-form-info" title="Once this quality is reached Sonarr will no longer download episodes"/> + <i class="icon-sonarr-form-info" title="Once this quality is reached Radarr will no longer download episodes"/> </div> </div> diff --git a/src/UI/index.html b/src/UI/index.html index 64fb75f03..10e77adef 100644 --- a/src/UI/index.html +++ b/src/UI/index.html @@ -40,7 +40,7 @@ <link rel="mask-icon" href="/Content/Images/safari/logo.svg" color="#35c5f4"> <link rel="icon" type="image/ico" href="/Content/Images/favicon.ico"/> - <link rel="alternate" type="text/calendar" title="iCalendar feed for Sonarr" href="/feed/calendar/NzbDrone.ics"/> + <link rel="alternate" type="text/calendar" title="iCalendar feed for Radarr" href="/feed/calendar/NzbDrone.ics"/> </head> <body> <div class="container"> diff --git a/src/UI/login.html b/src/UI/login.html index 7818bd690..e956bbd4c 100644 --- a/src/UI/login.html +++ b/src/UI/login.html @@ -27,7 +27,7 @@ <div class="container-fluid main-region" id="main-region"> <div class="col-md-2 col-md-offset-5"> <form name="login" id="login" class="login" method="POST"> - <h2><img src="/Content/Images/logos/32.png" alt=""/> Sonarr</h2> + <h2><img src="/Content/Images/logos/32.png" alt=""/> Radarr</h2> <div class="form-group"> <label for="username" class="sr-only">Email address</label> <input type="text" id="username" name="username" class="form-control" placeholder="Username" required autofocus>