Comments (1)
How to re-implement Calendar/Notifications to be add-on based
And as a result, not requiring additional backend work and more importantly, extendable
- The add-on system would gain "multi" catalogs that return
CatalogDetailResp { metasDetailed: Vec<MetaDetail> }
; they take a required extra propids
, which is in the format["tt0944947", ...]
- cinemeta/channels and potentially others (#24) implement those, and implement
"last-videos"
catalog IDs which return aMetaDetail
withvideos
being set to the last N videos; even if cinemeta is static, this can be done via a Cloudflare worker - LibAddon would implement resource(s) that the Calendar and Notifications can use directly
- for example, a new
/videos/
resource, with extra propwhereIsNew
which allows you to specify either new or non-new videos - alternatively, we can use the same
CatalogDetailResp
but withoutids
and instead withisNew
- seems like the cleaner way to go
- for example, a new
- the LibAddon would query all
"last-videos"
catalogs with ids set to the most watched series/channels of the user - this will happen in an asynchronous tick (in action:
UpdateLastVids
, out action:LastVidsUpdated
); this out action should trigger re-requests of the resources used for Calendar/Notifications - if any of the addons errors or times out, we can fallback on our own cache (managed by the LibAddon)
- results of the resources for Calendar/Notifications can update even offline and without
LastVidsUpdated
happening: since every time we recalculate the results, some videos that were upcoming might have become available - the way we mark notifications as seen is by keeping
state.last_video_released
for each LibItem; all of the videos wherereleased
is larger thanstate.last_video_released
are considered new to the user- for new library items, this value won't be set, and we will use the libitem ctime instead
- compat: we can update this property each time a
datastorePut
is done for a notif to maintain compatibility with older versions - caveat: compraed to the previous system, this obviously cannot keep state for each video individually; this shouldn't be a big issue, since users watch videos in succession and there's also
watched
(watchedBitfield
)
from stremio-core.
Related Issues (20)
- Add Local search
- StreamingServer stream statistics
- No Sound with Android TV Hdmi Arc HOT 2
- Subtitles unparsed codes (e.g. \an8) HOT 1
- Add new filter in Explore section: Country of origin HOT 3
- Subtitles not syncronized on chromecast HOT 1
- Add caching limit option on Android TV
- Tests for ExternalPlayerLink
- "No videos found for this meta!" error if no behaviorHints.defaultVideoId present in the catalog reponse HOT 1
- Latest Update causes Stremio to crash on start on MacOS High Sierra HOT 1
- Support for Media Keys to Control Playback HOT 1
- Dterimo
- Add Network Interface Option HOT 1
- Fix LibraryItemState snake_case and camelCase inconsistency
- RokuTV App? HOT 4
- [Feature-Request] Add in-memory caching option PC HOT 1
- Calender support for android tv and phones. HOT 1
- Mark video as watched when emitting PlayingOnDevice event
- Trakt is not scrobbling on Nvidia shield TV (2015) HOT 3
- Error - Stremio streaming server has thrown an error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stremio-core.