You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1528 lines
53 KiB

Add support for multiple TV info sources. 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.
4 years ago
from __future__ import unicode_literals
import re
import six
from datetime import datetime
import requests
from requests.packages.urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
from . import endpoints, logger
from .exceptions import *
# noinspection PyUnreachableCode
if False:
from typing import AnyStr, Dict, List, Optional
from six import integer_types
class Show(object):
def __init__(self, data):
self.status = data.get('status') # type: Optional[AnyStr]
self.rating = data.get('rating') # type: Optional[integer_types]
self.genres = data.get('genres') # type: Optional[List[AnyStr]]
self.weight = data.get('weight') # type: Optional[integer_types]
self.updated = data.get('updated')
self.name = data.get('name') # type: Optional[AnyStr]
self.language = data.get('language') # type: Optional[AnyStr]
self.schedule = data.get('schedule')
self.url = data.get('url') # type: Optional[AnyStr]
self.official_site = data.get('officialSite') # type: Optional[AnyStr]
self.image = data.get('image')
self.externals = data.get('externals')
self.premiered = data.get('premiered') # type: Optional[AnyStr]
self.summary = _remove_tags(data.get('summary', '')) # type: Optional[AnyStr]
self.links = data.get('_links')
if data.get('webChannel'):
self.web_channel = WebChannel(data.get('webChannel')) # type: Optional[WebChannel]
else:
self.web_channel = None
self.runtime = data.get('runtime') # type: Optional[integer_types]
self.average_runtime = data.get('averageRuntime')
Add support for multiple TV info sources. 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.
4 years ago
self.type = data.get('type') # type: Optional[AnyStr]
self.id = data.get('id') # type: integer_types
self.maze_id = self.id # type: integer_types
if data.get('network'):
self.network = Network(data.get('network')) # type: Optional[Network]
else:
self.network = None
self.__episodes = None # type: Optional[List[Episode]]
self._specials_loaded = False # type: bool
self._seasons = None # type: Optional[List[Season]]
self._cast = None # type: Optional[List[Cast]]
self._crew = None # type: Optional[List[Crew]]
self._images = None # type: Optional[List[Image]]
self._akas = None # type: Optional[List[AnyStr]]
self.__nextepisode = None # type: Optional[Episode]
self.__previousepisode = None # type: Optional[Episode]
self.populate(data)
def __repr__(self):
if self.premiered:
year = str(self.premiered[:4])
else:
year = None
if self.web_channel:
platform = ',show_web_channel='
network = self.web_channel.name
elif self.network:
platform = ',network='
network = self.network.name
else:
platform = ''
network = ''
return _valid_encoding('<Show(maze_id={id},name={name},year={year}{platform}{network})>'.format(
id=self.maze_id,
name=self.name,
year=year,
platform=platform,
network=network)
)
def __str__(self):
n = ''
if self.network:
n = ' (%s)' % self.network.name
return _valid_encoding('%s%s [%s]' % (self.name, n, self.premiered))
def __unicode__(self):
n = ''
if self.network:
n = ' (%s)' % self.network.name
return '%s%s (%s)' % (self.name, n, self.premiered)
def __iter__(self):
return iter(self.seasons.values())
# Python 3 bool evaluation
def __bool__(self):
return bool(self.id)
# Python 2 bool evaluation
def __nonzero__(self):
return bool(self.id)
def __len__(self):
return len(self.seasons)
def __getitem__(self, item):
try:
return self.seasons[item]
except KeyError:
raise SeasonNotFound('Season {0} does not exist for show {1}.'.format(item, self.name))
@property
def akas(self):
if None is self._akas:
self._akas = show_akas(self.maze_id, raise_error=False)
return self._akas
@property
def crew(self):
if None is self._crew:
self._crew = get_show_crew(self.maze_id, raise_error=False)
return self._crew
@property
def images(self):
if None is self._images:
self._images = get_show_images(self.maze_id, raise_error=False)
return self._images
@property
def cast(self):
if None is self._cast:
self._cast = show_cast(self.maze_id, raise_error=False)
return self._cast
@property
def next_episode(self):
if self.__nextepisode is None and 'nextepisode' in self.links and 'href' in self.links['nextepisode']:
episode_id = self.links['nextepisode']['href'].rsplit('/', 1)[1]
if episode_id.isdigit():
self.__nextepisode = episode_by_id(episode_id, show=self, raise_error=False)
return self.__nextepisode
@property
def previous_episode(self):
if self.__previousepisode is None and 'previousepisode' in self.links\
and 'href' in self.links['previousepisode']:
episode_id = self.links['previousepisode']['href'].rsplit('/', 1)[1]
if episode_id.isdigit():
self.__previousepisode = episode_by_id(episode_id, show=self, raise_error=False)
return self.__previousepisode
def _set_season_numbers(self):
seasons = show_seasons(self.maze_id, show=self, raise_error=False)
self._seasons = dict()
for episode in self.__episodes:
season_num = int(episode.season_number)
if season_num not in self._seasons:
self._seasons[season_num] = seasons[season_num]
self._seasons[season_num].show = self
@property
def seasons(self):
if None is self._seasons:
self.episodes
return self._seasons
@property
def episodes(self):
if None is self.__episodes or not self._specials_loaded:
self.__episodes = episode_list(self.maze_id, specials=True, raise_error=False, show=self)
self._specials_loaded = True
self._set_season_numbers()
return self.__episodes
def populate(self, data):
embedded = data.get('_embedded')
if embedded:
episodes = embedded.get('episodeswithspecials') or embedded.get('episodes')
if episodes:
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
self.__episodes = []
for episode in episodes:
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
self.__episodes.append(Episode(episode, self))
self._set_season_numbers()
if 'episodeswithspecials' in embedded:
self._specials_loaded = True
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if embedded.get('cast'):
self._cast = Cast(embedded.get('cast'))
class Season(object):
def __init__(self, data, show=None, season_number=None):
self.show = show
if None is not season_number and None is not show and show.episodes:
self.__episodes = [ep for ep in show.episodes if season_number == ep.season_number]
else:
self.__episodes = None
self.id = data.get('id')
self.url = data.get('url')
self.season_number = data.get('number')
self.name = data.get('name')
self.episode_order = data.get('episodeOrder')
self.premiere_date = data.get('premiereDate')
self.end_date = data.get('endDate')
if data.get('network'):
self.network = Network(data.get('network'))
else:
self.network = None
if data.get('webChannel'):
self.web_channel = WebChannel(data.get('webChannel'))
else:
self.web_channel = None
self.image = data.get('image')
self.summary = data.get('summary')
self.links = data.get('_links')
def __repr__(self):
return _valid_encoding('<Season(id={id},season_number={number})>'.format(
id=self.id,
number=str(self.season_number).zfill(2)
))
def _get_showname(self):
sn = ''
if self.show:
sn = '%s - ' % self.show.name
return '%sSeason %02d (%s/%s)' % (sn, self.season_number, len(self.episodes), self.episode_order)
def __unicode__(self):
return self._get_showname()
def __str__(self):
return _valid_encoding(self._get_showname())
def __iter__(self):
return iter(self.episodes.values())
def __len__(self):
return len(self.episodes)
def __getitem__(self, item):
try:
return self.episodes[item]
except KeyError:
raise EpisodeNotFound(
'Episode {0} does not exist for season {1} of show {2}.'.format(item, self.season_number,
self.show))
# Python 3 bool evaluation
def __bool__(self):
return bool(self.id)
# Python 2 bool evaluation
def __nonzero__(self):
return bool(self.id)
@property
def episodes(self):
# type: (...) -> List[Episode]
if None is self.__episodes or not self.show._specials_loaded:
self.__episodes = [ep for ep in episode_list(self.show.maze_id, specials=True, raise_error=False,
show=self.show) if ep.season_number == self.season_number]
self.show._specials_loaded = True
return self.__episodes
class Episode(object):
def __init__(self, data, show=None):
self.title = data.get('name')
self.airdate = data.get('airdate')
self.url = data.get('url')
self.season_number = data.get('season')
self.episode_number = data.get('number')
self.image = data.get('image')
self.airstamp = data.get('airstamp')
self.airtime = data.get('airtime')
self.runtime = data.get('runtime')
self.summary = _remove_tags(data.get('summary'))
self.maze_id = data.get('id')
self.type = data.get('type') # type: AnyStr # ("regular", "significant_special", "insignificant_special")
self.special = self.is_special()
# Reference to show for when using get_schedule()
self.show = show
if not show:
if data.get('show'):
self.show = Show(data.get('show'))
# Reference to show for when using get_full_schedule()
if data.get('_embedded'):
if data['_embedded'].get('show'):
self.show = Show(data['_embedded']['show'])
def __repr__(self):
if self.special:
epnum = 'Special'
else:
epnum = self.episode_number
return _valid_encoding('<Episode(season={season},episode_number={number})>'.format(
season=str(self.season_number).zfill(2),
number=str(epnum).zfill(2))
)
def _gen_ep_name(self):
season = 'S' + str(self.season_number).zfill(2)
if self.special:
episode = ' Special'
else:
episode = 'E' + str(self.episode_number).zfill(2)
sn = ''
if self.show:
sn = '%s - ' % self.show.name
return sn + season + episode + ' ' + self.title
def __str__(self):
return _valid_encoding(self._gen_ep_name())
def __unicode__(self):
return self._gen_ep_name()
def is_special(self):
if self.type in ('significant_special', 'insignificant_special'):
return True
elif 'regular' == self.type:
return False
# fallback for previous api without type field
if self.episode_number:
return False
return True
class Person(object):
def __init__(self, data):
if data.get('person'):
data = data['person']
self.links = data.get('_links')
self.id = data.get('id')
self.image = data.get('image')
self.name = data.get('name')
self.score = data.get('score')
self.url = data.get('url')
self.birthday = data.get('birthday')
self.death_day = data.get('deathday')
self.gender = data.get('gender')
self.country = data.get('country')
self.character = None
self._castcredits = None
self._crewcredits = None
# self.populate(data)
# def populate(self, data):
# if data.get('_embedded'):
# if data['_embedded'].get('castcredits'):
# self._castcredits = [CastCredit(credit)
# for credit in data['_embedded']['castcredits']]
# elif data['_embedded'].get('crewcredits'):
# self.crewcredits = [CrewCredit(credit)
# for credit in data['_embedded']['crewcredits']]
@property
def castcredits(self):
if None is self._castcredits:
self._castcredits = person_cast_credits(self.id, embed='show,character', raise_error=False)
return self._castcredits
@property
def crewcredits(self):
if None is self._crewcredits:
self._crewcredits = person_crew_credits(self.id, embed='show', raise_error=False)
return self._crewcredits
def __repr__(self):
return _valid_encoding('<Person(name={name},maze_id={id})>'.format(
name=self.name,
id=self.id
))
def _gen_lifetime(self):
l = ''
if self.birthday:
l = '%s' % self.birthday
if self.death_day:
if 0 < len(l):
l += ' - '
l = '%s' % self.death_day
if 0 < len(l):
l = ' (%s)' % l
return l
def __str__(self):
return _valid_encoding('%s%s' % (self.name, self._gen_lifetime()))
def __unicode__(self):
return '%s%s' % (self.name, self._gen_lifetime())
class Character(object):
def __init__(self, data, base_data=None):
base_data = {} if None is base_data else base_data
self.id = data.get('id')
self.url = data.get('url')
self.name = data.get('name')
self.image = data.get('image')
self.links = data.get('_links')
self.plays_self = base_data.get('self')
self.voice = base_data.get('voice')
self.person = None # type: Optional[Person]
def __repr__(self):
return _valid_encoding('<Character(name={name},maze_id={id})>'.format(
name=self.name,
id=self.id
))
def _get_person(self):
p = ''
if self.person:
p = ' (%s)' % self.person.name
return p
def __str__(self):
return _valid_encoding('%s%s' % (self.name, self._get_person()))
def __unicode__(self):
return '%s%s' % (self.name, self._get_person())
class Cast(object):
def __init__(self, data):
self.people = []
self.characters = [] # type: List[Character]
self.populate(data)
def populate(self, data):
for cast_member in data:
self.people.append(Person(cast_member['person']))
self.characters.append(Character(cast_member['character'], cast_member))
self.people[-1].character = self.characters[-1] # add reference to character
self.characters[-1].person = self.people[-1] # add reference to cast member
def __repr__(self):
return self.__str__()
def __str__(self):
return _valid_encoding('%s (%s)' % (self.characters, self.people))
def __unicode__(self):
return '%s (%s)' % (self.characters, self.people)
class CastCredit(object):
def __init__(self, data):
self.links = data.get('_links')
self.character = None
self.show = None
self.populate(data)
def populate(self, data):
if data.get('_embedded'):
if data['_embedded'].get('character'):
self.character = Character(data['_embedded']['character'])
if data['_embedded'].get('show'):
self.show = Show(data['_embedded']['show'])
def __repr__(self):
return self.__str__()
def __str__(self):
return _valid_encoding('%s (%s)' % (self.character, self.show))
def __unicode__(self):
return '%s (%s)' % (self.character, self.show)
class CrewCredit(object):
def __init__(self, data):
self.links = data.get('_links')
self.type = data.get('type')
self.show = None
self.populate(data)
def populate(self, data):
if data.get('_embedded'):
if data['_embedded'].get('show'):
self.show = Show(data['_embedded']['show'])
def __repr__(self):
return self.__str__()
def __str__(self):
return _valid_encoding('%s (%s)' % (self.type, self.show))
def __unicode__(self):
return '%s (%s)' % (self.type, self.show)
class Crew(object):
def __init__(self, data):
self.person = Person(data.get('person'))
self.type = data.get('type')
def __unicode__(self):
return '%s: %s' % (self.type, self.person)
def __str__(self):
return _valid_encoding('%s: %s' % (self.type, self.person))
def __repr__(self):
return _valid_encoding('<Crew(name={name},maze_id={id},type={type})>'.format(
name=self.person.name,
id=self.person.id,
type=self.type
))
class Image(object):
def __init__(self, data):
self.main = data.get('main') # type: bool
self.type = data.get('type') # type: AnyStr
self.id = data.get('id') # type: integer_types
self.resolutions = data.get('resolutions') # type: Dict[AnyStr, AnyStr]
def _get_type_name(self):
return ('unknown', self.type)[isinstance(self.type, six.string_types)]
def _get_main_str(self):
return ('Other', 'Main')[True is self.main]
def __unicode__(self):
return '%s: %s' % (self._get_type_name(), self._get_main_str())
def __str__(self):
return _valid_encoding('%s: %s' % (self._get_type_name(), self._get_main_str()))
def __repr__(self):
return _valid_encoding('<Image(main={main},maze_id={id},type={type})>'.format(
main=self.main,
id=self.id,
type=self._get_type_name()
))
class Updates(object):
def __init__(self, data):
self.updates = dict()
self.populate(data)
def populate(self, data):
for maze_id, time in data.items():
self.updates[int(maze_id)] = Update(maze_id, time)
def __getitem__(self, item):
try:
return self.updates[item]
except KeyError:
logger.error('No update found for Maze id {}.'.format(item))
raise UpdateNotFound('No update found for Maze id {}.'.format(item))
def __iter__(self):
return iter(self.updates.values())
class Update(object):
def __init__(self, maze_id, time):
self.maze_id = int(maze_id)
self.seconds_since_epoch = time
self.timestamp = datetime.fromtimestamp(time)
def __repr__(self):
return _valid_encoding('<Update(maze_id={maze_id},time={time})>'.format(
maze_id=self.maze_id,
time=self.seconds_since_epoch
))
class AKA(object):
def __init__(self, data):
self.name = data.get('name')
self.country = data.get('country')
def __repr__(self):
return _valid_encoding('<AKA(name={name},country={country})>'.format(name=self.name, country=self.country))
def _get_country(self):
c = ''
if self.country:
c = ' (%s)' % self.country.get('name')
return c
def __unicode__(self):
return '%s%s' % (self.name, self._get_country())
def __str__(self):
return _valid_encoding('%s%s' % (self.name, self._get_country()))
class NetworkBase(object):
def __init__(self, data, *args, **kwargs):
self.name = data.get('name')
self.maze_id = data.get('id')
if data.get('country'):
self.country = data['country'].get('name')
self.timezone = data['country'].get('timezone')
self.code = data['country'].get('code')
else:
self.country = None
self.timezone = None
self.code = None
def _get_coutnry(self):
c = ''
if self.country:
c = ' (%s)' % self.country.name
return c
def __unicode__(self):
return '%s%s' % (self.name, self._get_coutnry())
def __str__(self):
return _valid_encoding('%s%s' % (self.name, self._get_coutnry()))
class Network(NetworkBase):
def __init__(self, data):
super(Network, self).__init__(data)
def __repr__(self):
return _valid_encoding('<Network(name={name},country={country})>'.format(name=self.name, country=self.country))
class WebChannel(NetworkBase):
def __init__(self, data):
super(WebChannel, self).__init__(data)
def __repr__(self):
return _valid_encoding('<WebChannel(name={name},country={country})>'.format(name=self.name, country=self.country))
class FollowedShow(object):
def __init__(self, data):
self.maze_id = data.get('show_id')
self.show = None
if data.get('_embedded'):
self.show = Show(data['_embedded'].get('show'))
def __repr__(self):
return _valid_encoding('<FollowedShow(maze_id={})>'.format(self.maze_id))
class FollowedPerson(object):
def __init__(self, data):
self.person_id = data.get('person_id')
self.person = None
if data.get('_embedded'):
self.person = Person(data['_embedded'].get('person'))
def __repr__(self):
return _valid_encoding('<FollowedPerson(person_id={id})>'.format(id=self.person_id))
class FollowedNetwork(object):
def __init__(self, data):
self.network_id = data.get('network_id')
self.network = None
if data.get('_embedded'):
self.network = Network(data['_embedded'].get('network'))
def __repr__(self):
return _valid_encoding('<FollowedNetwork(network_id={id})>'.format(id=self.network_id))
class FollowedWebChannel(object):
def __init__(self, data):
self.web_channel_id = data.get('webchannel_id')
self.web_channel = None
if data.get('_embedded'):
self.web_channel = WebChannel(data['_embedded'].get('webchannel'))
def __repr__(self):
return _valid_encoding('<FollowedWebChannel(web_channel_id={id})>'.format(id=self.web_channel_id))
class MarkedEpisode(object):
def __init__(self, data):
self.episode_id = data.get('episode_id')
self.marked_at = data.get('marked_at')
type_ = data.get('type')
types = {0: 'watched', 1: 'acquired', 2: 'skipped'}
self.type = types[type_]
def __repr__(self):
return _valid_encoding('<MarkedEpisode(episode_id={id},marked_at={marked_at},type={type})>'.format(
id=self.episode_id, marked_at=self.marked_at, type=self.type))
class VotedShow(object):
def __init__(self, data):
self.maze_id = data.get('show_id')
self.voted_at = data.get('voted_at')
self.vote = data.get('vote')
if data.get('_embedded'):
self.show = Show(data['_embedded'].get('show'))
def __repr__(self):
return _valid_encoding('<VotedShow(maze_id={id},voted_at={voted_at},vote={vote})>'.format(id=self.maze_id,
voted_at=self.voted_at,
vote=self.vote))
class VotedEpisode(object):
def __init__(self, data):
self.episode_id = data.get('episode_id')
self.voted_at = data.get('voted_at')
self.vote = data.get('vote')
def __repr__(self):
return _valid_encoding('<VotedEpisode(episode_id={id},voted_at={voted_at},vote={vote})>'.format(id=self.episode_id,
voted_at=self.voted_at,
vote=self.vote))
def _valid_encoding(text):
if not text:
return
if sys.version_info > (3,):
return text
else:
return unicode(text).encode('utf-8')
def _url_quote(show):
return requests.compat.quote(show.encode('UTF-8'))
def _remove_tags(text):
if not text:
return None
return re.sub(r'<.*?>', '', text)
# noinspection PyUnusedLocal
def _record_hook(r, *args, **kwargs):
r.hook_called = True
if 301 == r.status_code and isinstance(r.headers.get('Location'), six.string_types) \
and r.headers.get('Location').startswith('http://api.tvmaze'):
r.headers['Location'] = r.headers['Location'].replace('http://', 'https://')
return r
def _embed_url(base_url, embed, possible_embeds, glue):
if isinstance(embed, six.string_types):
embed_words = [em.strip() for em in embed.split(',')]
elif None is embed:
embed_words = []
else:
embed_words = None
if None is embed_words or any(ew not in possible_embeds for ew in embed_words):
raise InvalidEmbedValue('Value for embed must be %s' % possible_embeds)
if embed_words:
if 1 == len(embed_words):
return '%s%sembed=%s' % (base_url, glue, embed_words[0])
else:
eu = ''
for word in embed_words:
eu += '%sembed[]=%s' % (glue, word)
glue = '&'
return '%s%s' % (base_url, eu)
return base_url
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
class TVmaze(object):
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
"""This is the main class of the module enabling interaction with both free and Premium
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
TVmaze features.
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
Attributes:
username (str): Username for http://www.tvmaze.com
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
api_key (str): TVmaze api key. Find your key at http://www.tvmaze.com/dashboard
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
"""
def __init__(self, username=None, api_key=None):
self.username = username
self.api_key = api_key
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
# Query TVmaze free endpoints
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
@staticmethod
def endpoint_standard_get(url):
s = requests.Session()
retries = Retry(total=5,
backoff_factor=0.1,
status_forcelist=[429])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
try:
r = s.get(url, hooks={'response': _record_hook})
except requests.exceptions.ConnectionError as e:
logger.error(repr(e))
raise ConnectionError(repr(e))
s.close()
if r.status_code in [404, 422]:
return None
if r.status_code == 400:
raise BadRequest('Bad Request for url {}'.format(url))
results = r.json()
return results
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
# Query TVmaze Premium endpoints
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
def _endpoint_premium_get(self, url):
s = requests.Session()
retries = Retry(total=5,
backoff_factor=0.1,
status_forcelist=[429])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
try:
r = s.get(url, auth=(self.username, self.api_key), hooks={'response': _record_hook})
except requests.exceptions.ConnectionError as e:
logger.error(repr(e))
raise ConnectionError(repr(e))
s.close()
if r.status_code in [404, 422]:
return None
if r.status_code == 400:
raise BadRequest('Bad Request for url {}'.format(url))
results = r.json()
return results
def _endpoint_premium_delete(self, url):
s = requests.Session()
retries = Retry(total=5,
backoff_factor=0.1,
status_forcelist=[429])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
try:
r = s.delete(url, auth=(self.username, self.api_key), hooks={'response': _record_hook})
except requests.exceptions.ConnectionError as e:
logger.error(repr(e))
raise ConnectionError(repr(e))
s.close()
if r.status_code == 400:
logger.error('Bad Request for url {}'.format(url))
raise BadRequest('Bad Request for url {}'.format(url))
if r.status_code == 200:
return True
if r.status_code == 404:
return None
def _endpoint_premium_put(self, url, payload=None):
s = requests.Session()
retries = Retry(total=5,
backoff_factor=0.1,
status_forcelist=[429])
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
try:
r = s.put(url, data=payload, auth=(self.username, self.api_key), hooks={'response': _record_hook})
except requests.exceptions.ConnectionError as e:
logger.error(repr(e))
raise ConnectionError(repr(e))
s.close()
if r.status_code == 400:
raise BadRequest('Bad Request for url {}'.format(url))
if r.status_code == 200:
return True
if r.status_code in [404, 422]:
return None
# Get Show object
def get_show(self, maze_id=None, tvdb_id=None, tvrage_id=None, imdb_id=None, show_name=None,
show_year=None, show_network=None, show_language=None, show_country=None,
show_web_channel=None, embed=None):
# type: (...) -> Show
"""
Get Show object directly via id or indirectly via name + optional qualifiers
If only a show_name is given, the show with the highest score using the
tvmaze algorithm will be returned.
If you provide extra qualifiers such as network or language they will be
used for a more specific match, if one exists.
Args:
maze_id: Show maze_id
tvdb_id: Show tvdb_id
tvrage_id: Show tvrage_id
imdb_id: Show tvrage_id
show_name: Show name to be searched
show_year: Show premiere year
show_network: Show TV Network (like ABC, NBC, etc.)
show_web_channel: Show Web Channel (like Netflix, Amazon, etc.)
show_language: Show language
show_country: Show country
embed: embed parameter to include additional data. Currently 'episodes', 'cast', 'episodeswithspecials' are supported
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
"""
errors = []
if not (maze_id or tvdb_id or tvrage_id or imdb_id or show_name):
raise MissingParameters(
'Either maze_id, tvdb_id, tvrage_id, imdb_id or show_name are required to get show, none provided,')
if maze_id:
try:
return show_main_info(maze_id, embed=embed)
except IDNotFound as e:
errors.append(e.value)
if tvdb_id:
try:
return show_main_info(lookup_tvdb(tvdb_id).id, embed=embed)
except IDNotFound as e:
errors.append(e.value)
if tvrage_id:
try:
return show_main_info(lookup_tvrage(tvrage_id).id, embed=embed)
except IDNotFound as e:
errors.append(e.value)
if imdb_id:
try:
return show_main_info(lookup_imdb(imdb_id).id, embed=embed)
except IDNotFound as e:
errors.append(e.value)
if show_name:
try:
show = self._get_show_by_search(show_name, show_year, show_network, show_language,
show_country, show_web_channel, embed=embed)
return show
except ShowNotFound as e:
errors.append(e.value)
raise ShowNotFound(' ,'.join(errors))
@staticmethod
def _get_show_with_qualifiers(show_name, qualifiers):
shows = get_show_list(show_name)
best_match = -1 # Initialize match value score
show_match = None
for show in shows:
if show.premiered:
premiered = show.premiered[:-6].lower()
else:
premiered = None
if show.network and show.network.name:
network = show.network.name.lower()
else:
network = None
if show.web_channel and show.web_channel.name:
web_channel = show.web_channel.name.lower()
else:
web_channel = None
if show.network and show.network.code:
country = show.network.code.lower()
else:
if show.web_channel and show.web_channel.code:
country = show.web_channel.code.lower()
else:
country = None
if show.language:
language = show.language.lower()
else:
language = None
attributes = [premiered, country, network, language, web_channel]
show_score = len(set(qualifiers) & set(attributes))
if show_score > best_match:
best_match = show_score
show_match = show
return show_match
# Search with user-defined qualifiers, used by get_show() method
def _get_show_by_search(self, show_name, show_year, show_network, show_language, show_country,
show_web_channel, embed):
if show_year:
show_year = str(show_year)
qualifiers = list(filter(None, [show_year, show_network, show_language, show_country, show_web_channel]))
if qualifiers:
qualifiers = [q.lower() for q in qualifiers if q]
show = self._get_show_with_qualifiers(show_name, qualifiers)
else:
return show_single_search(show=show_name, embed=embed)
if embed:
return show_main_info(maze_id=show.id, embed=embed)
else:
return show
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
# TVmaze Premium Endpoints
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
# NOT DONE OR TESTED
def get_followed_shows(self, embed=None):
if embed not in [None, 'show']:
raise InvalidEmbedValue('Value for embed must be "show" or None')
url = endpoints.followed_shows.format('/')
if embed == 'show':
url = endpoints.followed_shows.format('?embed=show')
q = self._endpoint_premium_get(url)
if q:
return [FollowedShow(show) for show in q]
else:
raise NoFollowedShows('You have not followed any shows yet')
def get_followed_show(self, maze_id):
url = endpoints.followed_shows.format('/' + str(maze_id))
q = self._endpoint_premium_get(url)
if q:
return FollowedShow(q)
else:
raise ShowNotFollowed('Show with ID {} is not followed'.format(maze_id))
def follow_show(self, maze_id):
url = endpoints.followed_shows.format('/' + str(maze_id))
q = self._endpoint_premium_put(url)
if not q:
raise ShowNotFound('Show with ID {} does not exist'.format(maze_id))
def unfollow_show(self, maze_id):
url = endpoints.followed_shows.format('/' + str(maze_id))
q = self._endpoint_premium_delete(url)
if not q:
raise ShowNotFollowed('Show with ID {} was not followed'.format(maze_id))
def get_followed_people(self, embed=None):
if embed not in [None, 'person']:
raise InvalidEmbedValue('Value for embed must be "person" or None')
url = endpoints.followed_people.format('/')
if embed == 'person':
url = endpoints.followed_people.format('?embed=person')
q = self._endpoint_premium_get(url)
if q:
return [FollowedPerson(person) for person in q]
else:
raise NoFollowedPeople('You have not followed any people yet')
def get_followed_person(self, person_id):
url = endpoints.followed_people.format('/' + str(person_id))
q = self._endpoint_premium_get(url)
if q:
return FollowedPerson(q)
else:
raise PersonNotFound('Person with ID {} is not followed'.format(person_id))
def follow_person(self, person_id):
url = endpoints.followed_people.format('/' + str(person_id))
q = self._endpoint_premium_put(url)
if not q:
raise PersonNotFound('Person with ID {} does not exist'.format(person_id))
def unfollow_person(self, person_id):
url = endpoints.followed_people.format('/' + str(person_id))
q = self._endpoint_premium_delete(url)
if not q:
raise PersonNotFollowed('Person with ID {} was not followed'.format(person_id))
def get_followed_networks(self, embed=None):
if embed not in [None, 'network']:
raise InvalidEmbedValue('Value for embed must be "network" or None')
url = endpoints.followed_networks.format('/')
if embed == 'network':
url = endpoints.followed_networks.format('?embed=network')
q = self._endpoint_premium_get(url)
if q:
return [FollowedNetwork(network) for network in q]
else:
raise NoFollowedNetworks('You have not followed any networks yet')
def get_followed_network(self, network_id):
url = endpoints.followed_networks.format('/' + str(network_id))
q = self._endpoint_premium_get(url)
if q:
return FollowedNetwork(q)
else:
raise NetworkNotFound('Network with ID {} is not followed'.format(network_id))
def follow_network(self, network_id):
url = endpoints.followed_networks.format('/' + str(network_id))
q = self._endpoint_premium_put(url)
if not q:
raise NetworkNotFound('Network with ID {} does not exist'.format(network_id))
def unfollow_network(self, network_id):
url = endpoints.followed_networks.format('/' + str(network_id))
q = self._endpoint_premium_delete(url)
if not q:
raise NetworkNotFollowed('Network with ID {} was not followed'.format(network_id))
def get_followed_web_channels(self, embed=None):
if embed not in [None, 'webchannel']:
raise InvalidEmbedValue('Value for embed must be "webchannel" or None')
url = endpoints.followed_web_channels.format('/')
if embed == 'webchannel':
url = endpoints.followed_web_channels.format('?embed=webchannel')
q = self._endpoint_premium_get(url)
if q:
return [FollowedWebChannel(webchannel) for webchannel in q]
else:
raise NoFollowedWebChannels('You have not followed any Web Channels yet')
def get_followed_web_channel(self, webchannel_id):
url = endpoints.followed_web_channels.format('/' + str(webchannel_id))
q = self._endpoint_premium_get(url)
if q:
return FollowedWebChannel(q)
else:
raise NetworkNotFound('Web Channel with ID {} is not followed'.format(webchannel_id))
def follow_web_channel(self, webchannel_id):
url = endpoints.followed_web_channels.format('/' + str(webchannel_id))
q = self._endpoint_premium_put(url)
if not q:
raise WebChannelNotFound('Web Channel with ID {} does not exist'.format(webchannel_id))
def unfollow_web_channel(self, webchannel_id):
url = endpoints.followed_web_channels.format('/' + str(webchannel_id))
q = self._endpoint_premium_delete(url)
if not q:
raise WebChannelNotFollowed('Web Channel with ID {} was not followed'.format(webchannel_id))
def get_marked_episodes(self, maze_id=None):
if not maze_id:
url = endpoints.marked_episodes.format('/')
else:
show_id = '?show_id={}'.format(maze_id)
url = endpoints.marked_episodes.format(show_id)
q = self._endpoint_premium_get(url)
if q:
return [MarkedEpisode(episode) for episode in q]
else:
raise NoMarkedEpisodes('You have not marked any episodes yet')
def get_marked_episode(self, episode_id):
path = '/{}'.format(episode_id)
url = endpoints.marked_episodes.format(path)
q = self._endpoint_premium_get(url)
if q:
return MarkedEpisode(q)
else:
raise EpisodeNotMarked('Episode with ID {} is not marked'.format(episode_id))
def mark_episode(self, episode_id, mark_type):
types = {'watched': 0, 'acquired': 1, 'skipped': 2}
try:
status = types[mark_type]
except IndexError:
raise InvalidMarkedEpisodeType('Episode must be marked as "watched", "acquired", or "skipped"')
payload = {'type': str(status)}
path = '/{}'.format(episode_id)
url = endpoints.marked_episodes.format(path)
q = self._endpoint_premium_put(url, payload=payload)
if not q:
raise EpisodeNotFound('Episode with ID {} does not exist'.format(episode_id))
def unmark_episode(self, episode_id):
path = '/{}'.format(episode_id)
url = endpoints.marked_episodes.format(path)
q = self._endpoint_premium_delete(url)
if not q:
raise EpisodeNotMarked('Episode with ID {} was not marked'.format(episode_id))
def get_voted_shows(self, embed=None):
if embed not in [None, 'show']:
raise InvalidEmbedValue('Value for embed must be "show" or None')
url = endpoints.voted_shows.format('/')
if embed == 'show':
url = endpoints.voted_shows.format('?embed=show')
q = self._endpoint_premium_get(url)
if q:
return [VotedShow(show) for show in q]
else:
raise NoVotedShows('You have not voted for any shows yet')
def get_voted_show(self, maze_id):
url = endpoints.voted_shows.format('/' + str(maze_id))
q = self._endpoint_premium_get(url)
if q:
return VotedShow(q)
else:
raise ShowNotVotedFor('Show with ID {} not voted for'.format(maze_id))
def remove_show_vote(self, maze_id):
url = endpoints.voted_shows.format('/' + str(maze_id))
q = self._endpoint_premium_delete(url)
if not q:
raise ShowNotVotedFor('Show with ID {} was not voted for'.format(maze_id))
def vote_show(self, maze_id, vote):
if not 1 <= vote <= 10:
raise InvalidVoteValue('Vote must be an integer between 1 and 10')
payload = {'vote': int(vote)}
url = endpoints.voted_shows.format('/' + str(maze_id))
q = self._endpoint_premium_put(url, payload=payload)
if not q:
raise ShowNotFound('Show with ID {} does not exist'.format(maze_id))
def get_voted_episodes(self):
url = endpoints.voted_episodes.format('/')
q = self._endpoint_premium_get(url)
if q:
return [VotedEpisode(episode) for episode in q]
else:
raise NoVotedEpisodes('You have not voted for any episodes yet')
def get_voted_episode(self, episode_id):
path = '/{}'.format(episode_id)
url = endpoints.voted_episodes.format(path)
q = self._endpoint_premium_get(url)
if q:
return VotedEpisode(q)
else:
raise EpisodeNotVotedFor('Episode with ID {} not voted for'.format(episode_id))
def remove_episode_vote(self, episode_id):
path = '/{}'.format(episode_id)
url = endpoints.voted_episodes.format(path)
q = self._endpoint_premium_delete(url)
if not q:
raise EpisodeNotVotedFor('Episode with ID {} was not voted for'.format(episode_id))
def vote_episode(self, episode_id, vote):
if not 1 <= vote <= 10:
raise InvalidVoteValue('Vote must be an integer between 1 and 10')
payload = {'vote': int(vote)}
path = '/{}'.format(episode_id)
url = endpoints.voted_episodes.format(path)
q = self._endpoint_premium_put(url, payload=payload)
if not q:
raise EpisodeNotFound('Episode with ID {} does not exist'.format(episode_id))
# Return list of Show objects
def get_show_list(show_name):
"""
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
Return list of Show objects from the TVmaze "Show Search" endpoint
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
List will be ordered by tvmaze score and should mimic the results you see
by doing a show search on the website.
:param show_name: Name of show
:return: List of Show(s)
"""
shows = show_search(show_name)
return shows
# Get list of Person objects
def get_people(name):
"""
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
Return list of Person objects from the TVmaze "People Search" endpoint
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
:param name: Name of person
:return: List of Person(s)
"""
people = people_search(name)
if people:
return people
def show_search(show):
_show = _url_quote(show)
url = endpoints.show_search.format(_show)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
shows = []
for result in q:
show = Show(result['show'])
show.score = result['score']
shows.append(show)
return shows
else:
raise ShowNotFound('Show {0} not found'.format(show))
def show_single_search(show, embed=None):
_show = _url_quote(show)
url = _embed_url(endpoints.show_single_search.format(_show), embed,
[None, 'episodes', 'cast', 'previousepisode', 'nextepisode'], '&')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Show(q)
else:
raise ShowNotFound('show name "{0}" not found'.format(show))
def lookup_tvrage(tvrage_id):
url = endpoints.lookup_tvrage.format(tvrage_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Show(q)
else:
raise IDNotFound('TVRage id {0} not found'.format(tvrage_id))
def lookup_tvdb(tvdb_id):
url = endpoints.lookup_tvdb.format(tvdb_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Show(q)
else:
raise IDNotFound('TVDB ID {0} not found'.format(tvdb_id))
def lookup_imdb(imdb_id):
url = endpoints.lookup_imdb.format(imdb_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Show(q)
else:
raise IDNotFound('IMDB ID {0} not found'.format(imdb_id))
def get_schedule(country='US', date=str(datetime.today().date())):
url = endpoints.get_schedule.format(country, date)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Episode(episode) for episode in q]
else:
raise ScheduleNotFound('Schedule for country {0} at date {1} not found'.format(country, date))
# ALL known future episodes, several MB large, cached for 24 hours
def get_full_schedule():
url = endpoints.get_full_schedule
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Episode(episode) for episode in q]
else:
raise GeneralError('Something went wrong, www.tvmaze.com may be down')
def show_main_info(maze_id, embed=None):
url = _embed_url(endpoints.show_main_info.format(maze_id), embed,
[None, 'episodes', 'cast', 'previousepisode', 'nextepisode', 'episodeswithspecials'], '?')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Show(q)
else:
raise IDNotFound('Maze id {0} not found'.format(maze_id))
def episode_list(maze_id, specials=None, raise_error=True, show=None):
if specials:
url = endpoints.episode_list.format(maze_id) + '?specials=1'
else:
url = endpoints.episode_list.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if type(q) == list:
return [Episode(episode, show) for episode in q]
elif raise_error:
raise IDNotFound('Maze id {0} not found'.format(maze_id))
return []
def episode_by_number(maze_id, season_number, episode_number):
url = endpoints.episode_by_number.format(maze_id,
season_number,
episode_number)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Episode(q)
else:
raise EpisodeNotFound(
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
'Couldn\'t find season {0} episode {1} for TVmaze ID {2}'.format(season_number,
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
episode_number,
maze_id))
def episodes_by_date(maze_id, airdate):
try:
datetime.strptime(airdate, '%Y-%m-%d')
except ValueError:
raise IllegalAirDate('Airdate must be string formatted as \"YYYY-MM-DD\"')
url = endpoints.episodes_by_date.format(maze_id, airdate)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Episode(episode) for episode in q]
else:
raise NoEpisodesForAirdate(
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
'Couldn\'t find an episode airing {0} for TVmaze ID {1}'.format(airdate, maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
def show_cast(maze_id, raise_error=True):
url = endpoints.show_cast.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Cast(q)
elif raise_error:
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
raise CastNotFound('Couldn\'nt find show cast for TVmaze ID {0}'.format(maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
return Cast({})
def show_index(page=1):
url = endpoints.show_index.format(page)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Show(show) for show in q]
else:
raise ShowIndexError('Error getting show index, www.tvmaze.com may be down')
def people_search(person):
# type: (AnyStr) -> List[Person]
person = _url_quote(person)
url = endpoints.people_search.format(person)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Person(person) for person in q]
else:
raise PersonNotFound('Couldn\'t find person {0}'.format(person))
def person_main_info(person_id, embed=None):
# type: (integer_types, AnyStr) -> Person
url = _embed_url(endpoints.person_main_info.format(person_id), embed,
[None, 'castcredits', 'crewcredits'], '?')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Person(q)
else:
raise PersonNotFound('Couldn\'t find person {0}'.format(person_id))
def person_cast_credits(person_id, embed=None, raise_error=True):
url = _embed_url(endpoints.person_cast_credits.format(person_id), embed,
[None, 'show', 'character'], '?')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [CastCredit(credit) for credit in q]
elif raise_error:
raise CreditsNotFound('Couldn\'t find cast credits for person ID {0}'.format(person_id))
return []
def person_crew_credits(person_id, embed=None, raise_error=True):
url = _embed_url(endpoints.person_crew_credits.format(person_id), embed,
[None, 'show'], '?')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [CrewCredit(credit) for credit in q]
elif raise_error:
raise CreditsNotFound('Couldn\'t find crew credits for person ID {0}'.format(person_id))
return []
def get_show_crew(maze_id, raise_error=True):
url = endpoints.show_crew.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Crew(crew) for crew in q]
elif raise_error:
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
raise CrewNotFound('Couldn\'t find crew for TVmaze ID {}'.format(maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
return []
def get_show_images(maze_id, raise_error=True):
url = endpoints.show_images.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [Image(img) for img in q]
elif raise_error:
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
raise ShowImagesNotFound('Couldn\'t find images for TVmaze ID {}'.format(maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
return []
def show_updates(since=None):
# type: (AnyStr) -> Updates
"""
returns all or in given timeframe changed shows
:param since: None, "day", "week", "month"
"""
if since not in ('day', 'week', 'month', None):
raise InvalidTimeFrame('Only supported are: None, "day", "week", "month"')
url = '%s%s' % (endpoints.show_updates, ('', '?since=%s' % since)[None is not since])
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Updates(q)
else:
raise ShowIndexError('Error getting show updates, www.tvmaze.com may be down')
def show_akas(maze_id, raise_error=True):
url = endpoints.show_akas.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return [AKA(aka) for aka in q]
elif raise_error:
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
raise AKASNotFound('Couldn\'t find AKA\'s for TVmaze ID {0}'.format(maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
return []
def show_seasons(maze_id, raise_error=True, show=None):
url = endpoints.show_seasons.format(maze_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
season_dict = dict()
for season in q:
season_dict[season['number']] = Season(season, show=show, season_number=season['number'])
return season_dict
elif raise_error:
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
raise SeasonNotFound('Couldn\'t find Season\'s for TVmaze ID {0}'.format(maze_id))
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
return {}
def season_by_id(season_id, embed=None):
url = _embed_url(endpoints.season_by_id.format(season_id), embed,
[None, 'episodes'], '?')
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Season(q)
else:
raise SeasonNotFound('Couldn\'t find Season with ID {0}'.format(season_id))
def episode_by_id(episode_id, show=None, raise_error=True):
url = endpoints.episode_by_id.format(episode_id)
Add UI changes. Changelog --------- Update fancyBox 2.1.6 to 3.5.7 (c4fd903). Update jQ collapser 2.0 → 3.0.1 (c3f95ba). Add glide.js 3.4.0 (e71f8bf) to view-show https://glidejs.com Add object fit image 3.2.4 (f951d2a). Update fanart icon. Change &#34;Import&#34; title to &#34;Path conflict&#34; for clarity. Add when a path conflict occurs during add show, users may enter a new show folder name. Add parsing Kodi show.nfo so import existing page selects any known info source. Change refactor mass_add_table to improve performance, and code clarity. Change find_show_by_id improve performance by iterating less and not using elif after a return. Add a vertical dotted line indication to the final cast slide on view-show. Add glide arrows to view-show. Change improve ui glide panel generally and also on startup. Add dynamic search examples to add show view. Change interface browse cards to new show search. Add search placeholder syntax hints. Add prevent user error on edit-show where &#34;set master&#34; is pending but Update or Cancel Edit is used instead of &#34;Save Changes&#34;. Add rounded borders to cast on view-show. Add character relationship Presenter to Host. Add third person singular pronoun on view show to a character who is portrayed by themself. Add where a character is in multiple shows to the character page. Change display on ui when update cast is in progress and not just queued. Change replace swipe with move event to act on any input type event (e.g. keyboard) for glide. Add click the glide number on view show to change slide times. Add pause to glide. Add cast displayed on view-show is saved whenever the glide is pause. Add restore view-show glide startAt when in pause mode and an image is selected as first to display. Rename from TVMaze &lt; TVmaze in line with their branding. Remove problematic buffering of 20 items on search results. Add 5 mins to Trakt failure retries times. Add spoken height to person. Change improve speed reading for many processes. Fix layout of multiline genre labels on view-show. Change view-show, during adding of a show, cast links will only become links when data is actually ready to be linked to, otherwise, display as textual info. Add new sort option &#34;Combine source&#34; to search show results. Add source provider images to search result items. Fix search box width now that the other select is reinstated. Change correct log messages grammar. Add visual cue of master tv info source to view show. Add new column on manage/Bulk Change for tv info src so that shows can be sorted to isolate a provider for selection. Add to manage/Bulk Change/Edit/TV info source. Add auto redirect from manage/Bulk Change to manage/show-tasks if a TV info source is tasked to change. Change improve manage/Show Tasks html template. Change replace most of inline styles with CSS classes to improve readability and load perf. Change use proper section dividers on manage/Show Tasks. Fix search TVDb links only to contain lang arg, not all. Technical commit messages (combined commits) -------------------------------------------- Add trigger glide count when view-art is clicked as width can change. Fix to restore show_poster due to change that now returns paths to thumbs that may not exist. Fix search box width on Palemoon. Change set initial cast background to full width. Change prevent the case where a cast list of one person will produce one single fixed width 170px box before the view-show js renders the final box width. Fix quotes in actor names breaking data-caption html markup. Add death data to known api attrs, but still not useful yet because cant do multiple actor searches in one call Change refresh font cache for people icon. Fix initialisation of view-show to display overview text where there is no glide cast list. Change improve image captions with text that cannot be copy/pasted in carousel. Fix hash crash when multiple people play a role. Change DRY and skip write nfo if exception from load_cast_from_tvinfo. Change _get_show_data api4 + fallback html complete. Add if SG_DEV_MODE=1 then logs new api4 data keys that can be added. Fix the return and invalid number of #type declarations for the _get_show_data signature in tvdb_api.py. Change more prep to get the request correct for api vs web requests. Change the goal is to make it so that if apikey = &#39;&#39;, the lib will be html sufficient and not use api. Fix closing fb in cases that have less then display items. Fix preventing glide btn from change after fb was closed in paused mode. Fix the pause called when opening glide fb from destroying saved glide position Change wait for fb to init before displaying images. Fix clicking on cloned glider items. Add pause glide when fb is opened Add caption when fb is open. Fix cursor style over glide btn tweak the exclusion case to focus on role surname as that is the false +ve trigger in this instance Fix use role show_obj in cast_characters. Change rename tmpl file. Change tweak glider ui button positions. Change experiment with Cheetah #attr over, it is too shitty to be useful, so reverted it. Fix cast image full image for characters. Add exclusions to person roles relationship builder, and ensure main character presents first. Add glide pinch zoom on mobile devices.. https://github.com/glidejs/glide/issues/507 Fix select top most item by default in info source search results. Fix issues surrounding process to add show that has an existing folder. Add path conflict rename suggest button when adding a show and the folder exists. Fix correctly send tvid:prodid data between find and existing show page. Fix a nasty c_i index exception created by newly added optimisation code. the exception was raised when an existing folder is found and the add btn pressed so that sg would redirect to the existing show path page. If sg was restarted at this point and the page then refreshed in the browser, then fail. Add send slug:value to find show from existing show folder page. Add use info source passed when redirected from existing show to find show. Change improve ui text. Change simplify and improve clarity of the template variables used. Fix passing hash_dir through to massAddTable tmpl as was consumed in webserve parameter functions instead of being passed in kwargs. Change find_show_by_id to be more pythonic in handling falsy values by not crashing if k/v of a dict is Nonetype. Change use helpers md5_for_text instead of hash() function for existing dir path. Change links got too messy, centralise creation into a function to make link params consistent and remove mistakes, from one use to another. Change wherever ui links/images have a ref_id, if id is not original id then include original id in link Change use reference_id for ui where available Change to less volatile ref_id for saving and restoring glide startAt. Change swap order into slowest to fastest for slide time Change move calcSlideCount function to document scope so it can be called on anytime Change call calcSlideCount when livepanel back-art is clicked Fix minor pyc flagged issues in the sql for tv. Change interface browse cards to new search. Changed use of re_imdb in search to helpers and expanded to 10 digits. Add exceptions to cast. Fix view-show episode date for young and restless (and others) cases. Change more tweaking of that ui text until it feels short and sweet. Change data sent to character page, a person is in a `role` playing a character. Change much simplified character logic due to an issue with Patrick Stewart at AD and ST. Change improved about text on character page and add link to characters in related shows. Change move text list processing from template and into backend. Fix crash on get start end year. Change fix and improve wording of ui switching tv info source. Change make sure there is something to glide before even trying to mount it as there is an acknowledged issue that mounting an empty glide can cause 100% browser usage. Change rescale cast images whose width leak out of container in view-show and move js into cast.js Change move ofi.js to inc_top.tmpl Change neaten the edging of person image. Change contain glide to prevent it from interfering where it should not be. Change setupGlide() is reverted as only one setup is needed, and hasGlideMounted is redundant/removed. Change add qTip. Change view-show sanitise startAt incase a switch makes a smaller cast. Change improve glide pause button with multi-click. Fix multi image alignment also fix round corners for wide images. Fix comparison of width for images on person page. More tweaking of css due to incorrect height on view-show. Tidy up glider CSS files locations and remove unused files from repo. Change move displayshow glide css and js to inc_top. Change improve restarting glide after collapse show and hide events. hide event seems to have better continuous flow, but both do at least restart at the correct index now. Add $.dbg var so the output of index can be seen at console level when an event is fired. Add missing arg to calcSlideCount(). Fix for css .. will-change: transform; Change tidy up collapser button, style its anchor instead of the span workaround. Add resize person and character image container if width is smaller then container on modern browsers Tidy up some ui CSS and minimise show airs text and simplify day ranges. Change collapser to remount glide after show/hide. Change put glide mount in try block to prevent it destroying the collapse when hiding. Change position of cast panel to before the overview. Rename js vars from Python to JS camelcase convention. Fix multiple character images. Fix IE compatibility. Fix prevent crash when switch from tvmaze to tdvb and back again, wierd. Change rename templates. Reformat sql so that the multiline statements can be easily copy pasted into a pyc SQL console window for instant execution. Added missing &#39;;&#39; so they copy/paste execute too. Need to drop existing tbl and copy/paste/execute new sql tbl. Change not everything is an error, but everything is a result, therefore, tbl is renamed. Change pushed rollback of renamed tbl. Fix initial sorting of search results. Change text for people queue actions. Fix max age on appearance. Change correct html layout for view source in web browser. Change title for characters in db, and add tip to make explain that a different image can be correctly shown for a different person e.g. animated or multiple people cast like in The Young and Restless - Sandra Nelson (Phyllis Summers). Fix default tvinfo search source for additional source. Change layout of persons. Change make multiple akas easier to read. Fix saving tvmaze in meta .nfo data. Add .nfo scanned once on startup to ensure tvmaze is set up. Change style for cast carousel on view-show. Change style for Cast update button. Change make topbar-notification unified and use for switcher bar. Change correct the indentation to improve maintainability. Change replace the misuse of br with div tags. Change remove spaces that badly affect layout, and use proper layout spacing. Change add confirm action to clear btn and reinstate all clear buttons. Fix Expand/collapse all + include for people queue. Remove redundant spaces. Change hide clear button until table is expanded. Also, move it to the right or expand/collapse btn. Shuffle the html structure around a little to set btn layout horizontally. Fix &#39;More&#39;/&#39;Less&#39; btn on view-show duplicating summary due to cast-holder div tag conflict. Change view-show cast list to display known names before unknown names. Change view-show add placeholder image for cast with no image. Change view-show under indentation used for html of cast block. Add some icon glyphs. Change vertical alignment of cast to be top down to make cast images level. Change cast update icon. Add akas to person. Change reduce find_show_by_id double call into one. Change tidy up get_url.
4 years ago
q = TVmaze.endpoint_standard_get(url)
Add support for multiple TV info sources. 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 &#34;exists in db&#34; 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&#39;t have &#39;scene_url&#39;. 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&#39;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: &#39;new id conflicts with existing show&#39;. 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&#39;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.
4 years ago
if q:
return Episode(q, show=show)
elif raise_error:
raise EpisodeNotFound('Couldn\'t find Episode with ID {0}'.format(episode_id))