Torrents - Ready for Testing

If you go to Activity > Queue, drone will report the quality of torrents as the quality you already have, not what it has sent to your torrent client for downloading.
It made me do a double-take, because I knew “I already have this episode in that quality, why has drone added the same quality to the queue again when it’s not even a proper?”. E.g. I saw a couple of HDTV episodes that I knew I already had in HDTV quality.

If you click the title of the episode in the queue and go to the activity tab there, the information is correct. E.g. there’s an entry “episode grabbed from and sent to download client” with WEB-DL in the quality column.

I believe (but I’m not sure) that the quality in the download queue is displayed correctly for nzb’s. I don’t have any nzb in my queue at the moment, but I’ll keep an eye on it.

Edit: this is on the 2.0.0.2096 version.

Just curious, as I’ve been watching this but haven’t switched yet, is there an ETA on when this will go main?

Switched today as it updated. :smiley:

So far I have only one problem which is very important for torrents.

When downloading a huge chunk of episodes, lets say 6 seasons the fetcher collects torrents for each individual episode, these don’t have much peers most of the time. The torrent version of Sickbeard is smart enough to search for a season batch torrent when downloading a complete season. Could this also be a possibility for Nzbdrone?

@Taloth, I thank you for your time programming this into NzbDrone. It really works solidly already :smile:

Evening all

I’m new to nzbdrone and am attempting to set it up for torrents. With the advice in this thread and a bit of messing around I think I’ve got it pretty much set up with one big exception, I’m struggling with the torrent download client.

When I attempt to add UTorrent, it says that it is unable to connect to the Host, the name is localhost as I’m on the same machine.

Any help for an idiot?

Cheers

Version 2.0.0.2096 (rebased on develop earlier by markus)
Version 2.0.0.2104

  • New: Changed Kickass Verified Only setting from Hidden to Advanced so the user can change it via the UI.
  • New: Added support to Kickass to search for daily episodes.
  • Fixed: Resolved error in Deluge api call which caused drone to be give errors when trying to move items to the top of the deluge queue.
  • Fixed: Blackhole clients now properly import single-file downloads from the root of the Watch Folder.

Please note we’re considering merging torrents to dev. The significant changes in the torrent branch is leading to increasingly complicated rebases/merges. Dunno when exactly it will happen, could be a week or so, but obviously I will post here if it does.

@Denning: Likely you have to activate the webui in uTorrent.

@Zundrium

I actually don’t know whether drone prefers season packs over single episodes during a season search, I would have to test that.
I believe there is a trello card with the request to add manual season searches, which would make it easier to pick the right one manually.

We might be able to fine tune drone prioritization logic to allow season packs if all episodes in the season are requested. But this is something not specific for torrents (although season packs in nzb are less common than with torrents).
So it’s something I rather not deal with on the torrents branch.

Edit: Fyi, on private trackers the described scenario probably wont occur since most proper private trackers actually remove episode torrents once the season torrent comes out.

Kick Ass daily search (manual), gets day right but not month. Here is a screenshot of the search results from a recent search:

You’ll notice that search brings up a bunch of episodes with the right day but many different months.

Edit: Just noticed that it also listed one episode where it got the month right but the day wrong, 10/01

Thanks for this :smile:
Ps. this option appears as a box where you type true or false - was this supposed to be a toggle?

@sammy2142: Aw shoot… expected the formbuilder to assume boolean = checkbox. Fixed.

@sea3pea0: Get me a better search query :wink: https://kickass.to/usearch/David%20Letterman%202014-10-10%20category%3Atv%20verified%3A1/
It’s why I was reluctant to implement it for kickass, but it works for many shows and it actually does return the 2014-10-10 episode.

@Taloth Just reporting what I found as I wasn’t sure if it was working as intended or not. Thanks!

I moved 3 posts to a new topic: Log errors after Torrents 2.0.0.2106 update

@Taloth
I’ve been getting a number of fake torrents through on the kickass provider via the rss sync search method (interval search).

I did view a few of these torrents on kickass and they were all unverified - shouldn’t these be blocked if you have “only use verfied torrents” on in the advanced options for kickass?

Thanks again for all your work on this :slight_smile:

Hm, the rss feed doesn’t have a verified filter option, so we only send verified:1 for searches. I’ll have to filter it out in the parser. Nice catch.

1 Like

Just noticed this error from a few days ago:

An error has occurred while trying to parse Discovery TV - Gold Rush : 02 Road From Hell [S04].mp4: The path is not of a legal form.

System.ArgumentException: The path is not of a legal form.
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetDirectoryName(String path)
   at NzbDrone.Core.Parser.Parser.RemoveFileExtension(String title) in m:\BuildAgent2\work\328d72309b633a8\src\NzbDrone.Core\Parser\Parser.cs:line 360
   at NzbDrone.Core.Parser.Parser.ValidateBeforeParsing(String title) in m:\BuildAgent2\work\328d72309b633a8\src\NzbDrone.Core\Parser\Parser.cs:line 610
   at NzbDrone.Core.Parser.Parser.ParseTitle(String title) in m:\BuildAgent2\work\328d72309b633a8\src\NzbDrone.Core\Parser\Parser.cs:line 192

