It's quite hard to encapsulate something this large. This refactor
contains multiple attacks on the current architecture and is changing
things that were probably created quite a while back then. Luckily this
was done in increments so it mustn't be that impossible to recall what
has been done. I just need to relax my memory a little bit.
So the basic idea was quite simple. Let's distingush metas and normal
indexers a little bit more. Both of them were originating from
BaseIndexer, however very little of the functionality was actually
shared between them. Actually quite a few things made it even harder to
implement a different kind of indexer, especially for a newcomer for
both Jackett and C#.
Then in order to further reduce whatever was encapsulated in
any kind of, a couple things had to be changed. Like CardigannIndexer,
which probably had quite a mindshift change. IndexerManager and the
configuration management were also encapsulated and refactored, and now
I have a feeling that although the code could be improved, at least the
responsibilities of services and what they actually do is now clearer.
Anyhow, it would be safe to assume that I will not be able to go
step-by-step and define everything that has been changed. I'm sorry.
* Line endings...
* Improve download handling of torrents in metas
Until now, downloads were handled by metas, however they had to "guess"
which indexer the result was originating from and resolve to that
indexer. While this has been working without an issue, it really
shouldn't be considered stable.
Therefore indexers now link themselves to the results they provide. In
order to keep my sanity and automate this as much as possible, I had to
slightly modify the interface (sorry, everyone).
* Line endings...
* Integrating OMDB into Potato results
Now PotatoController will actually produce results
* VS complains it could be simplified, yet AppVeyor cannot do anything with it...
* How come only Appveyor unveils this error? @drunkvs
Added "base path override" config option that makes all links and
redirects work with your reverse proxy.
Fixed post config update reload to work properly.
Make redirects and ajax calls use relative pathing.
I changed the download urls, because the current way with segments
(having the parameters between slashes) was causing problems with long
encoded urls, since a segment can be no longer than 255 characters. It
was changed to use regular url parameters which have no such limit on
length.
This should prevent CouchPotato from grabbing wrong movies (for example downloading San Andreas Quake instead of San Andreas).
Updated nxtgn indexer to implement the changed interface in develop compared to master. Implemented missing imdb id on TorrentPotato, and changed JsonResponse to not include null values (to prevent imdb property being shown when we don't know it)
Added thetvdb and imdb id to torznab, as they are part of the torznab specification, albeit optional.
Added imdb ID for movies.
Will now only look at the first 3 pages when searching. To prevent flooding server when searching for a common term.
A category is now assigned to releases.
Changed nxtgn banner to only be copied if newer upon build.
Added support for nxtgn.org
# Conflicts:
# src/Jackett/Jackett.csproj