Note; getattr not required in the backend given slot value is already initialised at runtime, but is used in .tmpl due to defensive coding practices.
Change webserve pyc warnings resolved after code review.
Update glide 3.3.0 to 3.4.0 (f7ff0dd).
Change put real name first on person page.
Add lang_ordered_akas to tv.py for cast English/non-English lists on UI.
Change rearrange English before any non English person akas.
Change enable tvinfo on Bulk Change.
Fix prevent slidetime from one tab overwriting the slidetime from another when it should not.
Change reinstate original db perf gains and remove memory savings as the two are mutually exclusive here.
Change match sequence of params even though it it kv based, for readability.
Fix cast transparent background image border - border was larger than width of trans image during the cast image loading process which resulted in a grey border line that was the width of the image container instead of wrapping the trans image.
Change moved icons up 5px after seeing a full width cast image.
Fix remove dupe id in html and escape showname string used for config object.
Fix usage for upgraded Fancybox.
Change flip api fields from ... `deleted unwanted` to `keep wanted` so that data is not mistakenly returned to the API if new data fields are added to get_daily_schedule(), the inclusion list was created by first running the old loop function that removed unwanted fields, and then copying the filtered list of keys into a sorted list for the new logic.
Add imdb miniseries average runtime to view-show.
Fix property initialisation.
Change if cast image calculates to appear lower than header name text, instead align it to top.
Change cleanup cast bio text.
Change DRY CachedImages and better var names.
Change replace 'episodes' embed with new 'episodeswithspecials'.
Add filter images on tvmaze with given aspect ratio.
Add new height, width attr from tvmaze api and use it in tvmaze_api as preferred for show.
Add new averageRuntime to tvmaze lib.
Change refactor getting data for coming episodes views.
Add new parameter to overwritten _fake_specify_ep unit tests.
Fix coming episodes webapi.
Filter unneeded data from coming episodes.
Add verified to NewIdDict.
Add search show for indexermapper to imdb API.
Add tmdb_api.
Add trakt show search cache.
Change split ids and name search in indexermapper.
Change indexermapper to TVINFOAPI (tvmaze).
Change prevent already queued backlog to be added twice for add show.
Change add check if show is already in show_list when adding shows.
Changelog
---------
Change improve loading speed of shows at startup.
Change improve main execution loop speed.
Add force cast update to view show page.
Add person view.
Add character view.
Add characters, person to clean-up cache (30 days).
Add reload person, character images every 7 days.
Add suppress UI notification for scheduled people updates during show updates and during switching ids.
Add resume support of switched shows after restart that switched id but not finished updating.
Add failed TV info switches to show tasks page.
Add remove item from queue and clear queue test buttons to mange/show-tasks and manage/search-tasks.
Change improve show update logic.
Add to view-show page a notification message if a show fails to switch.
Add check for existing show with new id pair before switching.
Change prioritize first episode start year over the start year set at the tv info source.
Change delete non existing episodes when switching indexer.
Change "exists in db" link on search results page to support any info source.
Add TMDB person pics as fallback.
Add use person fallback for character images.
Add logic to add start, end year in case of multiple characters per person.
Change improve speed getting list in the import view.
Add abort people cast update when show is deleted, also remove show from any queued show item or search item
Support list of names to search for in show search.
Change assist user search terms when the actual title of a show is unknown.
Add support URLs in search.
Change remove year from search term ... year is still used for relevancy order.
Add updating show.nfo when a cast changes.
Change use longest biography available for output.
Add UI requests of details for feb 28 will also return feb 29 in years without feb 29.
Add fetch extra data fallback from TMDB for persons.
technical commit messages (combined commits)
--------------------------------------------
Add tmdb get_trending, get_popular, get_top_rated, discover to tvinfoapi.
Add home/get_persons ajax endpoint, currently supports: birthday, deathday, names.
Change daily-schedule to new get_episode_time - More TODO
Change view-show to use get_episode_time.
Add get show updates list in show updater.
Add get_episode_time to network_timezones.
Add airtime for episode and show to get_episode_time.
Small ep obj load performance improvement.
Add handle special episodes and assign numbers based on airdate.
Add handle tvmaze specials without airdate.
Change during switch tv info source, specials are removed from db because of non-existing generic numbering.
Change add first/latest regular episode, use first_aired_regular_episode in all places that have airdate of first episode.
Add IMDb to person interface.
Add akas to person.
Add IMDb bio parser.
Add TMDB api for people.
Add character role start/end year to IMDb api and tv character.
Fix updating characters with multiple persons, by limiting to one.
Add cache to imdb_api.py.
Add cache to tmdb_api: get_person, _search_person.
Add cache to trakt get_person, _search_person cache.
Improve main execution loop speed https://stackify.com/20-simple-python-performance-tuning-tips/ point: 12
Add network to episode for tvdb_api (from show data).
Add fallback for network/timezone for tv episode to tv show.
Add skip retrieve_exceptions for tv info sources that don't have 'scene_url'.
Change move network load before show load to make sure the tvshow obj timezone can be set (startup).
Add datetime.time to/from integer to sbdatetime (hour, minute only).
Add load all indexer mapping at once from db during startup.
Add load the failed count during startup.
Change move sanitize_filename to sg_helpers.
Change move download_file to sg_helpers.
Add list_tables, list_indexes to db.py.
Add multi db column add function.
Restore backup tables during upgrade.
Use lib.tvinfo_base import everywhere.
Add new properties to tvepisode.
Add show_updates to indexer endpoint.
Add new db schema.
Add Character and Persons tables.
Add tvmaze_api lib.
Add pytvmaze lib.
Add debug __repr__ to people/show queue.
Add crew to show tvinfo_base.
Drop backup tables for now.
Don't save switch refresh, update show queue items (since they are sub queues of switch).
Remove show from switched_shows in case it is in it when deleting the show.
Use switch queue for manual switch
Load/save updated time for person/Character.
Add show_queue table.
Add _get_item_sql, _delete_item_from_db_sql to search search_queue.
Add people_queue type.
Add people scheduler.
Add people queue.
Add tvinfo source switch queue item.
Alternate naming for person/character images.
Add load and save image/thumb urls for persons.
Add load character pics.
Add save images for characters.
Add save image urls for characters to db.
Change limit for person searches to 100 instead of 10 default.
Add person verification.
Add people_url and character_url to sources that support them.
Add save castlist changes.
Add remove old characters from castlist.
Change optimize find_show_by_id.
Change improve debug info for person, character obj.
Add db_support_upsert support flag in db.py.
Add cast list objs and load from db.
Add parse and add additional images to TVInfo.
Add optional loading of images and actors/crew.
Fix _make_timestamp in py2.
Save and load _src_update_time.
Change use update time for show updates.
Add _set_network optimization.
Add src_update_timestamp to tvshow tbl.
Add updated_timestamp to TVInfoShow.
Add _indexer_update_time TVShow obj.
Add support to search for external ids on TV info sources: [TVINFO_TVDB, TVINFO_IMDb, TVINFO_TMDB, TVINFO_TRAKT].
Change show tasks page, keep remove button for failed switches always visible.
Add use get_url for tvmaze_api interface (to support failure handling), without changing original lib.
Add missing settings in switch show.
Add new switch error: TVSWITCH_ID_CONFLICT: 'new id conflicts with existing show'.
Add messages for manual switch id.
Add connection skip handling.
Add get_url failure handling to Trakt lib.
Add real search_person to tvinfo interface.
Change move TMDB api key to tmdb_api.
Add get_url usage via tmdb_api.
Change join/split of akas/join and sql group_concat to `;;;` to prevent issues with names that may contain comma (`,`).
Add Trakt api specific failure times.
Add warning about reassigning MEMCACHE
Add calc_age to sg_helpers for person page to remove dupe code.
Add return age in ajax for persons.
Change format dates on person page to honour config/General.
Add convert_to_inch_fraction_html to sg_helpers.
Change direct assign method instead of wrapper (faster).
Change force disk_pickle_protocol=2 for py2 compatibility in tvinfo cache.
Add episode rename info during switch.
Add save deleted episodes when switching tvinfo source.
Add get_switch_changed page.
Add force=True to QueueItemRefresh during switch of tvinfo to force rewriting of metadata.
Add filter character dupes in tvdb_api only take images for unique character, role combos on tvdb.
Fix humanize lib in py27.
Add diskcache to tvinfo_base.
Add doc files for diskcache lib.
Add clean tvinfo to show_updater.
Add switch_ep_errors table to sickbeard.db
Add debug log message when extra data is fetched for a person.
Change make character loading more efficient.
Add placeholder image for characters and persons.
Change start, end year moved to new extra table to support multiple person per character.
Change replace start_year, end_year with persons_years in Character class.
Add new table character_person_years, change table structure characters.
Add check if show is found for switch pages.
Add missing scheduled to cache.db people queue table.
Change trakt show search now will ignore failure handling, to make sure it's always tried when searching for shows.
Change add/improve tvmaze id cross search.
Change improve search, if only ids are given, resulting seriesnames on source will be used as text search on following tvinfo sources.
Add new parameter: prefer_person to imagecache/character endpoint.
Add if prefer_person is set and person_id is set to valid person and the character has more then 1 person assigned the character image will not be returned, instead the actors image or the placeholder.
Add only take external ids if character is confirmed in logic.
Add match name instead of person id for checking same person in show when adding cast for sources without person id (tvdb)
Add cache tmdb genres directly in dict for performance.
Fix webapi set scene season.
Fix set path in all_tests for py2.
Fix webapi exception if no backlog was done before (CMD_SickGearCheckScheduler).
Change webapi don't allow setting of scene numbers when show hasn't activated scene numbering.
Add webapi unit tests... season endpoint, coming episodes, episode, all shows endpoint, restart, shutdown, ping, episode list, seasonlist, getindexer, ignore, require list, get scene exception, human qualities, all qualites, search queue, system defaults, history, shows stats, show stats, root dirs, do show refresh, do show update, test_get_schedules, show pause.
Fix don't search if subtitles disabled.
When searching in season search mode, the status of the first missing/upgradeable episode was used to determine if all the season episodes were wanted ... instead of considering each episode status as is now the case.
Change API response fieldname `global_exclude_ignore` to `global exclude ignore` in sg.listignorewords endpoint.
Change API response fieldname `global_exclude_require` to `global exclude require` in sg.listignorewords endpoint.
Change pre filter words that are are only in global ignore/require list for show specific lists for api set functions.
Change API sg.listignorewords response data type for `global exclude ignore` to list.
Change API sg.listrequirewords response data type for `global exclude require` to list.
Change consolidate _create_ignore_words and _create_require_words into _create_words.
Fix missing regex parameter for show require words in proper search.
Change increase API version to 13.
Fix apiBuilder.tmpl.
Add the following to CHANGES.md for hotfix release 0.21.43...
Change API rename sg.`listrequiedwords` typo endpoint to sg.`listrequirewords`.
Change API rename sg.`setrequiredwords` endpoint to sg.`setrequirewords`.
Change API responses of sg.listrequirewords and sg.setrequirewords to `require words` instead of `required words`.
Add API aliases for old endpoint names with old responses for backwards compatibility.
Add missing parameter 'failed' to sg.postprocess.
Fix legacy command help for episode.search.
Fix sg.show.ratefanart.
Fix sg.logs command wrongly mapped to legacy logs command.
Change return API data depending on old/new method call used for require words.
Change add missing parameter docs for CMD_SickGearSetDefaults.
Fix API CMD_SickGearSetDefaults save to config.
Change increase API version to 12.
Change remove whitespaces from parameter docu.
Change replace "ignore" with "word" in apibuilder endpoint tests.
Fix typos.
Clean shows ignore, require list before saving global lists.
Clean require, ignore words after db upgrade.
Add global ignore, require words cleanup to show_updater.
Clean editShow ignore/require list.
Also cleanup exclude lists of shows.
Optionally restore excludes from previous downgrade.
Add lib folder to all_tests.py to fix local tests.
Add shows ignore/require words to pass_wordlist_checks if show_obj is given.
Change improve scene_exceptions interfacing to indexer API.
Change start implementing new interface.
Add tvdb api lib indexerapiinterface.
Change rebase traktinterface on tvinfo_base.
Switch back exceptions handling for indexers.
Change optimize loading of episodes during update to prevent slow loading with new tvinfo_base.
Change add scene_numbering loading.
Change search show webserve.
Change tv.py to new interface.
Change to more complex locking.
Change switch network_timezones from os.walk to scandir.
Change persons data.
Change add actor parsing to new castlist property.
Change migrate core objects TVShow and TVEpisode and everywhere that these objects affect.
Add message to logs and disable ui backlog buttons when no media provider has active and/or scheduled searching enabled.
Change views for py3 compat.
Change set default runtime of 5 mins if none is given for layout Day by Day.
Add OpenSubtitles authentication support to config/Subtitles/Subtitles Plugin.
Add "Enforce media hash match" to config/Subtitles Plugin/Opensubtitles for accurate subs if enabled, but if disabled, search failures will fallback to use less reliable subtitle results.
Add Apprise 0.8.0 (6aa52c3).
Add hachoir_py3 3.0a6 (5b9e05a).
Add sgmllib3k 1.0.0
Update soupsieve 1.9.1 (24859cc) to soupsieve_py2 1.9.5 (6a38398)
Add soupsieve_py3 2.0.0.dev (69194a2).
Add Tornado_py3 Web Server 6.0.3 (ff985fe).
Add xmlrpclib_to 0.1.1 (c37db9e).
Remove ancient Growl lib 0.1
Remove xmltodict library.
Change requirements.txt for Cheetah3 to minimum 3.2.4
Change update sabToSickBeard.
Change update autoProcessTV.
Change remove Twitter notifier.
Update NZBGet Process Media extension, SickGear-NG 1.7 → 2.4
Update Kodi addon 1.0.3 → 1.0.4
Update ADBA for py3.
Update Beautiful Soup 4.8.0 (r526) to 4.8.1 (r531).
Update Send2Trash 1.3.0 (a568370) to 1.5.0 (66afce7).
Update soupsieve 1.9.1 (24859cc) to 1.9.5 (6a38398).
Change use GNTP (Growl Notification Transport Protocol) from Apprise.
Change add multi host support to Growl notifier.
Fix Growl notifier when using empty password.
Change update links for Growl notifications.
Change deprecate confg/Notifications/Growl password field as these are now stored with host setting.
Fix prevent infinite memoryError from a particular jpg data structure.
Change subliminal for py3.
Change enzyme for py3.
Change browser_ua for py3.
Change feedparser for py3 (sgmlib is no longer available on py3 as standardlib so added ext lib)
Fix Guessit.
Fix parse_xml for py3.
Fix name parser with multi eps for py3.
Fix tvdb_api fixes for py3 (search show).
Fix config/media process to only display "pattern is invalid" qtip on "Episode naming" tab if the associated field is actually visible. Also, if the field becomes hidden due to a setting change, hide any previously displayed qtip.
Note for Javascript::getelementbyid (or $('tag[id="<name>"')) is required when an id is being searched in the dom due to ":" used in a shows id name.
Change download anidb xml files to main cache folder and use adba lib folder as a last resort.
Change create get anidb show groups as centralised helper func and consolidate dupe code.
Change move anidb related functions to newly renamed anime.py (from blacklistandwhitelist.py).
Change str encode hex no longer exits in py3, use codecs.encode(...) instead.
Change fix b64decode on py3 returns bytestrings.
Change use binary read when downloading log file via browser to prevent any encoding issues.
Change add case insensitive ordering to anime black/whitelist.
Fix anime groups list not excluding whitelisted stuff.
Change add Windows utf8 fix ... see: ytdl-org/youtube-dl#820
Change if no qualities are wanted, exit manual search thread.
Fix keepalive for py3 process media.
Change add a once a month update of tvinfo show mappings to the daily updater.
Change autocorrect ids of new shows by updating from -8 to 31 days of the airdate of episode one.
Add next run time to Manage/Show Tasks/Daily show update.
Change when fetching imdb data, if imdb id is an episode id then try to find and use real show id.
Change delete diskcache db in imdbpie when value error (due to change in Python version).
Change during startup, cleanup any _cleaner.pyc/o to prevent issues when switching python versions.
Add .pyc cleaner if python version is switched.
Change replace deprecated gettz_db_metadata() and gettz.
Change rebrand "SickGear PostProcessing script" to "SickGear Process Media extension".
Change improve setup guide to use the NZBGet version to minimise displayed text based on version.
Change NZBGet versions prior to v17 now told to upgrade as those version are no longer supported - code has actually exit on start up for some time but docs were outdated.
Change comment out code and unused option sg_base_path.
Change supported Python version 2.7.9-2.7.18 inclusive expanded to 3.7.1-3.8.1 inclusive.
Change pidfile creation under Linux 0o644.
Make logger accept lists to output continuously using the log_lock instead of split up by other processes.
Fix long path issues with Windows process media.
Add multiple SG apikey support.
Change add apikey name to ERROR log messages.
Change add logging of errors from api.
Change add remote ip to error message.
Change add print command name for api in debug log.
Change add warning message to log if old Sick-Beard api call is used.
Change add an api call mapping helper for name changed functions (for printed warnings).
Change ui typo in apiBuilder.
Fix display of fanart in apibuilder.
Add help command to apiBuilder and fix help call.
Fix add shows via api.
Change fix sg.searchqueue output.
Add missing sg.show.delete parameter "full".
Add missing sg.setdefaults and sg.shutdown methods.
Change increase api version because missing sg.* methods are added.
Change fix internal api reference to old Sick-Beard method.
Change add some extra checks for Sick-Beard call add (existing) show.
Change patch imdbpie to add cachedir folder and set imdbpie cachedir in SG.
Change remove redundant _functionMaper_newmethods ... data already exists in help var of method, use this instead.
Fix force search return values.
Change centralise get old webapi call name.
Change remove duplicate code in SickBeard as sickgear.py can now be executed directly.
Change refactor startup functions to prevent possible latency issues with systemd.
Add startup loading page.
Refactor loading message list to have optional progress (progress dict key != -1).
Add upgrade messages for sickbeard, cache, and failed db upgrade processes to loading page.
Add rollback message (as preparation that rollback module can set progress messages for it).
Add set .load_msg to rollback module class.
Change restart to use loading page.
Change add is_alive to loading webserver and set started var for is_alive after webserver is started.
Change add "Keep up to x most recent downloads" to Edit Show/Other.
Change add "Keep up to x most recent downloads" to Manage/Bulk Change/Edit.
Change append number of downloads to keep to the number of file(s) at Display Show.
Change add "Keep up to x most recent downloads" to add show finally step.
Add prune to refreshDir/rescan.
Add helper function remove_file.
Change add ID format to show_url in indexer_config.
Change display/edit show, episode view, and add new/existing, for URL creation.
Change revert temporary copying show_obj solution.
Change image download error to warning.
Add episode watched state system that integrates with Kodi, Plex, and/or Emby, instructions at Shows/History/Layout/"Watched".
Add installable SickGear Kodi repository containing addon "SickGear Watched State Updater".
Change add Emby setting for watched state scheduler at Config/Notifications/Emby/"Update watched interval".
Change add Plex setting for watched state scheduler at Config/Notifications/Plex/"Update watched interval".
Add API cmd=sg.updatewatchedstate, instructions for use are linked to in layout "Watched" at /history.
Change history page table filter input values are saved across page refreshes.
Change history page table filter inputs, accept values like "dvd or web" to only display both.
Change history page table filter inputs, press 'ESC' key inside a filter input to reset it.
Add provider activity stats to Shows/History/Layout/ drop down.
Change move provider failures table from Manage/Media Search to Shows/History/Layout/Provider fails.
Change sort provider failures by most recent failure, and with paused providers at the top.
Change remove table form non-testing version 20007, that was reassigned.
Change API version... start with 10
Change set application response header to 'SickGear' + add API version
Change return timezone (of network) in API
Add indexer to calls
Add SickGear Command tip for old SickBeard commands
Add warning old sickbeard API calls only support tvdb shows
Add "tvdbid" fallback only for sickbeard calls
Add listcommands
Add list of all commands (old + new) in listcommand page at the beginning
Change hide 'listcommands' command from commands list, since it needs the API builder CSS + is html not json
Add missing help in webapi
Add episode info: absolute_number, scene_season, scene_episode, scene_absolute_number
Add fork to SB command
Add sg
Add sg.activatescenenumbering
Add sg.addrootdir
Add sg.checkscheduler
Add sg.deleterootdir
Add sg.episode
Add sg.episode.search
Add sg.episode.setstatus
Add sg.episode.subtitlesearch
Add sg.exceptions
Add sg.forcesearch
Add sg.future
Add sg.getdefaults
Add sg.getindexericon
Add sg.getindexers to list all indexers
Add sg.getmessages
Add sg.getnetworkicon
Add sg.getrootdirs
Add sg.getqualities
Add sg.getqualitystrings
Add sg.history
Add sg.history.clear
Add sg.history.trim
Add sg.listtraktaccounts
Add sg.listignorewords
Add sg.listrequiedwords
Add sg.logs
Add sg.pausebacklog
Add sg.postprocess
Add sg.ping
Add sg.restart
Add sg.searchqueue
Add sg.searchtv to search all indexers
Add sg.setexceptions
Add sg.setignorewords
Add sg.setrequiredwords
Add sg.setscenenumber
Add sg.show
Add sg.show.addexisting
Add sg.show.addnew
Add sg.show.cache
Add sg.show.delete
Add sg.show.getbanner
Add sg.show.getfanart
Add sg.show.getposter
Add sg.show.getquality
Add sg.show.listfanart
Add sg.show.ratefanart
Add sg.show.seasonlist
Add sg.show.seasons
Add sg.show.setquality
Add sg.show.stats
Add sg.show.refresh
Add sg.show.pause
Add sg.show.update
Add sg.shows
Add sg.shows.browsetrakt
Add sg.shows.forceupdate
Add sg.shows.queue
Add sg.shows.stats
Change sickbeard to sickgear
Change sickbeard_call to property
Change sg.episode.setstatus allow setting of quality
Change sg.history, history command output
Change sg.searchtv to list of indexers
Add uhd4kweb to qualities
Add upgrade_once to add existing shows
Add upgrade_once to add new show
Add upgrade_once to show quality settings (get/set)
Add 'ids' to Show + Shows
Add ids to coming eps + get tvdb id from ids
Add 'status_str' to coming eps
Add 'local_datetime' to comming eps + runtime
Add X-Filename response header to getbanner, getposter
Add X-Fanartname response header for sg.show.getfanart
Add missing fields to sb.show
Add missing fields to sb.shows
Change sb.seasons
Change overview optional
Change make overview optional in shows
Add setscenenumber to API builder
Change move set_scene_numbering_helper into scnene_numbering for use in web interface and API
Change use quality_map instead of fixed list
Add eigthlevel for API/builder page
Change limit indexer param to valid values
Fix wrong parameter in existing apiBuilder.tmpl that prevents javascript from continuing + add console error message for it
Fixed: filter missed shows correctly
Add @gen.coroutine
Change use bare minimum requests for all usenet_crawler search modes.
Change use RSS endpoint for usenet_crawler in cache mode.
Fix ensure remaining unicode shownames are correctly 'UTF-8' and url encoded.
Fix omgwtf test of invalid auth, issue when enabling propers, and updating cache.
Change refactor shownames list into reusable show_name_helper methods.
Add season specific naming exceptions to nzb + btn.
Use to prevent "Update to" on those select episodes while preserving the downloaded quality.
Change group "Downloaded" status qualities into one section.
Add "Downloaded/with archived quality" to set shows as downloaded using quality of archived status.
Add "Archived with/downloaded quality" to set shows as archived using quality of downloaded status.
Add "Archived with/default (min. initial quality of show here)".
Change when settings/Post Processing/File Handling/Status of removed episodes/Set Archived is enabled, set status and quality accordingly.
Add downloaded and archived statuses to Manage/Episode Status.
Add quality pills to Manage/Episode Status.
Change Manage/Episode Status season output format to be more readable.
Change add SNATCHED_ANY and ARCHIVED, refactor accordingly.
Add "Maximum fanart image files per show to cache" to config General/Interface.
Add populate images when the daily show updater is run with a default maximum 3 images per show.
Change force full update in a show will replace existing images with new.
Add fanart livepanel to lower right of Episodes View and Display Show page.
Add highlight panel red until button is clicked a few times.
Add flick through multiple background images on Episodes View and Display Show page.
Add persistent move poster image to right hand side or hide on Display Show page (multi-click the eye).
Add persistent translucency of background images on Episodes View and Display Show page.
Add persistent fanart rating to avoid art completely, random display, random from a group, or display fave always.
Add persistent views of the show detail on Display Show page.
Add persistent views on Episodes View.
Add persistent button to collapse and expand card images on Episode View/Layout daybyday.
Add non persistent "Open gear" and "Full fanart" image views to Episodes View and Display Show page.
Add "smart" selection of fanart image to display on Episode view.
Change insert [!] and change text shade of ended shows in drop down show list on Display Show page.
Change button graphic for next and previous show of show list on Display Show page.
Add logic to hide some livepanel buttons until artwork becomes available or in other circumstances.
Add "(Ended)" where appropriate to show title on Display Show page.
Add links to fanart.tv where appropriate on Display Show page.
Change use tense for label "Airs" or "Aired" depending on if show ended.
Change display "No files" instead of "0 files" and "Upgrade once" instead of "End upgrade on first match".
Add persistent button to newest season to "Show all" episodes.
Add persistent button to all shown seasons to "Hide most" episodes.
Add button to older seasons to toggle "Show Season n" or "Show Specials" with "Hide..." episodes.
Add season level status counts next to each season header on display show page
Add sorting to season table headers on display show page
Add filename and size to quality badge on display show page, removed its redundant "downloaded" text
Remove redundant "Add show" buttons
Change combine the NFO and TBN columns into a single Meta column
Change reduce screen estate used by episode numbers columns
Change improve clarity of text on Add Show page.
Add "Reset fanart ratings" to show Edit/Other tab.
Add fanart usage to show Edit/Other tab.
Add fanart keys guide to show Edit/Other tab.
Change add placeholder tip to "Alternative release name(s)" on show Edit.
Change add placeholder tip to search box on shows Search.
Change hide Anime tips on show Edit when selecting its mutually exclusive options.
Change label "End upgrade on first match" to "Upgrade once" on show Edit.
Change improve performance rendering displayShow.
Add total episodes to start of show description (excludes specials if those are hidden).
Add "Add show" actions i.e. "Search", "Trakt cards", "IMDb cards", and "Anime" to Shows menu.
Add "Import (existing)" action to Tools menu.
Change SD quality from red to dark green, 2160p UHD 4K is red.
Change relocate the functions of Logs & Errors to the right side Tools menu -> View Log File.
Add warning indicator to the Tools menu in different colour depending on error count (green through red).
Change View Log error item output from reversed to natural order.
Change View Log add a typeface and some colour to improve readability.
Change View Log/Errors only display "Clear Errors" button when there are errors to clear.
Change improve performance of View Log File.
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.