I think this was an entry picked up on the kickass rss feed (I do not have this show added).
The title of the torrent has a : in which I think is causing this error. The actual files in this torrent do not have a : in so is a valid windows file.

https://kickass.to/discovery-tv-gold-rush-02-road-from-hell-s04-mp4-t9715986.html

oh and thanks for making the rss feed for kickass work with verified torrents :wink:

Does the torrent branch handle trumping/repacks?
Also, can I please make a suggestion. Can there be a toggle, when its enabled the torrent branch will not download season packs?

Besides that, great work. :smile:

@sammy2142: Ah, should call CleanPath for those.

@dimtar: Drone will download repacks like it does with torrents, but it might fail import on Windows if the original file is actively seeding (due to hardlink write-lock)

As for your suggestion, gotta think about that. In some cases season packs are desirable. I recall a discussion about season pack handling on torrents earlier, but it’s a bit foggy. If I don’t forget I’ll do a search for it tonight.

Taloth, torrent branch is awesome. Overall very impressed with nzbdrone and the interface. Question: can you explain the logic for kickass’s torrent selection and what the search query is based on? I’ll try and provide logs later, but seems like the logical top choice on the return is not being selected and does not appear to be caused by quality selection or verified uploader.

Are you able to do another commit please?
I was on 2.0.0.2149 develop before and it wont update to torrents as it needs a newer version :smile:

Thank you so much, cant wait to try this out!

Ok it just updated from 2.0.0.2149 Develop to 2151 Torrents. When i press Search missing episodes i get this:

Task Error: Nullable object must have a value.

System.InvalidOperationException: Nullable object must have a value.
at System.Nullable1[System.Int32].get_Value () [0x00000] in <filename unknown>:0 at NzbDrone.Core.IndexerSearch.NzbSearchService.<Get>b__22[SingleEpisodeSearchCriteria] (NzbDrone.Core.Tv.Episode e) [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator102[NzbDrone.Core.Tv.Episode,System.Int32].MoveNext () [0x00000] in :0
at System.Linq.Enumerable+c__Iterator31[System.Int32].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateConcatIterator>c__Iterator11[System.Int32].MoveNext () [0x00000] in :0
at System.Linq.Enumerable.Contains[Int32] (IEnumerable1 source, Int32 value, IEqualityComparer1 comparer) [0x00000] in :0
at System.Linq.Enumerable.Contains[Int32] (IEnumerable1 source, Int32 value) [0x00000] in <filename unknown>:0 at NzbDrone.Core.DataAugmentation.Scene.SceneMappingService+<>c__DisplayClass3.<GetSceneNames>b__0 (NzbDrone.Core.DataAugmentation.Scene.SceneMapping s) [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1E1[NzbDrone.Core.DataAugmentation.Scene.SceneMapping].MoveNext () [0x00000] in :0
at System.Linq.Enumerable+c__Iterator102[NzbDrone.Core.DataAugmentation.Scene.SceneMapping,System.String].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateDistinctIterator>c__Iterator31[System.String].MoveNext () [0x00000] in :0
at System.Collections.Generic.List1[System.String].AddEnumerable (IEnumerable1 enumerable) [0x00000] in :0
at System.Collections.Generic.List1[System.String]..ctor (IEnumerable1 collection) [0x00000] in :0
at System.Linq.Enumerable.ToList[String] (IEnumerable1 source) [0x00000] in <filename unknown>:0 at NzbDrone.Core.DataAugmentation.Scene.SceneMappingService.GetSceneNames (Int32 tvdbId, IEnumerable1 seasonNumbers) [0x00000] in :0
at NzbDrone.Core.IndexerSearch.NzbSearchService.Get[SingleEpisodeSearchCriteria] (NzbDrone.Core.Tv.Series series, System.Collections.Generic.List`1 episodes) [0x00000] in :0
at NzbDrone.Core.IndexerSearch.NzbSearchService.SearchSingle (NzbDrone.Core.Tv.Series series, NzbDrone.Core.Tv.Episode episode) [0x00000] in :0
at NzbDrone.Core.IndexerSearch.NzbSearchService.EpisodeSearch (NzbDrone.Core.Tv.Episode episode) [0x00000] in :0
at NzbDrone.Core.IndexerSearch.MissingEpisodeSearchService.Execute (NzbDrone.Core.IndexerSearch.MissingEpisodeSearchCommand message) [0x00000] in :0
at NzbDrone.Core.Messaging.Commands.CommandExecutor.ExecuteCommand[MissingEpisodeSearchCommand] (NzbDrone.Core.Messaging.Commands.Command command) [0x00000] in :0