From a95459efd3567b8f8ad5e42edc14c7c7f2ba71ed Mon Sep 17 00:00:00 2001 From: Felipe Pontes Date: Mon, 3 Jul 2023 09:42:45 -0300 Subject: [PATCH 01/28] feat: Add ability to start with custom streming server --- src/App/App.js | 2 ++ src/App/DefaultSettingsHandler.js | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/App/DefaultSettingsHandler.js diff --git a/src/App/App.js b/src/App/App.js index 77a4b5824..5be4754b7 100644 --- a/src/App/App.js +++ b/src/App/App.js @@ -9,6 +9,7 @@ const { NotFound } = require('stremio/routes'); const { ToastProvider, CONSTANTS } = require('stremio/common'); const ServicesToaster = require('./ServicesToaster'); const DeepLinkHandler = require('./DeepLinkHandler'); +const DefaultSettingsHandler = require('./DefaultSettingsHandler'); const ErrorDialog = require('./ErrorDialog'); const routerViewsConfig = require('./routerViewsConfig'); const styles = require('./styles'); @@ -152,6 +153,7 @@ const App = () => { + { + const profile = useProfile(); + + const { streamingServerUrlInput } = useProfileSettingsInputs(profile); + + React.useLayoutEffect(() => { + const searchParams = new URLSearchParams(window.location.search); + if (searchParams.has('streamingServerUrl')) { + streamingServerUrlInput.onChange(searchParams.get('streamingServerUrl')); + } + }, []); + + return null; +}; + +module.exports = withCoreSuspender(DefaultSettingsHandler); From a2eca60e4561858eec093489e8633bfbe6602312 Mon Sep 17 00:00:00 2001 From: Felipe Pontes Date: Thu, 10 Aug 2023 17:15:21 -0300 Subject: [PATCH 02/28] feat: Reload streming server after update --- src/App/DefaultSettingsHandler.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/App/DefaultSettingsHandler.js b/src/App/DefaultSettingsHandler.js index e47f93431..42cc8165d 100644 --- a/src/App/DefaultSettingsHandler.js +++ b/src/App/DefaultSettingsHandler.js @@ -6,16 +6,27 @@ const { useProfile, } = require('stremio/common'); const useProfileSettingsInputs = require('stremio/routes/Settings/useProfileSettingsInputs'); +const { useServices } = require('stremio/services'); const DefaultSettingsHandler = () => { + const { core } = useServices(); + const profile = useProfile(); const { streamingServerUrlInput } = useProfileSettingsInputs(profile); - React.useLayoutEffect(() => { + React.useEffect(() => { const searchParams = new URLSearchParams(window.location.search); if (searchParams.has('streamingServerUrl')) { streamingServerUrlInput.onChange(searchParams.get('streamingServerUrl')); + setTimeout(() => { + core.transport.dispatch({ + action: 'StreamingServer', + args: { + action: 'Reload' + } + }); + }, 2000); } }, []); From e7f3b0846627f71fdd1bd783b3a5bc9aaecdee10 Mon Sep 17 00:00:00 2001 From: Felipe Pontes Date: Thu, 10 Aug 2023 17:23:07 -0300 Subject: [PATCH 03/28] feat: Use core dispatch directly --- src/App/DefaultSettingsHandler.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/App/DefaultSettingsHandler.js b/src/App/DefaultSettingsHandler.js index 42cc8165d..47bc329e9 100644 --- a/src/App/DefaultSettingsHandler.js +++ b/src/App/DefaultSettingsHandler.js @@ -5,7 +5,6 @@ const { withCoreSuspender, useProfile, } = require('stremio/common'); -const useProfileSettingsInputs = require('stremio/routes/Settings/useProfileSettingsInputs'); const { useServices } = require('stremio/services'); const DefaultSettingsHandler = () => { @@ -13,12 +12,19 @@ const DefaultSettingsHandler = () => { const profile = useProfile(); - const { streamingServerUrlInput } = useProfileSettingsInputs(profile); - React.useEffect(() => { const searchParams = new URLSearchParams(window.location.search); if (searchParams.has('streamingServerUrl')) { - streamingServerUrlInput.onChange(searchParams.get('streamingServerUrl')); + core.transport.dispatch({ + action: 'Ctx', + args: { + action: 'UpdateSettings', + args: { + ...profile.settings, + streamingServerUrl: searchParams.get('streamingServerUrl') + } + } + }); setTimeout(() => { core.transport.dispatch({ action: 'StreamingServer', @@ -26,7 +32,7 @@ const DefaultSettingsHandler = () => { action: 'Reload' } }); - }, 2000); + }, 1000); } }, []); From fb7963c09e37d2e9c70cd4fb2030be901ba8a66b Mon Sep 17 00:00:00 2001 From: Felipe Pontes Date: Thu, 10 Aug 2023 17:27:23 -0300 Subject: [PATCH 04/28] feat: Show toast notification --- src/App/DefaultSettingsHandler.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/App/DefaultSettingsHandler.js b/src/App/DefaultSettingsHandler.js index 47bc329e9..c963db130 100644 --- a/src/App/DefaultSettingsHandler.js +++ b/src/App/DefaultSettingsHandler.js @@ -4,24 +4,28 @@ const React = require('react'); const { withCoreSuspender, useProfile, + useToast, } = require('stremio/common'); const { useServices } = require('stremio/services'); const DefaultSettingsHandler = () => { const { core } = useServices(); + const toast = useToast(); const profile = useProfile(); React.useEffect(() => { const searchParams = new URLSearchParams(window.location.search); if (searchParams.has('streamingServerUrl')) { + const streamingServerUrl = searchParams.get('streamingServerUrl'); + core.transport.dispatch({ action: 'Ctx', args: { action: 'UpdateSettings', args: { ...profile.settings, - streamingServerUrl: searchParams.get('streamingServerUrl') + streamingServerUrl } } }); @@ -33,6 +37,11 @@ const DefaultSettingsHandler = () => { } }); }, 1000); + toast.show({ + type: 'info', + title: `Using streaming server at ${streamingServerUrl}`, + timeout: 4000 + }); } }, []); From e72225c414bee57b695e5dadcfad3f93739c9ec4 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 11 Jan 2024 12:53:09 +0100 Subject: [PATCH 05/28] fix(Library): sort label translations --- src/routes/Library/useSelectableInputs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/Library/useSelectableInputs.js b/src/routes/Library/useSelectableInputs.js index ef956814b..f98307479 100644 --- a/src/routes/Library/useSelectableInputs.js +++ b/src/routes/Library/useSelectableInputs.js @@ -23,7 +23,7 @@ const mapSelectableInputs = (library, t) => { options: library.selectable.sorts .map(({ sort, deepLinks }) => ({ value: deepLinks.library, - label: t.stringWithPrefix(sort, 'SORT_') + label: t.stringWithPrefix(sort.toUpperCase(), 'SORT_') })), selected: library.selectable.sorts .filter(({ selected }) => selected) From d0bee9a9c3157ef738864c9fcd722fb40c8c674e Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 26 Jan 2024 05:48:01 +0100 Subject: [PATCH 06/28] chore: update stremio-video --- package-lock.json | 7 ++++--- package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6239cde6e..ef49d69de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.0", "@stremio/stremio-icons": "5.0.0-beta.3", - "@stremio/stremio-video": "0.0.26", + "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", @@ -2986,8 +2986,9 @@ ] }, "node_modules/@stremio/stremio-video": { - "version": "0.0.26", - "license": "MIT", + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.30.tgz", + "integrity": "sha512-0gAnPrV/fmVj3dQvpmcpE5lp1nWuwsapV1n0hVWx/6/t0ekT8B04WtCgoAKrqMyXv5Z3xwi4tJDV08yiUgwtCw==", "dependencies": { "buffer": "6.0.3", "color": "4.2.3", diff --git a/package.json b/package.json index cbf5645c8..1770582b7 100755 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.0", "@stremio/stremio-icons": "5.0.0-beta.3", - "@stremio/stremio-video": "0.0.26", + "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", From 7966a327210b4d50ee6c720e1866ceb4a5208eac Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 26 Jan 2024 06:26:24 +0100 Subject: [PATCH 07/28] fix(SharePrompt): deprecated twitter share intent --- src/common/SharePrompt/SharePrompt.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/SharePrompt/SharePrompt.js b/src/common/SharePrompt/SharePrompt.js index 685f19613..3374d544d 100644 --- a/src/common/SharePrompt/SharePrompt.js +++ b/src/common/SharePrompt/SharePrompt.js @@ -47,7 +47,7 @@ const SharePrompt = ({ className, url }) => {
Facebook
- From 87686dfad40cb9686100d52f373b6bd06e3bcf61 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 26 Jan 2024 11:26:26 +0100 Subject: [PATCH 08/28] feat: update SharePrompt --- package-lock.json | 13 ++++--------- package.json | 2 +- src/App/styles.less | 3 ++- src/common/SharePrompt/SharePrompt.js | 9 +++++---- src/common/SharePrompt/styles.less | 24 ++++++++---------------- 5 files changed, 20 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef49d69de..a91a30d12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.0", - "@stremio/stremio-icons": "5.0.0-beta.3", + "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", "bowser": "2.11.0", @@ -2976,14 +2976,9 @@ } }, "node_modules/@stremio/stremio-icons": { - "version": "5.0.0-beta.3", - "license": "MIT", - "workspaces": [ - "react", - "react-native", - "solid", - "angularjs" - ] + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@stremio/stremio-icons/-/stremio-icons-5.2.0.tgz", + "integrity": "sha512-rABlPBTFF17QcSm/4IizVoE/jh+REt+waqA0RvIxuGjQppXlvj7CalqVvTam0CC2wgY00zNG1v/9kVHUDVzo4Q==" }, "node_modules/@stremio/stremio-video": { "version": "0.0.30", diff --git a/package.json b/package.json index 1770582b7..1d5a343c5 100755 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.0", - "@stremio/stremio-icons": "5.0.0-beta.3", + "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", "bowser": "2.11.0", diff --git a/src/App/styles.less b/src/App/styles.less index 95566c9a8..d0bfc6bd5 100644 --- a/src/App/styles.less +++ b/src/App/styles.less @@ -21,7 +21,8 @@ --vertical-nav-bar-size: 6rem; --focus-outline-size: 2px; --color-facebook: #1877F1; - --color-twitter: #1DA1F2; + --color-x: #000000; + --color-reddit: #FF4500; --color-imdb: #f5c518; --color-trakt: #ED2224; --color-placeholder: #60606080; diff --git a/src/common/SharePrompt/SharePrompt.js b/src/common/SharePrompt/SharePrompt.js index 685f19613..a1b889058 100644 --- a/src/common/SharePrompt/SharePrompt.js +++ b/src/common/SharePrompt/SharePrompt.js @@ -45,11 +45,12 @@ const SharePrompt = ({ className, url }) => {
- +
diff --git a/src/common/SharePrompt/styles.less b/src/common/SharePrompt/styles.less index c9953be50..0a95778f2 100644 --- a/src/common/SharePrompt/styles.less +++ b/src/common/SharePrompt/styles.less @@ -21,24 +21,12 @@ .icon { flex: none; - height: 1.2rem; - margin-right: 1rem; - color: var(--primary-foreground-color); - } - - .label { - flex-grow: 0; - flex-shrink: 1; - flex-basis: auto; - max-height: 2.4em; - font-size: 1.1rem; - font-weight: 500; - text-align: center; + height: 1.5rem; color: var(--primary-foreground-color); } } - .facebook-button, .twitter-button { + .facebook-button, .x-button, .reddit-button { border-radius: var(--border-radius); &:focus { @@ -50,8 +38,12 @@ background-color: var(--color-facebook); } - .twitter-button { - background-color: var(--color-twitter); + .x-button { + background-color: var(--color-x); + } + + .reddit-button { + background-color: var(--color-reddit); } } From a3ff2e8048f063c6eac8813135136979132fdbf0 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 26 Jan 2024 11:34:10 +0100 Subject: [PATCH 09/28] feat(SharePrompt): add toast for clipboard copy --- src/common/SharePrompt/SharePrompt.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/common/SharePrompt/SharePrompt.js b/src/common/SharePrompt/SharePrompt.js index a1b889058..2d25682e4 100644 --- a/src/common/SharePrompt/SharePrompt.js +++ b/src/common/SharePrompt/SharePrompt.js @@ -7,6 +7,7 @@ const { useTranslation } = require('react-i18next'); const { default: Icon } = require('@stremio/stremio-icons/react'); const { useRouteFocused } = require('stremio-router'); const { useServices } = require('stremio/services'); +const useToast = require('stremio/common/Toast/useToast'); const Button = require('stremio/common/Button'); const TextInput = require('stremio/common/TextInput'); const styles = require('./styles'); @@ -14,6 +15,7 @@ const styles = require('./styles'); const SharePrompt = ({ className, url }) => { const { t } = useTranslation(); const { core } = useServices(); + const toast = useToast(); const inputRef = React.useRef(null); const routeFocused = useRouteFocused(); const selectInputContent = React.useCallback(() => { @@ -25,6 +27,11 @@ const SharePrompt = ({ className, url }) => { if (inputRef.current !== null) { inputRef.current.select(); document.execCommand('copy'); + toast.show({ + type: 'success', + title: 'Copied to clipboard', + timeout: 3000, + }); } }, []); React.useEffect(() => { From bb4b937678de99515292d58c3d19451f05fa8d89 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:21:34 +0200 Subject: [PATCH 10/28] fix: search-history visibility --- src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js index 4bd701ad5..beea8010d 100644 --- a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js +++ b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js @@ -23,7 +23,7 @@ const SearchBar = React.memo(({ className, query, active }) => { const localSearch = useLocalSearch(); const { createTorrentFromMagnet } = useTorrent(); - const [historyOpen, openHistory, closeHistory, ] = useBinaryState(false); + const [historyOpen, openHistory, closeHistory, ] = useBinaryState(query === null ? true : false); const [currentQuery, setCurrentQuery] = React.useState(query || ''); const searchInputRef = React.useRef(null); From 99b09fba173ae9300ccc47ffa705d46d9e135bb1 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:56:40 +0200 Subject: [PATCH 11/28] feature: toast of type info added --- src/common/Toast/ToastItem/ToastItem.js | 7 ++++--- src/common/Toast/ToastItem/styles.less | 10 ++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/common/Toast/ToastItem/ToastItem.js b/src/common/Toast/ToastItem/ToastItem.js index 869aa224f..87e7fb1ad 100644 --- a/src/common/Toast/ToastItem/ToastItem.js +++ b/src/common/Toast/ToastItem/ToastItem.js @@ -9,7 +9,7 @@ const styles = require('./styles'); const ToastItem = ({ title, message, dataset, onSelect, onClose, ...props }) => { const type = React.useMemo(() => { - return ['success', 'alert', 'error'].includes(props.type) ? + return ['success', 'alert', 'info', 'error'].includes(props.type) ? props.type : 'success'; @@ -18,7 +18,8 @@ const ToastItem = ({ title, message, dataset, onSelect, onClose, ...props }) => return typeof props.icon === 'string' ? props.icon : type === 'success' ? 'checkmark' : type === 'error' ? 'warning' : - null; + type === 'info' ? 'about' : + null; }, [type, props.icon]); const toastOnClick = React.useCallback((event) => { if (!event.nativeEvent.selectToastPrevented && typeof onSelect === 'function') { @@ -81,7 +82,7 @@ const ToastItem = ({ title, message, dataset, onSelect, onClose, ...props }) => }; ToastItem.propTypes = { - type: PropTypes.oneOf(['success', 'alert', 'error']), + type: PropTypes.oneOf(['success', 'alert', 'info', 'error']), title: PropTypes.string, message: PropTypes.string, icon: PropTypes.string, diff --git a/src/common/Toast/ToastItem/styles.less b/src/common/Toast/ToastItem/styles.less index 05bf68ec8..c838baf80 100644 --- a/src/common/Toast/ToastItem/styles.less +++ b/src/common/Toast/ToastItem/styles.less @@ -33,6 +33,16 @@ } } + &.info { + .icon-container { + background-color: @color-primary-light2; + + .icon { + color: @color-surface-light5-90; + } + } + } + .icon-container { flex: none; align-self: stretch; From bf11195d0e67a719fbf62e151f45f16a16ed4a89 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Jan 2024 04:05:36 +0100 Subject: [PATCH 12/28] refactor(App): use SearchParamsHandler --- src/App/App.js | 3 +- src/App/SearchParamsHandler.js | 57 ++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/App/SearchParamsHandler.js diff --git a/src/App/App.js b/src/App/App.js index 79efaf0fd..b5f67a658 100644 --- a/src/App/App.js +++ b/src/App/App.js @@ -9,7 +9,7 @@ const { NotFound } = require('stremio/routes'); const { ToastProvider, TooltipProvider, CONSTANTS, withCoreSuspender } = require('stremio/common'); const ServicesToaster = require('./ServicesToaster'); const DeepLinkHandler = require('./DeepLinkHandler'); -const DefaultSettingsHandler = require('./DefaultSettingsHandler'); +const SearchParamsHandler = require('./SearchParamsHandler'); const ErrorDialog = require('./ErrorDialog'); const withProtectedRoutes = require('./withProtectedRoutes'); const routerViewsConfig = require('./routerViewsConfig'); @@ -165,6 +165,7 @@ const App = () => { + { + const { core } = useServices(); + const profile = useProfile(); + const toast = useToast(); + + const [searchParams, setSearchParams] = React.useState({}); + + const onLocationChange = () => { + const { origin, hash, search } = window.location; + const { searchParams } = new URL(`${origin}${search.length ? search : hash.replace('#', '')}`); + + setSearchParams((previousSearchParams) => { + const currentSearchParams = Object.fromEntries(searchParams.entries()); + return isEqual(previousSearchParams, currentSearchParams) ? previousSearchParams : currentSearchParams; + }); + }; + + React.useEffect(() => { + const { streamingServerUrl } = searchParams; + + if (streamingServerUrl) { + core.transport.dispatch({ + action: 'Ctx', + args: { + action: 'UpdateSettings', + args: { + ...profile.settings, + streamingServerUrl, + }, + }, + }); + + toast.show({ + type: 'success', + title: `Using streaming server at ${streamingServerUrl}`, + timeout: 4000, + }); + } + }, [searchParams]); + + React.useEffect(() => { + onLocationChange(); + window.addEventListener('hashchange', onLocationChange); + return () => window.removeEventListener('hashchange', onLocationChange); + }, []); + + return null; +}; + +module.exports = withCoreSuspender(SearchParamsHandler); From 2b8dc5589378b8e2aaaa2775399feadbfaf2f55e Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Jan 2024 08:50:29 +0100 Subject: [PATCH 13/28] refactor(App): remove DefaultSettingsHandler --- src/App/DefaultSettingsHandler.js | 51 ------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 src/App/DefaultSettingsHandler.js diff --git a/src/App/DefaultSettingsHandler.js b/src/App/DefaultSettingsHandler.js deleted file mode 100644 index c963db130..000000000 --- a/src/App/DefaultSettingsHandler.js +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (C) 2017-2023 Smart code 203358507 - -const React = require('react'); -const { - withCoreSuspender, - useProfile, - useToast, -} = require('stremio/common'); -const { useServices } = require('stremio/services'); - -const DefaultSettingsHandler = () => { - const { core } = useServices(); - const toast = useToast(); - - const profile = useProfile(); - - React.useEffect(() => { - const searchParams = new URLSearchParams(window.location.search); - if (searchParams.has('streamingServerUrl')) { - const streamingServerUrl = searchParams.get('streamingServerUrl'); - - core.transport.dispatch({ - action: 'Ctx', - args: { - action: 'UpdateSettings', - args: { - ...profile.settings, - streamingServerUrl - } - } - }); - setTimeout(() => { - core.transport.dispatch({ - action: 'StreamingServer', - args: { - action: 'Reload' - } - }); - }, 1000); - toast.show({ - type: 'info', - title: `Using streaming server at ${streamingServerUrl}`, - timeout: 4000 - }); - } - }, []); - - return null; -}; - -module.exports = withCoreSuspender(DefaultSettingsHandler); From 8f71788f4e15c32339007a04e489438e38fc4a87 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Jan 2024 09:32:52 +0100 Subject: [PATCH 14/28] refactor(SearchParamsHandler): simplify URL parsing --- src/App/SearchParamsHandler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App/SearchParamsHandler.js b/src/App/SearchParamsHandler.js index 64faa36b0..cdaa44517 100644 --- a/src/App/SearchParamsHandler.js +++ b/src/App/SearchParamsHandler.js @@ -14,7 +14,7 @@ const SearchParamsHandler = () => { const onLocationChange = () => { const { origin, hash, search } = window.location; - const { searchParams } = new URL(`${origin}${search.length ? search : hash.replace('#', '')}`); + const { searchParams } = new URL(`${origin}${hash.replace('#', '')}${search}`); setSearchParams((previousSearchParams) => { const currentSearchParams = Object.fromEntries(searchParams.entries()); From 2b4851685e31559d92f4cebd493476d37a7f4e4b Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:17:06 +0200 Subject: [PATCH 15/28] feature: toasts new design --- src/common/Toast/ToastItem/ToastItem.js | 2 +- src/common/Toast/ToastItem/styles.less | 48 +++++++++++++------------ 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/common/Toast/ToastItem/ToastItem.js b/src/common/Toast/ToastItem/ToastItem.js index 869aa224f..f207f8e8e 100644 --- a/src/common/Toast/ToastItem/ToastItem.js +++ b/src/common/Toast/ToastItem/ToastItem.js @@ -17,7 +17,7 @@ const ToastItem = ({ title, message, dataset, onSelect, onClose, ...props }) => const icon = React.useMemo(() => { return typeof props.icon === 'string' ? props.icon : type === 'success' ? 'checkmark' : - type === 'error' ? 'warning' : + type === 'error' ? 'close' : null; }, [type, props.icon]); const toastOnClick = React.useCallback((event) => { diff --git a/src/common/Toast/ToastItem/styles.less b/src/common/Toast/ToastItem/styles.less index 05bf68ec8..32b8e1dbf 100644 --- a/src/common/Toast/ToastItem/styles.less +++ b/src/common/Toast/ToastItem/styles.less @@ -5,45 +5,42 @@ .toast-item-container { display: flex; flex-direction: row; + align-items: center; width: 25rem; margin-bottom: 1rem; - background-color: @color-surface-light4; overflow: visible; - box-shadow: 0 0.3rem 0.5rem @color-background-dark5-40, - 0 0.6rem 1rem @color-background-dark5-20; + box-shadow: var(--outer-glow); + background-color: var(--modal-background-color); pointer-events: auto; - + border-radius: var(--border-radius); + border: 0.4px solid var(--primary-accent-color); + backdrop-filter: blur(10px); + padding: 0.5rem 1rem; &.success { .icon-container { - background-color: @color-accent3; - .icon { - color: @color-surface-light5-90; + color: @color-accent3; } } } &.error { .icon-container { - background-color: @color-accent2; - .icon { - color: @color-surface-light5-90; + color: var(--color-trakt); } } } .icon-container { - flex: none; - align-self: stretch; - width: 2.5rem; - padding: 0.5rem; + border-radius: 3px; + background-color: var(--overlay-color); .icon { display: block; width: 100%; height: 100%; - color: @color-background-dark5-90; + max-width: 2rem; } } @@ -54,6 +51,7 @@ .title-container { font-size: 1.2rem; + color: var(--primary-foreground-color); &:not(:last-child) { margin-bottom: 0.2rem; @@ -62,25 +60,29 @@ .message-container { font-size: 1.1rem; + color: var(--primary-foreground-color); + opacity: 0.8; } } .close-button-container { - flex: none; - align-self: flex-start; width: 2rem; height: 2rem; margin: 0.2rem; - padding: 0.5rem; - - &:hover { - background-color: @color-surface-light2; - } - + border-radius: 3px; + .icon { display: block; width: 100%; height: 100%; + color: var(--overlay-color); + } + + &:hover { + .icon { + color: var(--primary-foreground-color); + opacity: 0.7; + } } } } \ No newline at end of file From 18db30de9fff0d3a1c0d2a13fb2735faa8c59674 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:41:57 +0200 Subject: [PATCH 16/28] refactor: changed the alignment of items in a toast --- src/common/Toast/ToastItem/styles.less | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/common/Toast/ToastItem/styles.less b/src/common/Toast/ToastItem/styles.less index 32b8e1dbf..53036689a 100644 --- a/src/common/Toast/ToastItem/styles.less +++ b/src/common/Toast/ToastItem/styles.less @@ -5,7 +5,7 @@ .toast-item-container { display: flex; flex-direction: row; - align-items: center; + align-items: flex-start; width: 25rem; margin-bottom: 1rem; overflow: visible; @@ -15,7 +15,7 @@ border-radius: var(--border-radius); border: 0.4px solid var(--primary-accent-color); backdrop-filter: blur(10px); - padding: 0.5rem 1rem; + padding: 1rem; &.success { .icon-container { .icon { @@ -47,7 +47,7 @@ .info-container { flex: 1; align-self: stretch; - padding: 1rem; + padding: 0 1rem; .title-container { font-size: 1.2rem; @@ -68,14 +68,14 @@ .close-button-container { width: 2rem; height: 2rem; - margin: 0.2rem; border-radius: 3px; .icon { display: block; width: 100%; height: 100%; - color: var(--overlay-color); + color: var(--primary-accent-color); + opacity: 0.3; } &:hover { From a2da36be8cf9c5f1be76529f193541a0ae8d4d0c Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:46:14 +0200 Subject: [PATCH 17/28] refactor: add padding to the top of info-container --- src/common/Toast/ToastItem/styles.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Toast/ToastItem/styles.less b/src/common/Toast/ToastItem/styles.less index 53036689a..5c4ac7d2f 100644 --- a/src/common/Toast/ToastItem/styles.less +++ b/src/common/Toast/ToastItem/styles.less @@ -47,7 +47,7 @@ .info-container { flex: 1; align-self: stretch; - padding: 0 1rem; + padding: 0.1rem 1rem; .title-container { font-size: 1.2rem; From a4fb719dc6d9f0fc8979b030ca48f256dd76b2b7 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:53:03 +0200 Subject: [PATCH 18/28] fix: off-center info-container --- src/common/Toast/ToastItem/styles.less | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/common/Toast/ToastItem/styles.less b/src/common/Toast/ToastItem/styles.less index 5c4ac7d2f..bd35680ea 100644 --- a/src/common/Toast/ToastItem/styles.less +++ b/src/common/Toast/ToastItem/styles.less @@ -47,7 +47,7 @@ .info-container { flex: 1; align-self: stretch; - padding: 0.1rem 1rem; + padding: 0.2rem 1rem; .title-container { font-size: 1.2rem; @@ -74,14 +74,13 @@ display: block; width: 100%; height: 100%; - color: var(--primary-accent-color); - opacity: 0.3; + color: var(--primary-foreground-color); + opacity: 0.4; } &:hover { .icon { - color: var(--primary-foreground-color); - opacity: 0.7; + opacity: 1; } } } From 6dc6095e0391b4d4c26fdb34460afa74d78c33e4 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 30 Jan 2024 14:44:21 +0200 Subject: [PATCH 19/28] fix: local search label translations --- package-lock.json | 6 +++--- package.json | 2 +- src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a91a30d12..60620e93e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "react-i18next": "^12.1.1", "react-is": "18.2.0", "spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6", - "stremio-translations": "github:Stremio/stremio-translations#12b1307f95249496960d2a257b371db5700721e6", + "stremio-translations": "github:Stremio/stremio-translations#38d283adf4bbe6d29657b5023778e30af7f6b05a", "url": "0.11.0", "use-long-press": "^3.1.5" }, @@ -12452,8 +12452,8 @@ }, "node_modules/stremio-translations": { "version": "1.44.5", - "resolved": "git+ssh://git@github.com/Stremio/stremio-translations.git#12b1307f95249496960d2a257b371db5700721e6", - "integrity": "sha512-929O9sIUph3ew4YlUfD/zoMUSAYmwrjRIS+opmft3Gi8qS36/gBrH8RYW8XvgkTon+xrgqr7hC2/QSck4tgrAA==", + "resolved": "git+ssh://git@github.com/Stremio/stremio-translations.git#38d283adf4bbe6d29657b5023778e30af7f6b05a", + "integrity": "sha512-O/uFENWQ/pXEw4hQ1XQ8e4g6ZeX80wrhrxZfaGq2svK2I3bC/gCe5et0lbVzFBkVefSP3o1BMrlhgoSqfQssqA==", "license": "MIT" }, "node_modules/string_decoder": { diff --git a/package.json b/package.json index 1d5a343c5..21321ba4d 100755 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "react-i18next": "^12.1.1", "react-is": "18.2.0", "spatial-navigation-polyfill": "github:Stremio/spatial-navigation#64871b1422466f5f45d24ebc8bbd315b2ebab6a6", - "stremio-translations": "github:Stremio/stremio-translations#12b1307f95249496960d2a257b371db5700721e6", + "stremio-translations": "github:Stremio/stremio-translations#38d283adf4bbe6d29657b5023778e30af7f6b05a", "url": "0.11.0", "use-long-press": "^3.1.5" }, diff --git a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js index beea8010d..5db06f1d0 100644 --- a/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js +++ b/src/common/NavBar/HorizontalNavBar/SearchBar/SearchBar.js @@ -153,7 +153,7 @@ const SearchBar = React.memo(({ className, query, active }) => { localSearch?.items?.length ?
-
{ t('Recommendations') }
+
{ t('SEARCH_SUGGESTIONS') }
{ localSearch.items.map(({ query, deepLinks }, index) => ( From ec3afdcfe65241168d717ca6d7d8f42e0f48319b Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Jan 2024 13:49:54 +0100 Subject: [PATCH 20/28] refactor(useTranslate): use new key format for catalog --- src/common/useTranslate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/useTranslate.js b/src/common/useTranslate.js index 753daaa80..459025f46 100644 --- a/src/common/useTranslate.js +++ b/src/common/useTranslate.js @@ -19,7 +19,7 @@ const useTranslate = () => { const catalogTitle = useCallback(({ addon, id, name, type } = {}, withType = true) => { if (addon && id && name) { - const partialKey = `${addon.manifest.id}/${id}`; + const partialKey = `${addon.manifest.id.replaceAll('.', '_')}_${id}`; const translatedName = stringWithPrefix(partialKey, 'CATALOG_', name); if (type && withType) { From 86742621950060221f493e4de7e4f857c9f26c79 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Jan 2024 14:23:11 +0100 Subject: [PATCH 21/28] chore: update stremio-core-web --- package-lock.json | 7 ++++--- package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 60620e93e..57a4a1035 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.0", + "@stremio/stremio-core-web": "0.46.1", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", @@ -2969,8 +2969,9 @@ "license": "MIT" }, "node_modules/@stremio/stremio-core-web": { - "version": "0.46.0", - "license": "MIT", + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.46.1.tgz", + "integrity": "sha512-Xlhc0kdAkOdrEwUifMf3WiWavF9Pa5lJtxbujJsu/q6cZSuP2NptuJU8dYPSGr1Mkw2g//KYrtOl5++xGAyTQg==", "dependencies": { "@babel/runtime": "7.16.0" } diff --git a/package.json b/package.json index 21321ba4d..f7f48fb0b 100755 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.0", + "@stremio/stremio-core-web": "0.46.1", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.30", "a-color-picker": "1.2.1", From 355115935611665e4ae89fd0c4ced516fd9b7dfa Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 1 Feb 2024 08:50:53 +0100 Subject: [PATCH 22/28] fix: show new videos counter on library items --- .../ContinueWatchingItem/ContinueWatchingItem.js | 13 ++++--------- src/common/LibItem/LibItem.js | 8 +++++++- src/common/MetaItem/MetaItem.js | 2 +- src/common/MetaRow/MetaRow.js | 6 ++++-- src/routes/Board/Board.js | 4 +++- src/routes/Library/Library.js | 5 +++-- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/common/ContinueWatchingItem/ContinueWatchingItem.js b/src/common/ContinueWatchingItem/ContinueWatchingItem.js index 721a1b731..7d1ab824d 100644 --- a/src/common/ContinueWatchingItem/ContinueWatchingItem.js +++ b/src/common/ContinueWatchingItem/ContinueWatchingItem.js @@ -3,17 +3,10 @@ const React = require('react'); const PropTypes = require('prop-types'); const { useServices } = require('stremio/services'); -const useNotifications = require('stremio/common/useNotifications'); const LibItem = require('stremio/common/LibItem'); -const ContinueWatchingItem = ({ _id, deepLinks, ...props }) => { +const ContinueWatchingItem = ({ _id, notifications, deepLinks, ...props }) => { const { core } = useServices(); - const notifications = useNotifications(); - - const newVideos = React.useMemo(() => { - const count = notifications.items?.[_id]?.length ?? 0; - return Math.min(Math.max(count, 0), 99); - }, [_id, notifications.items]); const onClick = React.useCallback(() => { if (deepLinks?.metaDetailsVideos ?? deepLinks?.metaDetailsStreams) { @@ -51,8 +44,9 @@ const ContinueWatchingItem = ({ _id, deepLinks, ...props }) => { return ( { ContinueWatchingItem.propTypes = { _id: PropTypes.string, + notifications: PropTypes.object, deepLinks: PropTypes.shape({ metaDetailsVideos: PropTypes.string, metaDetailsStreams: PropTypes.string, diff --git a/src/common/LibItem/LibItem.js b/src/common/LibItem/LibItem.js index a1c59200a..d2858790d 100644 --- a/src/common/LibItem/LibItem.js +++ b/src/common/LibItem/LibItem.js @@ -13,8 +13,12 @@ const OPTIONS = [ { label: 'LIBRARY_REMOVE', value: 'remove' }, ]; -const LibItem = ({ _id, removable, ...props }) => { +const LibItem = ({ _id, removable, notifications, ...props }) => { const { core } = useServices(); + const newVideos = React.useMemo(() => { + const count = notifications.items?.[_id]?.length ?? 0; + return Math.min(Math.max(count, 0), 99); + }, [_id, notifications]); const options = React.useMemo(() => { return OPTIONS .filter(({ value }) => { @@ -98,6 +102,7 @@ const LibItem = ({ _id, removable, ...props }) => { return ( @@ -108,6 +113,7 @@ LibItem.propTypes = { _id: PropTypes.string, removable: PropTypes.bool, progress: PropTypes.number, + notifications: PropTypes.object, deepLinks: PropTypes.shape({ metaDetailsVideos: PropTypes.string, metaDetailsStreams: PropTypes.string, diff --git a/src/common/MetaItem/MetaItem.js b/src/common/MetaItem/MetaItem.js index a967fde9d..e9fc46dc8 100644 --- a/src/common/MetaItem/MetaItem.js +++ b/src/common/MetaItem/MetaItem.js @@ -76,7 +76,7 @@ const MetaItem = React.memo(({ className, type, name, poster, posterShape, poste null } { - watched ? + !newVideos && watched ?
diff --git a/src/common/MetaRow/MetaRow.js b/src/common/MetaRow/MetaRow.js index 5a99c585a..7d023202a 100644 --- a/src/common/MetaRow/MetaRow.js +++ b/src/common/MetaRow/MetaRow.js @@ -11,7 +11,7 @@ const useTranslate = require('stremio/common/useTranslate'); const MetaRowPlaceholder = require('./MetaRowPlaceholder'); const styles = require('./styles'); -const MetaRow = ({ className, title, catalog, message, itemComponent }) => { +const MetaRow = ({ className, title, catalog, message, itemComponent, notifications }) => { const t = useTranslate(); const catalogTitle = React.useMemo(() => { @@ -56,7 +56,8 @@ const MetaRow = ({ className, title, catalog, message, itemComponent }) => { return React.createElement(itemComponent, { ...item, key: index, - className: classnames(styles['meta-item'], styles['poster-shape-poster'], styles[`poster-shape-${item.posterShape}`]) + className: classnames(styles['meta-item'], styles['poster-shape-poster'], styles[`poster-shape-${item.posterShape}`]), + notifications, }); }) : @@ -104,6 +105,7 @@ MetaRow.propTypes = { }), }), itemComponent: PropTypes.elementType, + notifications: PropTypes.object, }; module.exports = MetaRow; diff --git a/src/routes/Board/Board.js b/src/routes/Board/Board.js index 510406381..a494a02ee 100644 --- a/src/routes/Board/Board.js +++ b/src/routes/Board/Board.js @@ -4,7 +4,7 @@ const React = require('react'); const classnames = require('classnames'); const debounce = require('lodash.debounce'); const { useTranslation } = require('react-i18next'); -const { MainNavBars, MetaRow, ContinueWatchingItem, MetaItem, StreamingServerWarning, useStreamingServer, withCoreSuspender, getVisibleChildrenRange, EventModal } = require('stremio/common'); +const { MainNavBars, MetaRow, ContinueWatchingItem, MetaItem, StreamingServerWarning, useStreamingServer, useNotifications, withCoreSuspender, getVisibleChildrenRange, EventModal } = require('stremio/common'); const useBoard = require('./useBoard'); const useContinueWatchingPreview = require('./useContinueWatchingPreview'); const styles = require('./styles'); @@ -16,6 +16,7 @@ const Board = () => { const streamingServer = useStreamingServer(); const continueWatchingPreview = useContinueWatchingPreview(); const [board, loadBoardRows] = useBoard(); + const notifications = useNotifications(); const boardCatalogsOffset = continueWatchingPreview.items.length > 0 ? 1 : 0; const scrollContainerRef = React.useRef(); const onVisibleRangeChange = React.useCallback(() => { @@ -48,6 +49,7 @@ const Board = () => { title={t('BOARD_CONTINUE_WATCHING')} catalog={continueWatchingPreview} itemComponent={ContinueWatchingItem} + notifications={notifications} /> : null diff --git a/src/routes/Library/Library.js b/src/routes/Library/Library.js index 1479c9c5d..e45dd585a 100644 --- a/src/routes/Library/Library.js +++ b/src/routes/Library/Library.js @@ -5,7 +5,7 @@ const PropTypes = require('prop-types'); const classnames = require('classnames'); const { default: Icon } = require('@stremio/stremio-icons/react'); const NotFound = require('stremio/routes/NotFound'); -const { Button, DelayedRenderer, Multiselect, MainNavBars, LibItem, Image, ModalDialog, PaginationInput, useProfile, routesRegexp, useBinaryState, withCoreSuspender } = require('stremio/common'); +const { Button, DelayedRenderer, Multiselect, MainNavBars, LibItem, Image, ModalDialog, PaginationInput, useProfile, useNotifications, routesRegexp, useBinaryState, withCoreSuspender } = require('stremio/common'); const useLibrary = require('./useLibrary'); const useSelectableInputs = require('./useSelectableInputs'); const styles = require('./styles'); @@ -45,6 +45,7 @@ function withModel(Library) { const Library = ({ model, urlParams, queryParams }) => { const profile = useProfile(); + const notifications = useNotifications(); const library = useLibrary(model, urlParams, queryParams); const [typeSelect, sortSelect, paginationInput] = useSelectableInputs(library); const [inputsModalOpen, openInputsModal, closeInputsModal] = useBinaryState(false); @@ -108,7 +109,7 @@ const Library = ({ model, urlParams, queryParams }) => { :
{library.catalog.map((libItem, index) => ( - + ))}
} From e0cd07060202faaa7d3e328931b5b5d20e666ad1 Mon Sep 17 00:00:00 2001 From: Alexandru Branza Date: Wed, 7 Feb 2024 17:28:01 +0200 Subject: [PATCH 23/28] Fix Stream Progress Bar Showing Over Addon Selector --- src/routes/MetaDetails/StreamsList/styles.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/MetaDetails/StreamsList/styles.less b/src/routes/MetaDetails/StreamsList/styles.less index 55be6310b..295478f2f 100644 --- a/src/routes/MetaDetails/StreamsList/styles.less +++ b/src/routes/MetaDetails/StreamsList/styles.less @@ -67,7 +67,7 @@ .select-choices-wrapper { display: flex; align-items: center; - z-index: 1; + z-index: 2; margin: 1em 1em 0 1em; gap: 0 0.5em; overflow: visible; From fb7d6b6ef43d9a3fcb6ce9774bc45ae7dd16e00f Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 17:23:31 +0100 Subject: [PATCH 24/28] chore: update stremio-video --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 57a4a1035..3f04e30c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.1", "@stremio/stremio-icons": "5.2.0", - "@stremio/stremio-video": "0.0.30", + "@stremio/stremio-video": "0.0.32", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", @@ -2982,16 +2982,16 @@ "integrity": "sha512-rABlPBTFF17QcSm/4IizVoE/jh+REt+waqA0RvIxuGjQppXlvj7CalqVvTam0CC2wgY00zNG1v/9kVHUDVzo4Q==" }, "node_modules/@stremio/stremio-video": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.30.tgz", - "integrity": "sha512-0gAnPrV/fmVj3dQvpmcpE5lp1nWuwsapV1n0hVWx/6/t0ekT8B04WtCgoAKrqMyXv5Z3xwi4tJDV08yiUgwtCw==", + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.32.tgz", + "integrity": "sha512-dfsLbvVnuewANLVE2qzioQUpkyno5NWOAvij6ZsSEtj+WagZc3msyupx9xHleiWsE/ejiG3XBpSwk+70aB1PqA==", "dependencies": { "buffer": "6.0.3", "color": "4.2.3", "deep-freeze": "0.0.1", "eventemitter3": "4.0.7", "hat": "0.0.3", - "hls.js": "https://github.com/Stremio/hls.js/releases/download/v1.2.3-patch1/hls.js-1.2.3-patch1.tgz", + "hls.js": "https://github.com/Stremio/hls.js/releases/download/v1.5.1-patch1/hls.js-1.5.1-patch1.tgz", "lodash.clonedeep": "4.5.0", "magnet-uri": "6.2.0", "url": "0.11.0", @@ -6880,9 +6880,9 @@ } }, "node_modules/hls.js": { - "version": "1.2.3-patch1.0.canary.8609", - "resolved": "https://github.com/Stremio/hls.js/releases/download/v1.2.3-patch1/hls.js-1.2.3-patch1.tgz", - "integrity": "sha512-b/WMwSXyV6QvoGYotzzrG0ldRW8mOzqxEhPDd+as4haAx78tmxoVkdYYtVKZ8MiJcMa6j00lfx7ti/2HlO5ByQ==", + "version": "1.5.1-patch1.0.canary.9887", + "resolved": "https://github.com/Stremio/hls.js/releases/download/v1.5.1-patch1/hls.js-1.5.1-patch1.tgz", + "integrity": "sha512-+fU827MbrizlQkvEvvk+xpV3bp5PvhaWIcMhRDkQBihMMv9cREOb3EuIL3fFlz3bbeehCJZ8LMd4vZRYBKMOJQ==", "license": "Apache-2.0" }, "node_modules/hpack.js": { diff --git a/package.json b/package.json index f7f48fb0b..23ca2e14b 100755 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.1", "@stremio/stremio-icons": "5.2.0", - "@stremio/stremio-video": "0.0.30", + "@stremio/stremio-video": "0.0.32", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", From b4fe8729c0f9b4380e85a8daa3b32d53b5ba17d6 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 17:25:19 +0100 Subject: [PATCH 25/28] chore: update stremio-core-web --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f04e30c7..82856d67c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.1", + "@stremio/stremio-core-web": "0.46.3", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.32", "a-color-picker": "1.2.1", @@ -2969,9 +2969,9 @@ "license": "MIT" }, "node_modules/@stremio/stremio-core-web": { - "version": "0.46.1", - "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.46.1.tgz", - "integrity": "sha512-Xlhc0kdAkOdrEwUifMf3WiWavF9Pa5lJtxbujJsu/q6cZSuP2NptuJU8dYPSGr1Mkw2g//KYrtOl5++xGAyTQg==", + "version": "0.46.3", + "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.46.3.tgz", + "integrity": "sha512-5us8KQQ0EJ2xjLukcLu3yia7fa8BIjxjOwbMebpSLGEomq6MzVQMmRGp/7rId2ggfIej2Zwf/GBVepZ2/nLE4A==", "dependencies": { "@babel/runtime": "7.16.0" } diff --git a/package.json b/package.json index 23ca2e14b..7c1e5cdb8 100755 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.1", + "@stremio/stremio-core-web": "0.46.3", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.32", "a-color-picker": "1.2.1", From 128a751dc7390dfe48ec356410cac0445bbad76d Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 8 Feb 2024 12:14:41 +0100 Subject: [PATCH 26/28] chore: update stremio-video --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82856d67c..41c7b048f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.3", "@stremio/stremio-icons": "5.2.0", - "@stremio/stremio-video": "0.0.32", + "@stremio/stremio-video": "0.0.33", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", @@ -2982,16 +2982,16 @@ "integrity": "sha512-rABlPBTFF17QcSm/4IizVoE/jh+REt+waqA0RvIxuGjQppXlvj7CalqVvTam0CC2wgY00zNG1v/9kVHUDVzo4Q==" }, "node_modules/@stremio/stremio-video": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.32.tgz", - "integrity": "sha512-dfsLbvVnuewANLVE2qzioQUpkyno5NWOAvij6ZsSEtj+WagZc3msyupx9xHleiWsE/ejiG3XBpSwk+70aB1PqA==", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.33.tgz", + "integrity": "sha512-SaJgKmDrk8+reJprXYEz/hfp66E9GdhqURX20DiRx0OsDZFDYvWIe1fZLqj5B3LjVHtwEq3FIku+Z9qnH4jPDg==", "dependencies": { "buffer": "6.0.3", "color": "4.2.3", "deep-freeze": "0.0.1", "eventemitter3": "4.0.7", "hat": "0.0.3", - "hls.js": "https://github.com/Stremio/hls.js/releases/download/v1.5.1-patch1/hls.js-1.5.1-patch1.tgz", + "hls.js": "https://github.com/Stremio/hls.js/releases/download/v1.5.4-patch1/hls.js-1.5.4-patch1.tgz", "lodash.clonedeep": "4.5.0", "magnet-uri": "6.2.0", "url": "0.11.0", @@ -6880,9 +6880,9 @@ } }, "node_modules/hls.js": { - "version": "1.5.1-patch1.0.canary.9887", - "resolved": "https://github.com/Stremio/hls.js/releases/download/v1.5.1-patch1/hls.js-1.5.1-patch1.tgz", - "integrity": "sha512-+fU827MbrizlQkvEvvk+xpV3bp5PvhaWIcMhRDkQBihMMv9cREOb3EuIL3fFlz3bbeehCJZ8LMd4vZRYBKMOJQ==", + "version": "1.5.5-0.canary.9892", + "resolved": "https://github.com/Stremio/hls.js/releases/download/v1.5.4-patch1/hls.js-1.5.4-patch1.tgz", + "integrity": "sha512-YDHKApXQtCM9DgwAN/3KTvvaxz6zbmjACQKFMbFE1nD21hE+jX4gv8UX3sMYE99A0slMht29wjK93NCseuG0fg==", "license": "Apache-2.0" }, "node_modules/hpack.js": { diff --git a/package.json b/package.json index 7c1e5cdb8..8e9edfd35 100755 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@stremio/stremio-colors": "5.0.1", "@stremio/stremio-core-web": "0.46.3", "@stremio/stremio-icons": "5.2.0", - "@stremio/stremio-video": "0.0.32", + "@stremio/stremio-video": "0.0.33", "a-color-picker": "1.2.1", "bowser": "2.11.0", "buffer": "6.0.3", From e6f681993c73dbce3381ebe7bc288e5009aa646f Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Thu, 8 Feb 2024 12:54:15 +0100 Subject: [PATCH 27/28] fix: missing watched indicator on discover and board --- src/routes/Discover/Discover.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/routes/Discover/Discover.js b/src/routes/Discover/Discover.js index d27c976cf..2e2e90beb 100644 --- a/src/routes/Discover/Discover.js +++ b/src/routes/Discover/Discover.js @@ -150,6 +150,7 @@ const Discover = ({ urlParams, queryParams }) => { posterShape={metaItem.posterShape} playname={selectedMetaItemIndex === index} deepLinks={metaItem.deepLinks} + watched={metaItem.watched} data-index={index} onClick={metaItemOnClick} /> From 2b4328a9abef3b068808a8421d5e930eba62bfa3 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 9 Feb 2024 11:34:52 +0100 Subject: [PATCH 28/28] doc: update github page badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 06a5428ae..c729c2639 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Stremio - Freedom to Stream ![Build](https://github.com/stremio/stremio-web/workflows/Build/badge.svg?branch=development) -[![Github Page](https://img.shields.io/website?down_message=offline&label=Page&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iOTgiIGhlaWdodD0iOTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI%2BPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC44NTQgMEMyMS44MzkgMCAwIDIyIDAgNDkuMjE3YzAgMjEuNzU2IDEzLjk5MyA0MC4xNzIgMzMuNDA1IDQ2LjY5IDIuNDI3LjQ5IDMuMzE2LTEuMDU5IDMuMzE2LTIuMzYyIDAtMS4xNDEtLjA4LTUuMDUyLS4wOC05LjEyNy0xMy41OSAyLjkzNC0xNi40Mi01Ljg2Ny0xNi40Mi01Ljg2Ny0yLjE4NC01LjcwNC01LjQyLTcuMTctNS40Mi03LjE3LTQuNDQ4LTMuMDE1LjMyNC0zLjAxNS4zMjQtMy4wMTUgNC45MzQuMzI2IDcuNTIzIDUuMDUyIDcuNTIzIDUuMDUyIDQuMzY3IDcuNDk2IDExLjQwNCA1LjM3OCAxNC4yMzUgNC4wNzQuNDA0LTMuMTc4IDEuNjk5LTUuMzc4IDMuMDc0LTYuNi0xMC44MzktMS4xNDEtMjIuMjQzLTUuMzc4LTIyLjI0My0yNC4yODMgMC01LjM3OCAxLjk0LTkuNzc4IDUuMDE0LTEzLjItLjQ4NS0xLjIyMi0yLjE4NC02LjI3NS40ODYtMTMuMDM4IDAgMCA0LjEyNS0xLjMwNCAxMy40MjYgNS4wNTJhNDYuOTcgNDYuOTcgMCAwIDEgMTIuMjE0LTEuNjNjNC4xMjUgMCA4LjMzLjU3MSAxMi4yMTMgMS42MyA5LjMwMi02LjM1NiAxMy40MjctNS4wNTIgMTMuNDI3LTUuMDUyIDIuNjcgNi43NjMuOTcgMTEuODE2LjQ4NSAxMy4wMzggMy4xNTUgMy40MjIgNS4wMTUgNy44MjIgNS4wMTUgMTMuMiAwIDE4LjkwNS0xMS40MDQgMjMuMDYtMjIuMzI0IDI0LjI4MyAxLjc4IDEuNTQ4IDMuMzE2IDQuNDgxIDMuMzE2IDkuMTI2IDAgNi42LS4wOCAxMS44OTctLjA4IDEzLjUyNiAwIDEuMzA0Ljg5IDIuODUzIDMuMzE2IDIuMzY0IDE5LjQxMi02LjUyIDMzLjQwNS0yNC45MzUgMzMuNDA1LTQ2LjY5MUM5Ny43MDcgMjIgNzUuNzg4IDAgNDguODU0IDB6IiBmaWxsPSIjZmZmIi8%2BPC9zdmc%2B&up_message=online&url=https%3A%2F%2Fstremio.github.io%2Fstremio-web%2F)](https://stremio.github.io/stremio-web/development) +[![Github Page](https://img.shields.io/website?label=Page&logo=github&up_message=online&down_message=offline&url=https%3A%2F%2Fstremio.github.io%2Fstremio-web%2F)](https://stremio.github.io/stremio-web/development) Stremio is a modern media center that's a one-stop solution for your video entertainment. You discover, watch and organize video content from easy to install addons.