-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bunch of design decisions related to the entire architecture of Stremio (notifications, calendar, library) #28
Labels
Comments
How to re-implement Calendar/Notifications to be add-on basedAnd as a result, not requiring additional backend work and more importantly, extendable
|
This was referenced Jun 2, 2019
1 task
Ivshti
changed the title
bunch of design decisions related to the entire architecture of Stremio
bunch of design decisions related to the entire architecture of Stremio (notifications, calendar, library)
Dec 2, 2023
elpiel
pushed a commit
that referenced
this issue
Jun 14, 2024
fix missing pub keyword on LibraryItemState
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
planner
function for v4.4 to stop syncing those items; and will prune them from our DB via a script; instremio-core
, it will be implemented as a simple filter in the LibAddonmanifest()
function within the same applibItems
), it should be filtered out ofCatalogFiltered
andCatalogGrouped
; the catalog will be of typeany
, which will be filtered out ofCatalogFiltered
AddonRequest
when the lib is updatedopen()
; decision: will be separateDetail
will just output themeta
to render, and theselected_video
; Load action:Detail(..., Option<video_id>)
; ifselected_id
isNone
, thelibItem.state.video_id
will be usedStreams
will just load streams from addonsDetail
andStreams
, and it will triggerLoad(Streams(...))
if theselected_video
does not have.streams
; if it does, it will render thatTryOpen
will take the fullvideo
to determine whether to request streams from addons or notextra
properties withrequired: true
will be allowed inCatalogFiltered
; e.g.genre
is one such examplenoBoard
/noDiscover
are needed; probably notextra
props (search
,searchIndex
,genre
,skip
, possiblylocation
, etc.)CatalogFiltered
, filter catalogs by.extra.iter().all(|e| !e.is_required || e.options.map_or(|o| !o.is_empty(), false))
; or also|| e.name == "onlyDiscover"
if we want a santinel value that just flags a catalog as only visible in DiscoverAdded later on:
addons
resource, that can be implemented by any add-on (therefore allowing one addon to add items to the catalog, i.e. repositories); cinemeta will implement it for official/third-party add-onsskip
ManifestPreview
, and pulling the whole manifest when installingCatalogFiltered
)behaviorHints
for this)Type > Catalog
orCatalog > Type
; first one is the same as Discover; second one can be done viaany
catalog type plusextra
prop for the typeCatalogFiltered
.addon_catalogs
to the manifest, and makeCatalogFiltered
generic overT: CatalogAdapter
which hasT::catalogs(x: &Descriptor)
andT::resource()
(that returnx.manifest.catalogs
,"catalog"
orx.manifest.addon_catalogs
,"addon_catalog"
); we will have to usetry_into
for the response, asmodels/items_group
doesanother thing we can do is add aresource_name
to each catalog; that way instead ofmanifest.addon_catalogs
, we'll have them inmanifest.catalogs
but we'll just filter byresource_name
alternatively, addon catalogs will be hidden behind a required property, and we will instantiateCatalogFiltered
with someextra
prop already passed; this seems hackierManifestPreview
The text was updated successfully, but these errors were encountered: