core models serialized with camelCase field names

This commit is contained in:
nklhrstv 2020-10-22 15:15:50 +03:00
parent 8500615c79
commit 073be58307
12 changed files with 58 additions and 61 deletions

View file

@ -19,7 +19,7 @@ const LibItem = ({ id, ...props }) => {
case 'play':
return props.deepLinks && typeof props.deepLinks.player === 'string';
case 'details':
return props.deepLinks && (typeof props.deepLinks.meta_details_videos === 'string' || typeof props.deepLinks.meta_details_streams === 'string');
return props.deepLinks && (typeof props.deepLinks.metaDetailsVideos === 'string' || typeof props.deepLinks.metaDetailsStreams === 'string');
case 'dismiss':
return typeof id === 'string' && props.progress !== null && !isNaN(props.progress);
}
@ -41,10 +41,10 @@ const LibItem = ({ id, ...props }) => {
}
case 'details': {
if (props.deepLinks) {
if (typeof props.deepLinks.meta_details_videos === 'string') {
window.location = props.deepLinks.meta_details_videos;
} else if (typeof props.deepLinks.meta_details_streams === 'string') {
window.location = props.deepLinks.meta_details_streams;
if (typeof props.deepLinks.metaDetailsVideos === 'string') {
window.location = props.deepLinks.metaDetailsVideos;
} else if (typeof props.deepLinks.metaDetailsStreams === 'string') {
window.location = props.deepLinks.metaDetailsStreams;
}
}
@ -79,8 +79,8 @@ LibItem.propTypes = {
id: PropTypes.string,
progress: PropTypes.number,
deepLinks: PropTypes.shape({
meta_details_videos: PropTypes.string,
meta_details_streams: PropTypes.string,
metaDetailsVideos: PropTypes.string,
metaDetailsStreams: PropTypes.string,
player: PropTypes.string
}),
optionOnSelect: PropTypes.func

View file

@ -32,11 +32,11 @@ const MetaItem = React.memo(({ className, type, name, poster, posterShape, playI
typeof deepLinks.player === 'string' ?
deepLinks.player
:
typeof deepLinks.meta_details_streams === 'string' ?
deepLinks.meta_details_streams
typeof deepLinks.metaDetailsStreams === 'string' ?
deepLinks.metaDetailsStreams
:
typeof deepLinks.meta_details_videos === 'string' ?
deepLinks.meta_details_videos
typeof deepLinks.metaDetailsVideos === 'string' ?
deepLinks.metaDetailsVideos
:
null
:
@ -143,8 +143,8 @@ MetaItem.propTypes = {
progress: PropTypes.number,
options: PropTypes.array,
deepLinks: PropTypes.shape({
meta_details_videos: PropTypes.string,
meta_details_streams: PropTypes.string,
metaDetailsVideos: PropTypes.string,
metaDetailsStreams: PropTypes.string,
player: PropTypes.string
}),
dataset: PropTypes.object,

View file

@ -14,11 +14,11 @@ const Board = () => {
<MainNavBars className={styles['board-container']} route={'board'}>
<div className={styles['board-content']}>
{
continueWatchingPreview.library_items.length > 0 ?
continueWatchingPreview.libraryItems.length > 0 ?
<MetaRow
className={classnames(styles['board-row'], styles['continue-watching-row'])}
title={'Continue Watching'}
items={continueWatchingPreview.library_items}
items={continueWatchingPreview.libraryItems}
itemComponent={LibItem}
deepLinks={continueWatchingPreview.deepLinks}
/>
@ -26,7 +26,7 @@ const Board = () => {
null
}
{board.catalogs.map((catalog, index) => {
const title = `${catalog.addon_name} - ${catalog.request.path.id} ${catalog.request.path.type}`;
const title = `${catalog.addonName} - ${catalog.request.path.id} ${catalog.request.path.type}`;
switch (catalog.content.type) {
case 'Ready': {
const posterShape = catalog.content.content.length > 0 ?

View file

@ -20,12 +20,11 @@ const map = (board) => ({
name: metaItem.name,
poster: metaItem.poster,
posterShape: metaItems[0].posterShape,
deepLinks: metaItem.deep_links
deepLinks: metaItem.deepLinks
}))
}
:
catalog.content,
deepLinks: catalog.deep_links
}))
});

View file

@ -4,9 +4,9 @@ const React = require('react');
const { useServices } = require('stremio/services');
const { useModelState } = require('stremio/common');
const map = (continue_watching_preview) => ({
...continue_watching_preview,
library_items: continue_watching_preview.library_items.map((libItem) => ({
const map = (continueWatchingPreview) => ({
...continueWatchingPreview,
libraryItems: continueWatchingPreview.libraryItems.map((libItem) => ({
id: libItem._id,
type: libItem.type,
name: libItem.name,
@ -17,9 +17,8 @@ const map = (continue_watching_preview) => ({
:
null,
playIcon: true,
deepLinks: libItem.deep_links
})),
deepLinks: continue_watching_preview.deep_links
deepLinks: libItem.deepLinks
}))
});
const useContinueWatchingPreview = () => {

View file

@ -54,7 +54,7 @@ const Discover = ({ urlParams, queryParams }) => {
<div className={styles['discover-content']}>
<div className={styles['catalog-container']}>
{
discover.default_request ?
discover.defaultRequest ?
<div className={styles['selectable-inputs-container']}>
{selectInputs.map(({ title, options, selected, renderLabelText, onSelect }, index) => (
<Multiselect
@ -82,7 +82,7 @@ const Discover = ({ urlParams, queryParams }) => {
null
}
{
discover.catalog !== null && typeof discover.catalog.addon_name !== 'string' ?
discover.catalog !== null && typeof discover.catalog.addonName !== 'string' ?
<div className={styles['missing-addon-warning-container']}>
<div className={styles['warning-label']}>Addon is not installed. Install now?</div>
<Button className={styles['install-button']} title={'Install addon'} onClick={openAddonModal}>
@ -172,7 +172,7 @@ const Discover = ({ urlParams, queryParams }) => {
}
</div>
{
inputsModalOpen && discover.default_request ?
inputsModalOpen && discover.defaultRequest ?
<ModalDialog title={'Catalog filters'} className={styles['selectable-inputs-modal-container']} onCloseRequest={closeInputsModal}>
{selectInputs.map(({ title, isRequired, options, selected, renderLabelText, onSelect }, index) => (
<div key={index} className={styles['selectable-input-container']}>

View file

@ -11,11 +11,11 @@ const init = () => ({
types: [],
catalogs: [],
extra: [],
prev_page: null,
next_page: null
prevPage: null,
nextPage: null
},
catalog: null,
default_request: null,
defaultRequest: null,
page: 1,
});
@ -37,7 +37,7 @@ const map = (discover) => ({
released: new Date(typeof metaItem.released === 'string' ? metaItem.released : NaN),
description: metaItem.description,
trailerStreams: metaItem.trailerStreams,
deepLinks: metaItem.deep_links
deepLinks: metaItem.deepLinks
}))
}
}
@ -71,13 +71,13 @@ const useDiscover = (urlParams, queryParams) => {
}
} else {
const discover = core.transport.getState('discover');
if (discover.default_request !== null) {
if (discover.defaultRequest !== null) {
return {
action: 'Load',
args: {
model: 'CatalogWithFilters',
args: {
request: discover.default_request
request: discover.defaultRequest
}
}
};

View file

@ -6,13 +6,13 @@ const mapSelectableInputs = (discover) => {
const typeSelect = {
title: 'Select type',
options: discover.selectable.types
.map(({ type, deep_links }) => ({
value: deep_links.discover,
.map(({ type, deepLinks }) => ({
value: deepLinks.discover,
label: type
})),
selected: discover.selectable.types
.filter(({ selected }) => selected)
.map(({ deep_links }) => deep_links.discover),
.map(({ deepLinks }) => deepLinks.discover),
onSelect: (event) => {
window.location = event.value;
}
@ -20,28 +20,28 @@ const mapSelectableInputs = (discover) => {
const catalogSelect = {
title: 'Select catalog',
options: discover.selectable.catalogs
.map(({ catalog, addon_name, deep_links }) => ({
value: deep_links.discover,
.map(({ catalog, addonName, deepLinks }) => ({
value: deepLinks.discover,
label: catalog,
title: `${catalog} (${addon_name})`
title: `${catalog} (${addonName})`
})),
selected: discover.selectable.catalogs
.filter(({ selected }) => selected)
.map(({ deep_links }) => deep_links.discover),
.map(({ deepLinks }) => deepLinks.discover),
onSelect: (event) => {
window.location = event.value;
}
};
const extraSelects = discover.selectable.extra.map(({ name, is_required, options }) => ({
const extraSelects = discover.selectable.extra.map(({ name, isRequired, options }) => ({
title: `Select ${name}`,
isRequired: is_required,
options: options.map(({ value, deep_links }) => ({
isRequired: isRequired,
options: options.map(({ value, deepLinks }) => ({
label: typeof value === 'string' ? value : 'None',
value: deep_links.discover
value: deepLinks.discover
})),
selected: options
.filter(({ selected }) => selected)
.map(({ deep_links }) => deep_links.discover),
.map(({ deepLinks }) => deepLinks.discover),
renderLabelText: options.some(({ selected, value }) => selected && value === null) ?
() => `Select ${name}`
:
@ -50,15 +50,15 @@ const mapSelectableInputs = (discover) => {
window.location = event.value;
}
}));
const paginationInput = discover.selectable.prev_page || discover.selectable.next_page ?
const paginationInput = discover.selectable.prevPage || discover.selectable.nextPage ?
{
label: discover.page.toString(),
onSelect: (event) => {
if (event.value === 'prev' && discover.selectable.prev_page) {
window.location = discover.selectable.prev_page.deep_links.discover;
if (event.value === 'prev' && discover.selectable.prevPage) {
window.location = discover.selectable.prevPage.deepLinks.discover;
}
if (event.value === 'next' && discover.selectable.next_page) {
window.location = discover.selectable.next_page.deep_links.discover;
if (event.value === 'next' && discover.selectable.nextPage) {
window.location = discover.selectable.nextPage.deepLinks.discover;
}
}
}

View file

@ -24,7 +24,7 @@ const map = (library) => ({
libItem.state.timeOffset / libItem.state.duration
:
null,
deepLinks: libItem.deep_links
deepLinks: libItem.deepLinks
}))
});

View file

@ -6,13 +6,13 @@ const mapSelectableInputs = (library) => {
const typeSelect = {
title: 'Select type',
options: library.selectable.types
.map(({ type, deep_links }) => ({
value: deep_links.library,
.map(({ type, deepLinks }) => ({
value: deepLinks.library,
label: type === null ? 'All' : type
})),
selected: library.selectable.types
.filter(({ selected }) => selected)
.map(({ deep_links }) => deep_links.library),
.map(({ deepLinks }) => deepLinks.library),
onSelect: (event) => {
window.location = event.value;
}
@ -20,13 +20,13 @@ const mapSelectableInputs = (library) => {
const sortSelect = {
title: 'Select sort',
options: library.selectable.sorts
.map(({ sort, deep_links }) => ({
value: deep_links.library,
.map(({ sort, deepLinks }) => ({
value: deepLinks.library,
label: sort
})),
selected: library.selectable.sorts
.filter(({ selected }) => selected)
.map(({ deep_links }) => deep_links.library),
.map(({ deepLinks }) => deepLinks.library),
onSelect: (event) => {
window.location = event.value;
}

View file

@ -49,7 +49,7 @@ const Search = ({ queryParams }) => {
</div>
:
search.catalogs.map((catalog, index) => {
const title = `${catalog.addon_name} - ${catalog.request.path.id} ${catalog.request.path.type}`;
const title = `${catalog.addonName} - ${catalog.request.path.id} ${catalog.request.path.type}`;
switch (catalog.content.type) {
case 'Ready': {
const posterShape = catalog.content.content.length > 0 ?

View file

@ -20,12 +20,11 @@ const map = (search) => ({
name: metaItem.name,
poster: metaItem.poster,
posterShape: metaItems[0].posterShape,
deepLinks: metaItem.deep_links
deepLinks: metaItem.deepLinks
}))
}
:
catalog.content,
deepLinks: catalog.deep_links
catalog.content
}))
});