Add newznab smart logic to avoid missing releases when there are a great many recent releases.
Change improve performance by using newznab server advertised capabilities.
Change config/providers newznab to display only non-default categories.
Change use scene season for wanted segment in backlog if show is scene numbering.
Change combine Manage Searches / Backlog Search / Limited and Full to Force.
Change consolidate limited and full backlog.
Change config / Search / Backlog search frequency to instead spread backlog searches over a number of days.
Change migrate minimum used value for search frequency into new minimum 7 for search spread.
Change restrict nzb providers to 1 backlog batch run per day.
Add to Config/Search/Unaired episodes/Allow episodes that are released early.
Add to Config/Search/Unaired episodes/Use specific api requests to search for early episode releases.
Add use related ids for newznab searches to increase search efficiency.
Add periodic update of related show ids.
Change terminology Edit Show/"Post processing" tab name to "Other".
Add advanced feature "Related show IDs" to Edit Show/Other used for finding episodes and TV info.
Add search info source image links to those that have zero id under Edit Show/Other/"Related show IDs".
Add "set master" button to Edit Show/Other/"Related show IDs" for info source that can be changed.
Change terminology displayShow "Indexers" to "Links" to cover internal and web links.
Change add related show info sources on displayShow page.
Change don't display "temporarily" defunct TVRage image link on displayShow pages unless it is master info source.
Change if a defunct info source is the master of a show then present a link on displayShow to edit related show IDs.
Change simplify the next backlog search run time display in the page footer.
Change try ssl when fetching data thetvdb, imdb, trakt, scene exception.
Change improve reliability to Trakt notifier by using show related id support.
Change improve config/providers newznab categories layout.
Change show loaded log message at start up and include info source.
Change if episode has no airdate then set status to unaired (was skipped).
Technical
Change move scene_exceptions table from cache.db to sickbeard.db.
Add related ids to show obj.
Add use of mapped indexer ids for newznab.
Add indexer to sql in wanted_eps.
Add aired in (scene) season for wanted episodes.
Add need_anime, need_sports, need_sd, need_hd, need_uhd to wanted episodes and added as parameter to update_providers.
Add fix for lib lockfile/mkdirlockfile.
Add set master TV info source logic.
Change harden ui input validation.
Add per action dialog confirmation.
Change to reload page under more events.
Change implement "Mark all added episodes Wanted to search for releases" when setting new info source.
Change post process to cleanup filenames with config/Post Processing/'Unpack downloads' enabled.
Change post process to join incrementally named (i.e. file.001 to file.nnn) split files.
Change replace unrar2 lib with rarfile 3.0 and UnRAR.exe 5.40 beta 4 freeware.
Change post process "Copy" to delete redundant files after use.
Add setting to Trakt notification to update collection with downloaded episode info.
Add Most Watched, Collected during the last month on Trakt.
Change Add from Trakt/"Shows:" with Anticipated, Popular views.
Change improve robustness of Trakt communications.
Change Trakt notifier logo.
Change pep8 and cleanup.
Add BitMeTV torrent provider.
Add TVChaosUK torrent provider.
Add HD-Space torrent provider.
Add Shazbat torrent provider.
Remove Animenzb provider.
Change use tvdbid for searching usenet providers.
Change consolidate global and per show ignore and require words functions.
Change "Require word" title and notes on Config Search page to properly describe its functional logic.
Add "Reject Blu-ray M2TS releases" to BTN provider.
Add regular expression capability to ignore and require words by starting wordlist with "regex:".
Add list shows with custom ignore and require words under the global counterparts on the Search Settings page.
Fix failure to search for more than one selected wanted episode.
Fix handling of an erroneous PIN input/authentication flow and clean-up the ui and results output.
Remove all other Trakt deprecated API V1 service features pending reconsideration.
This fix correctly places the local libraries at the start of the sys.path such that they are loaded instead of any libraries that may already exist on the users system. This prevents the issue where a system library that isn't supported by SickGear is loaded and causes errors during operation.
Show failed to be added from TVRage API with "show contains no season/episode data" error.
Change TVRage "Canceled/Ended" to "Ended" status to correct the sort on Simple Layout of Show List page.
Conflicts:
CHANGES.md
This fixes an issue in the urllib3/PyOpenSSL contrib in requests lib that assumes ssl.protocol_sslv3 is always defined. Many systems have disabled this protocol in light of recent security issues.
This fixes an issue in the urllib3/PyOpenSSL contrib in requests lib that assumes ssl.protocol_sslv3 is always defined. Many systems have disabled this protocol in light of recent security issues.
Add send2trash, a small package that sends files to the Trash (or Recycle Bin) natively and on all platforms. If send2trash is found not compatible, the user can use the default delete and manually delete failed send2trash files.
Add General Config/Misc/Send to trash for actions that involve removing shows and log rotation.
Add handling for the exception raised while deleting a show and show folder no longer exists.
The main core of this code was lifted from Trakt code and not developed enough to be suitable for purpose given that the Trakt code isn't fully developed either. An issue found leading to this decision was that show statuses were set false instead of the expected default, however, worse was that users had no way of choosing shows to add, was not informed of what was actually going on once a URL was added to the UI, and was not offered options prior to adding shows like the normal add new show work-flow does. Basically, there are too many issues and this feature is too immature for inclusion.
Used regex checks with javascript popup, for checking if valid imdb csv watchlist.
Added test/test_tvdb_api.py for testing the tvdb api for retrieving shows by IMDB id.
TODO: Help for assisting users in getting the correct IMDB url.
maybe, make interval configurable
First changes for imdb watchlist checker
Thrown the couch code overboard and created my own version of an imdb watchlist scraper
Added IMDB thread and test values with an IMDB csv url. These values should be replaced by front end UI settings.
- Removed some tracelogs when unable to download watchlist
- Added settings for enabling and setting of the watchlist csv url
TODO:
- create UI for setting from frontend
- Implement frontend and backend checks for validating the csv url
Default interval is 1 hour.
Added full delete feature to mass update, removes show from SR and deletes show folder from hard drive. Remove will just delete show from SR without deleting files from hard drive
Fixed XML errors for TVRage indexer api
Bugfix by viperidae
Reference:
---------------
Reference: https://sickrage.tv/forums/forum/help-support/bug-issue-reports/6224-there-was-an-error-with-the-xml-retrieved-from-tvrage-com
Quote:
----------
Had a look at the code and the xml documents...
It looks like the problem is caused by an empty <genre /> element in Results/shows/show/genres/
Line 459 of tvrage_api.py (it's 460 in my track in the previous post because of the debug statements I put in)
I assume it's because value is NoneType, gets replaced by a [NoneType] list and then tries to call '|'.join([NoneType]) when it was expecting a list of strings.
I changed this to the following and the problem appears to be resolved
Syslog extract:
----------------------
tvrage_error: There was an error with the XML retrieved from tvrage.com
First try emptying the cache folder at..
C:\Users\Josh\Documents\Programs\SickRage\cache\indexers\TVRage
If this does not resolve the issue, please try again later. If the error persists, report a bug on
2014-08-09 00:43:25 INFO SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: Searching for episodes we need from Top Gear Season 21
2014-08-09 00:43:25 DB SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: cache.db: SELECT * FROM [nmatrix] WHERE indexerid = ? AND season = ? AND episodes LIKE ? with args [74608, 21, '%|2|%']
2014-08-09 00:43:25 DB SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: cache.db: UPDATE lastSearch SET time = ? WHERE provider = ? with args [1407559405, 'nmatrix']
2014-08-09 00:43:25 DB SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: cache.db: INSERT INTO lastSearch (time, provider) VALUES (?, ?) with args [1407559405, 'nmatrix']
2014-08-09 00:43:25 DB SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: sickbeard.db: SELECT * FROM indexer_mapping WHERE indexer_id = ? AND indexer = ? with args [74608, 1]
2014-08-09 00:43:25 ERROR SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: Error while searching NMatrix, skipping: There was an error with the XML retrieved from tvrage.com
First try emptying the cache folder at..
C:\Users\Josh\Documents\Programs\SickRage\cache\indexers\TVRage
If this does not resolve the issue, please try again later. If the error persists, report a bug on
2014-08-09 00:43:25 DEBUG SEARCHQUEUE-BACKLOG-74608 :: [NMatrix] :: Traceback (most recent call last):
File "C:\Users\Josh\Documents\Programs\SickRage\sickbeard\search.py", line 428, in searchProviders
searchResults = curProvider.findSearchResults(show, season, episodes, search_mode, manualSearch)
File "C:\Users\Josh\Documents\Programs\SickRage\sickbeard\providers\generic.py", line 264, in findSearchResults
for curString in self._get_episode_search_strings(epObj):
File "C:\Users\Josh\Documents\Programs\SickRage\sickbeard\providers\newznab.py", line 133, in _get_episode_search_strings
rid = helpers.mapIndexersToShow(ep_obj.show)[2]
File "C:\Users\Josh\Documents\Programs\SickRage\sickbeard\helpers.py", line 1178, in mapIndexersToShow
mapped_show = t[showObj.name]
File "C:\Users\Josh\Documents\Programs\SickRage\lib\tvrage_api\tvrage_api.py", line 675, in __getitem__
selected_series = self._getSeries(key)
File "C:\Users\Josh\Documents\Programs\SickRage\lib\tvrage_api\tvrage_api.py", line 566, in _getSeries
allSeries = self.search(series)
File "C:\Users\Josh\Documents\Programs\SickRage\lib\tvrage_api\tvrage_api.py", line 557, in search
seriesEt = self._getetsrc(self.config['url_getSeries'], self.config['params_getSeries'])
File "C:\Users\Josh\Documents\Programs\SickRage\lib\tvrage_api\tvrage_api.py", line 500, in _getetsrc
raise tvrage_error(errormsg)
Fixed issues with indexerApi caching code, seemed TVRage was really the only one experiancing the problems but has been corrected for theTVDB just in case.
Git updates are now forced to overwrite locale changes to avoid needing to manually stash uncommited changes before being able to proceed with a update.
Fixed indexer mapping when unable to locate show on indexer that we are trying to map to.
Provider getURL and downloadResult functions now removed and replaced with ones from helpers.py to help slim the code down plus allow more better control over request sessions.
Removed TVTumbler code.
Fixed HDBits provider.
Fixed config settings that were ment to be booleans but instead where set as str or int, should help resolve random html errors.
XEM Refresh check re-coded.
NameParser code for creating show object has been changed to only attempt at the very end once its found the bestMatch result, helps on resources and performance.
Indexer mapping now uses indexer api calls to gather its information and then stores it to a new table called indexer_mapping for instant lookups later on.
Fixed trakt related issues for adding new shows and syncing.
Centered items at bottom of pages to just look a little nicer and fit properly.
Fixed charmap issues for anime show names.
Fixed issues with display show page and epCat key errors.
Fixed duplicate log messages for clearing provider caches.
Fixed issues with email notifier ep names not properly being encoded to UTF-8.
TVDB<->TVRAGE Indexer ID mapping is now performed on demand to be used when needed such as newznab providers can be searched with tvrage_id's and some will return tvrage_id's that later can be used to create show objects from for faster and more accurate name parsing, mapping is done via Trakt API calls.
Added stop event signals to schedualed tasks, SR now waits indefinate till task has been fully stopped before completing a restart or shutdown event.
NameParserCache is now persistent and stores 200 parsed results at any given time for quicker lookups and better performance, this helps maintain results between updates or shutdown/startup events.
Black and White lists for anime now only get used for anime shows as intended, performance gain for non-anime shows that dont need to load these lists.
Internal name cache now builds it self on demand when needed per show request plus checks if show is already in cache and if true exits routine to save time.
Schedualer and QueueItems classes are now a sub-class of threading.Thread and a stop threading event signal has been added to each.
If I forgot to list something it doesn't mean its not fixed so please test and report back if anything is wrong or has been corrected by this new release.
Scene numbers and scene absolute numbers now only display if prooper show options are selected.
Scene absolute numbers are now able to be set by user.
Fixed issues with user set scene numbers not correctly applying to episode objects.
Fixed unicode issues with Indexer API's
Fixed issues with scene numbering.
Fixed issues with black and white lists for anime shows when editing a show.
Fixed invalid indexer id issues for TVRage shows.
Fixed issues for getting posters and backdrops for TVRage shows.
We now convert XML straight to a dict object for Indexer APIs, improved overall performance api's
Fixed issues with TVRage shows and displaying genre's properly.
Adding functions to lookup scene season and ep info via scene absolute numbers.
We now try and create a show object from parsed release info before we consider it a valid parsed result to insure we even have the show in our show list, also used to validate anime releases.
Misc bug fixes here and there.
This code works when there is only one torrent in rtorrent. As soon as there are multiple torrents, this just spins on the same torrent IF the first torrent isn't the one it is looking for. In general this function just brute forces the server as I expect it is written for a local SCGI endpoint.
(Side note, this was my second attempt to do this, since I didn't fork properly when I stated: https://github.com/echel0n/SickRage/pull/585)