"""
Constants used in the mediator API
"""
# General
# =======
# Category.key of the root category.
# This is not part of the mediator API, it belongs to jwlib.
ROOT_CATEGORY = 'All'
# Time format used by the API, can be passed to time.strptime()
TIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
# Client type
# ===========
# These can be passed to Session().
# They affect what data will be made available.
CLIENT_APPLETV = 'appletv'
CLIENT_FIRETV = 'firetv' # Default in jwlib.
CLIENT_JWORG = 'JWORG'
CLIENT_NONE = 'none' # Includes obscure categories and convention releases (slow).
CLIENT_ROKU = 'roku'
CLIENT_RWLS = 'rwls'
CLIENT_SATELLITE = 'satellite'
CLIENT_WWW = 'www' # Used by jw.org.
# Category type
# =============
CATEGORY_CONTAINER = 'container'
CATEGORY_ONDEMAND = 'ondemand'
# Media type
# ==========
MEDIA_AUDIO = 'audio'
MEDIA_VIDEO = 'video'
# Image selection
# ===============
# These can be passed to get_image().
# Ratios are sorted from large-ish to small-ish.
RATIOS_SQUARE = ('sqr', 'sqs', 'cvr')
RATIOS_16_9 = ('wsr', 'wss')
RATIOS_2_1 = ('lsr', 'lss')
RATIOS_3_1 = ('pnr',)
SIZES_FROM_SMALLEST = ('xs', 'sm', 'md', 'lg', 'xl')
SIZES_FROM_LARGEST = tuple(reversed(SIZES_FROM_SMALLEST))
# Tags
# ====
# These are found in Category.tags or Media.tags.
# Used by jw.org for subcategories with a Play button.
TAG_ALLOW_PLAY_ALL_AS_ICONS_IN_GRID = 'AllowPlayAllAsIconsInGrid'
TAG_ALLOW_PLAY_ALL_IN_CATEGORY_HEADER = 'AllowPlayAllInCategoryHeader'
# Used by jw.org for subcategories with a Shuffle button.
TAG_ALLOW_SHUFFLE_AS_ICONS_IN_GRID = 'AllowShuffleAsIconsInGrid'
TAG_ALLOW_SHUFFLE_IN_CATEGORY_HEADER = 'AllowShuffleInCategoryHeader'
# Convention release media item (excluded automatically by many client types).
TAG_CONVENTION_RELEASE = 'ConventionRelease'
# Note:
# You normally don't have to check for the EXCLUDE tags.
# For example, if your client type is CLIENT_APPLETV it will automatically
# exclude items tagged TAG_EXCLUDE_APPLETV.
TAG_EXCLUDE_ALL_VIDEOS = 'AllVideosExclude'
TAG_EXCLUDE_APPLETV = 'AppleTVExclude'
TAG_EXCLUDE_FIRETV = 'FireTVExclude'
TAG_EXCLUDE_FROM_BREADCRUMBS = 'ExcludeFromBreadcrumbs'
TAG_EXCLUDE_JWL = 'JWLExclude'
TAG_EXCLUDE_JWL_CATALOG = 'JWLCatalogExclude'
TAG_EXCLUDE_JWORG = 'JWORGExclude'
TAG_EXCLUDE_LATEST = 'LatestVideosExclude'
TAG_EXCLUDE_LIBRARY = 'LibraryVideosExclude'
TAG_EXCLUDE_ROKU = 'RokuExclude'
TAG_EXCLUDE_RWLS = 'RWLSExclude'
TAG_EXCLUDE_SATELLITE = 'SatelliteExclude'
TAG_EXCLUDE_SEARCH = 'SearchExclude'
TAG_EXCLUDE_WEB = 'WebExclude'
TAG_EXCLUDE_WWW = 'WWWExclude'
TAG_EXCLUDE_WWW_CAT_LIST = 'WWWCatListExclude'
# Used by StudioFeatured.
TAG_FEATURED = 'WebFeatured'
TAG_INCLUDE_IN_JWORG_ALL_VIDEOS_CAT_LIST = 'IncludeInJWORGAllVideosCatList'
TAG_INCLUDE_SUB_CATEGORIES_NAV_RWLS = 'RWLSIncludeSubCategoriesAsNav'
TAG_INCLUDE_SUB_CATEGORIES_NAV_WEB = 'WebIncludeSubCategoriesInNav'
TAG_INCLUDE_SUB_CATEGORIES_NAV_WWW = 'WWWIncludeSubCategoriesAsNav'
TAG_PNR_FEATURED_LAYOUT = 'PNRFeaturedLayout'
# Used by audio categories, since the album covers are square.
TAG_PREFER_SQUARE_IMAGES = 'PreferSquareImages'
TAG_ROKU_CATEGORY_CAROUSEL_LIST = 'RokuCategoryCarouselList'
TAG_ROKU_CATEGORY_GRID = 'RokuCategoryGrid'
TAG_ROKU_CATEGORY_GRID_SCREEN = 'RokuCategoryGridScreen'
TAG_ROKU_CATEGORY_SELECTION_POSTER_SCREEN = 'RokuCategorySelectionPosterScreen'
TAG_ROKU_GRID_STYLE_SQUARE = 'RokuGridStyleSquare'
TAG_ROKU_MEDIA_ITEM_LIST_SCREEN = 'RokuMediaItemListScreen'
# Used by jw.org for main categories with a Shuffle button.
TAG_STREAM_THIS_CHANNEL_ENABLED = 'StreamThisChannelEnabled'
TAG_SUPPRESS_TOP_CATEGORY_BANNER = 'SuppressTopCategoryBanner'
# Limit number of items in the list.
TAGS_ITEM_LIMIT = (
'LimitToZero',
'LimitToOne', # Used by FeaturedLibraryVideos.
'LimitToTwo', # Used by StudioFeatured.
'LimitToThree',
'LimitToFour',
'LimitToFive', # Used by FeaturedSetTopBoxes.
'LimitToSix',
'LimitToSeven',
'LimitToEight',
'LimitToNine',
'LimitToTen',
)
# Month of release.
TAGS_MONTH = (
'Month01',
'Month02',
'Month03',
'Month04',
'Month05',
'Month06',
'Month07',
'Month08',
'Month09',
'Month10',
'Month11',
'Month12')