mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-04 00:47:00 +01:00
My List is a list of titles to watch later, kept in my-list.json by
title key (pstr-core::mylist) and synced as one list/<key> register per
title, so an add or a removal on one device reaches every other. A list
file that will not parse is never written over: changing the list is
refused instead. It is a filter, a row on the library, a button on the
banner and the title page, and an entry in each tile's menu.
pstr-core::news reads node_first_seen against each share's first crawl,
so a newly added share does not badge its whole library. A title that
arrived in the last two weeks and was never played is New; a series
being watched counts the unwatched episodes that arrived after it was
last played ("3 new"). They fill the tile badge and the "New episodes"
and "Recently added" rows. shelves::home puts every row in one order
for all three apps, and a shelf tile of an airing show shows a
countdown ("Ep 8 · in 2 d").
The bridge gains TitleRecord.on_list and .badge, set_on_list, the
MyList filter, airing_countdown and SyncRecord.list_changed.
37 lines
921 B
Rust
37 lines
921 B
Rust
//! Shares, catalog, naming and persistence for `proton-stream`.
|
|
//!
|
|
//! Everything that is not the player or the UI. Front ends depend on this crate
|
|
//! rather than on `proton-drive-rs` directly, so there is one place that knows
|
|
//! how a share is opened and how its contents are modelled.
|
|
#![forbid(unsafe_code)]
|
|
|
|
pub mod account;
|
|
pub mod appearance;
|
|
pub mod browse;
|
|
pub mod catalog;
|
|
pub mod chapters;
|
|
pub mod config;
|
|
pub mod error;
|
|
pub mod franchise;
|
|
pub mod language;
|
|
pub mod library;
|
|
pub mod metadata;
|
|
pub mod mylist;
|
|
pub mod naming;
|
|
pub mod news;
|
|
pub mod prefs;
|
|
pub mod profile;
|
|
pub mod shares;
|
|
pub mod shelves;
|
|
pub mod subtitles;
|
|
pub mod sync;
|
|
|
|
pub use account::{Account, AccountStore};
|
|
pub use error::{Error, Result};
|
|
#[cfg(not(target_os = "android"))]
|
|
pub use shares::KeyringSecretStore;
|
|
pub use shares::{SecretStore, Share, ShareClient, ShareStore, SharedLibrary};
|
|
|
|
pub use proton_drive_rs;
|
|
pub use proton_sdk;
|