diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-02-18 03:41:05 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-02-18 03:41:05 +0100 |
| commit | b39e1a10c731fd0e61a566a0668abc33ae821b49 (patch) | |
| tree | 6e2e48b5e56a2cf4b4f966b6f2e014c446a242a1 /common/src/node.rs | |
| parent | 95606a9deed45ae285c2d4dee01de9d21a43b044 (diff) | |
| download | jellything-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.rs | 212 |
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"; } |