* OmdbProvider: The result often contains strings like '2010-' or
'2010-2012'. I fixed the parsing to use the first 4 digits only in these
cases
* TheMovieDb: While the search method did send appropriate queries for
different search types, it didn't differentiate for deserialization of
results. I fixed this at least for the TvResults, in order to get the
'first_air_date' property parsed.
* TheTvdb: The parsing of the 'FirstAired' node was missing here as
well (for search results)
This is a revision to pull request #1205 which tries to avoid returning
duplicate results from multiple providers.
Duplicates are eliminated in two stages:
* Check for duplicate provider ids
* In case of movies and series: Also remove duplicates by title/year
combination
The second stage is required because search results of themoviedb and
thetvdb do not contain external ids and performing separate queries for
each individual result would be too expensive. This is not an ideal
solution, but Name/Year is anyway just exactly that information which is
presented to the client in the results - apart from the image, of
course.
Images are only aggregated on matching provider ids, though. To allow
image aggregation over all search results, the breaking condition once
the result list is full has been removed..
PathTooLongException can not only occur with long destination paths but
also with too long file names of files contained in a watch folder.
Previously this condition caused the auto-organize task to break.
With this change, we still log the exception, but auto-organize
processing will continue to handle all other files.
Conflicts:
MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
Especially with Multi-Episodes, the EpisodeTitle can become quite long,
since all comprised titles get concatenated into it.
By default, the EpisodeTitle is included in the single and multi-episode
naming patterns and this in turn can quickly lead to a
PathTooLongException.
This fix tries to keep as much as possible from the title string while
keeping the final path within the allowed limit.