aboutsummaryrefslogtreecommitdiff
path: root/common/src/node.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-02-18 03:41:05 +0100
committermetamuffin <metamuffin@disroot.org>2026-02-18 03:41:05 +0100
commitb39e1a10c731fd0e61a566a0668abc33ae821b49 (patch)
tree6e2e48b5e56a2cf4b4f966b6f2e014c446a242a1 /common/src/node.rs
parent95606a9deed45ae285c2d4dee01de9d21a43b044 (diff)
downloadjellything-b39e1a10c731fd0e61a566a0668abc33ae821b49.tar
jellything-b39e1a10c731fd0e61a566a0668abc33ae821b49.tar.bz2
jellything-b39e1a10c731fd0e61a566a0668abc33ae821b49.tar.zst
use fourcc as object tags (bad idea); store type info within objects
Diffstat (limited to 'common/src/node.rs')
-rw-r--r--common/src/node.rs212
1 files changed, 105 insertions, 107 deletions
diff --git a/common/src/node.rs b/common/src/node.rs
index 60544e2..42e07ca 100644
--- a/common/src/node.rs
+++ b/common/src/node.rs
@@ -9,125 +9,123 @@ use jellyobject::{Object, Tag, enums, fields};
fields! {
// Tag counter: 111
- NO_KIND: Tag = 1 "kind";
- NO_TITLE: &str = 2 "title";
- NO_PARENT: u64 = 3 "parent"; // multi
- NO_SUBTITLE: &str = 38 "subtitle";
- NO_TAGLINE: &str = 4 "tagline";
- NO_DESCRIPTION: &str = 5 "description";
- NO_RELEASEDATE: i64 = 6 "releasedate";
- NO_DURATION: f64 = 39 "duration";
- NO_INDEX: u64 = 7 "index";
- NO_SEASON_INDEX: u64 = 8 "season_index";
- NO_TRACK: Object = 9 "track"; // multi
- NO_CHAPTER: Object = 32 "chapter"; // multi
- NO_TAG: &str = 10 "tag"; // multi
- NO_RATINGS: Object = 11 "ratings";
- NO_PICTURES: Object = 12 "pictures";
- NO_IDENTIFIERS: Object = 13 "identifiers";
- NO_VISIBILITY: Tag = 14 "visibility";
- NO_STORAGE_SIZE: u64 = 15 "storage_size";
- NO_CREDIT: Object = 33 "credit"; // multi
- NO_SLUG: &str = 37 "slug";
+ NO_KIND: Tag = b"kind";
+ NO_TITLE: &str = b"titl";
+ NO_PARENT: u64 = b"prnt"; // multi
+ NO_SUBTITLE: &str = b"sbtl";
+ NO_TAGLINE: &str = b"tgln";
+ NO_DESCRIPTION: &str = b"desc";
+ NO_RELEASEDATE: i64 = b"rldt";
+ NO_DURATION: f64 = b"durn";
+ NO_INDEX: u64 = b"indx";
+ NO_SEASON_INDEX: u64 = b"sidx";
+ NO_TRACK: Object = b"trak"; // multi
+ NO_CHAPTER: Object = b"chpt"; // multi
+ NO_TAG: &str = b"tag1"; // multi
+ NO_RATINGS: Object = b"rtng";
+ NO_PICTURES: Object = b"pict";
+ NO_IDENTIFIERS: Object = b"iden";
+ NO_VISIBILITY: Tag = b"visi";
+ NO_STORAGE_SIZE: u64 = b"stsz";
+ NO_CREDIT: Object = b"crdt"; // multi
+ NO_SLUG: &str = b"slug";
- CR_NODE: u64 = 34 "node";
- CR_KIND: Tag = 35 "kind";
- CR_ROLE: &str = 36 "role"; // multi
+ CR_NODE: u64 = b"node";
+ CR_KIND: Tag = b"kind";
+ CR_ROLE: &str = b"role"; // multi
- TR_KIND: Tag = 16 "kind";
- TR_SOURCE: Object = 17 "source";
- TR_NAME: &str = 18 "name";
- TR_CODEC: &str = 19 "codec";
- TR_LANGUAGE: &str = 20 "language"; // BCP 47
- TR_RATE: f64 = 23 "rate";
- TR_BIT_DEPTH: u32 = 25 "bit_depth";
- TR_CHANNELS: u32 = 28 "channels";
- TR_PIXEL_WIDTH: u32 = 26 "pixel_width";
- TR_PIXEL_HEIGHT: u32 = 27 "pixel_height";
+ TR_KIND: Tag = b"kind";
+ TR_SOURCE: Object = b"sour";
+ TR_NAME: &str = b"name";
+ TR_CODEC: &str = b"codc";
+ TR_LANGUAGE: &str = b"lang"; // BCP 47
+ TR_RATE: f64 = b"rate";
+ TR_BIT_DEPTH: u32 = b"bdep";
+ TR_CHANNELS: u32 = b"chnl";
+ TR_PIXEL_WIDTH: u32 = b"pwid";
+ TR_PIXEL_HEIGHT: u32 = b"phei";
- TRSOURCE_LOCAL_PATH: &str = 21 "local_path";
- TRSOURCE_LOCAL_TRACKNUM: u64 = 22 "local_tracknum";
+ TRSOURCE_LOCAL_PATH: &str = b"lpat";
+ TRSOURCE_LOCAL_TRACKNUM: u64 = b"ltrn";
- CH_START: f64 = 29 "start";
- CH_END: f64 = 30 "end";
- CH_NAME: &str = 31 "name";
+ CH_START: f64 = b"strt";
+ CH_END: f64 = b"end1";
+ CH_NAME: &str = b"name";
- PICT_COVER: &str = 45 "cover";
- PICT_BACKDROP: &str = 46 "backdrop";
+ PICT_COVER: &str = b"covr";
+ PICT_BACKDROP: &str = b"bdro";
- RTYP_IMDB: f64 = 47 "imdb";
- RTYP_TMDB: f64 = 48 "tmdb";
- RTYP_ROTTEN_TOMATOES: f64 = 49 "rotten_tomatoes";
- RTYP_METACRITIC: f64 = 50 "metacritic";
- RTYP_YOUTUBE_VIEWS: f64 = 51 "youtube_views";
- RTYP_YOUTUBE_LIKES: f64 = 52 "youtube_likes";
- RTYP_YOUTUBE_FOLLOWERS: f64 = 53 "youtube_followers";
- RTYP_TRAKT: f64 = 54 "trakt";
+ RTYP_IMDB: f64 = b"imdb";
+ RTYP_TMDB: f64 = b"tmdb";
+ RTYP_ROTTEN_TOMATOES: f64 = b"rtom";
+ RTYP_METACRITIC: f64 = b"mcri";
+ RTYP_YOUTUBE_VIEWS: f64 = b"ytvi";
+ RTYP_YOUTUBE_LIKES: f64 = b"ytli";
+ RTYP_YOUTUBE_SUBSCRIBERS: f64 = b"ytsu";
+ RTYP_TRAKT: f64 = b"trkt";
- IDENT_MUSICBRAINZ_RECORDING: &str = 55 "musicbrainz_recording";
- IDENT_MUSICBRAINZ_ARTIST: &str = 56 "musicbrainz_artist";
- IDENT_MUSICBRAINZ_RELEASE: &str = 57 "musicbrainz_release";
- IDENT_MUSICBRAINZ_RELEASE_GROUP: &str = 58 "musicbrainz_release_group";
- IDENT_ACOUST_ID_TRACK: &str = 59 "acoust_id_track";
- IDENT_YOUTUBE_VIDEO: &str = 60 "youtube_video";
- IDENT_YOUTUBE_CHANNEL: &str = 61 "youtube_channel";
- IDENT_YOUTUBE_CHANNEL_HANDLE: &str = 62 "youtube_channel_handle";
- IDENT_BANDCAMP: &str = 63 "bandcamp";
- IDENT_ISRC: &str = 64 "isrc";
- IDENT_BARCODE: &str = 65 "barcode";
- IDENT_TRAKT_MOVIE: &str = 66 "trakt_movie";
- IDENT_TRAKT_SHOW: &str = 67 "trakt_show";
- IDENT_TRAKT_SEASON: &str = 68 "trakt_season";
- IDENT_TRAKT_EPISODE: &str = 69 "trakt_episode";
- IDENT_IMDB: &str = 70 "imdb";
- IDENT_TMDB_SERIES: &str = 71 "tmdb_series";
- IDENT_TMDB_MOVIE: &str = 72 "tmdb_movie";
- IDENT_TVDB: &str = 73 "tvdb";
- IDENT_OMDB: &str = 74 "omdb";
- IDENT_VGMDB_ARTIST: &str = 75 "vgmdb_artist";
+ IDENT_MUSICBRAINZ_RECORDING: &str = b"mbrc";
+ IDENT_MUSICBRAINZ_ARTIST: &str = b"mbar";
+ IDENT_MUSICBRAINZ_RELEASE: &str = b"mbrl";
+ IDENT_MUSICBRAINZ_RELEASE_GROUP: &str = b"mbrg";
+ IDENT_ACOUST_ID_TRACK: &str = b"actr";
+ IDENT_YOUTUBE_VIDEO: &str = b"ytvi";
+ IDENT_YOUTUBE_CHANNEL: &str = b"ytc1";
+ IDENT_YOUTUBE_CHANNEL_HANDLE: &str = b"ytch";
+ IDENT_BANDCAMP: &str = b"bcmp";
+ IDENT_ISRC: &str = b"isrc";
+ IDENT_BARCODE: &str = b"barc";
+ IDENT_TRAKT_MOVIE: &str = b"trmv";
+ IDENT_TRAKT_SHOW: &str = b"trsh";
+ IDENT_TRAKT_SEASON: &str = b"trse";
+ IDENT_TRAKT_EPISODE: &str = b"trep";
+ IDENT_IMDB: &str = b"imdb";
+ IDENT_TMDB_SERIES: &str = b"tmse";
+ IDENT_TMDB_MOVIE: &str = b"tmmv";
+ IDENT_TVDB: &str = b"tvdb";
+ IDENT_OMDB: &str = b"omdb";
+ IDENT_VGMDB_ARTIST: &str = b"vgar";
}
-pub type Kind = Tag;
-
enums! {
- VISI_HIDDEN = 76 "hidden";
- VISI_REDUCED = 77 "reduced";
- VISI_VISIBLE = 78 "visible";
+ VISI_HIDDEN = b"hidn";
+ VISI_REDUCED = b"rdcd";
+ VISI_VISIBLE = b"visi";
- TRKIND_VIDEO = 79 "video";
- TRKIND_AUDIO = 80 "audio";
- TRKIND_TEXT = 81 "text";
- TRKIND_UNKNOWN = 82 "unknown";
+ TRKIND_VIDEO = b"vide";
+ TRKIND_AUDIO = b"audi";
+ TRKIND_TEXT = b"text";
+ TRKIND_UNKNOWN = b"unkn";
- KIND_MOVIE = 83 "movie";
- KIND_VIDEO = 84 "video";
- KIND_MUSIC = 85 "music";
- KIND_SHORTFORMVIDEO = 86 "shortformvideo";
- KIND_COLLECTION = 87 "collection";
- KIND_CHANNEL = 88 "channel";
- KIND_SHOW = 89 "show";
- KIND_SERIES = 90 "series";
- KIND_SEASON = 91 "season";
- KIND_EPISODE = 92 "episode";
+ KIND_MOVIE = b"movi";
+ KIND_VIDEO = b"vide";
+ KIND_MUSIC = b"musi";
+ KIND_SHORTFORMVIDEO = b"sfvi";
+ KIND_COLLECTION = b"coll";
+ KIND_CHANNEL = b"chnl";
+ KIND_SHOW = b"show";
+ KIND_SERIES = b"seri";
+ KIND_SEASON = b"sesn";
+ KIND_EPISODE = b"epsd";
- CRCAT_CAST = 93 "cast";
- CRCAT_WRITING = 94 "writing";
- CRCAT_DIRECTING = 95 "directing";
- CRCAT_ART = 96 "art";
- CRCAT_SOUND = 97 "sound";
- CRCAT_CAMERA = 98 "camera";
- CRCAT_LIGHTING = 99 "lighting";
- CRCAT_CREW = 100 "crew";
- CRCAT_EDITING = 101 "editing";
- CRCAT_PRODUCTION = 102 "production";
- CRCAT_VFX = 0x200b "vfx";
- CRCAT_COSTUME_MAKEUP = 103 "costume_makeup";
- CRCAT_CREATED_BY = 104 "created_by";
- CRCAT_PERFORMANCE = 105 "performance";
- CRCAT_INSTRUMENT = 106 "instrument";
- CRCAT_VOCAL = 107 "vocal";
- CRCAT_ARRANGER = 108 "arranger";
- CRCAT_PRODUCER = 109 "producer";
- CRCAT_ENGINEER = 110 "engineer";
+ CRCAT_CAST = b"cast";
+ CRCAT_WRITING = b"writ";
+ CRCAT_DIRECTING = b"dire";
+ CRCAT_ART = b"art1";
+ CRCAT_SOUND = b"sond";
+ CRCAT_CAMERA = b"came";
+ CRCAT_LIGHTING = b"ligh";
+ CRCAT_CREW = b"crew";
+ CRCAT_EDITING = b"edit";
+ CRCAT_PRODUCTION = b"prod";
+ CRCAT_VFX = b"vfx1";
+ CRCAT_COSTUME_MAKEUP = b"coma";
+ CRCAT_CREATED_BY = b"crby";
+ CRCAT_PERFORMANCE = b"perf";
+ CRCAT_INSTRUMENT = b"inst";
+ CRCAT_VOCAL = b"voca";
+ CRCAT_ARRANGER = b"arra";
+ CRCAT_PRODUCER = b"pro2";
+ CRCAT_ENGINEER = b"engi";
}