aboutsummaryrefslogtreecommitdiff
path: root/common/src/node.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-22 03:25:26 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-22 03:25:26 +0100
commit10cdaaa30a6b4a187797434dc8d959780f0e8fbf (patch)
tree6c050b5cfec8a06de09fc4eb8ce5d20ff761a169 /common/src/node.rs
parentda27cc2f457f362f11f65b4e06e3d9eca09d1344 (diff)
downloadjellything-10cdaaa30a6b4a187797434dc8d959780f0e8fbf.tar
jellything-10cdaaa30a6b4a187797434dc8d959780f0e8fbf.tar.bz2
jellything-10cdaaa30a6b4a187797434dc8d959780f0e8fbf.tar.zst
start on typedef for renderer types
Diffstat (limited to 'common/src/node.rs')
-rw-r--r--common/src/node.rs140
1 files changed, 140 insertions, 0 deletions
diff --git a/common/src/node.rs b/common/src/node.rs
new file mode 100644
index 0000000..3163dc5
--- /dev/null
+++ b/common/src/node.rs
@@ -0,0 +1,140 @@
+/*
+ This file is part of jellything (https://codeberg.org/metamuffin/jellything)
+ which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
+ Copyright (C) 2025 metamuffin <metamuffin.org>
+*/
+
+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";
+
+ CR_NODE: u64 = 34 "node";
+ CR_KIND: Tag = 35 "kind";
+ CR_ROLE: &str = 36 "role"; // multi
+
+ TR_KIND: Tag = 16 "kind";
+ TR_SOURCE: Object = 17 "source";
+ TR_NAME: &str = 18 "name";
+ TR_CODEC: &str = 19 "codec";
+ TR_LANGUAGE: Tag = 20 "language";
+ 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";
+
+ TRSOURCE_LOCAL_PATH: &str = 21 "local_path";
+ TRSOURCE_LOCAL_TRACKNUM: u64 = 22 "local_tracknum";
+
+ CH_START: f64 = 29 "start";
+ CH_END: f64 = 30 "end";
+ CH_NAME: &str = 31 "name";
+
+ LANG_UND: &str = 40 "und";
+ LANG_NATIVE: &str = 41 "native";
+ LANG_ENG: &str = 42 "eng";
+ LANG_DEU: &str = 43 "deu";
+ LANG_JPN: &str = 44 "jpn";
+
+ PICT_COVER: &str = 45 "cover";
+ PICT_BACKDROP: &str = 46 "backdrop";
+
+ 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";
+
+ 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";
+
+}
+
+pub type Kind = Tag;
+pub type Language = Tag;
+
+enums! {
+ VISI_HIDDEN = 76 "hidden";
+ VISI_REDUCED = 77 "reduced";
+ VISI_VISIBLE = 78 "visible";
+
+ TRKIND_VIDEO = 79 "video";
+ TRKIND_AUDIO = 80 "audio";
+ TRKIND_TEXT = 81 "text";
+ TRKIND_UNKNOWN = 82 "unknown";
+
+ 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";
+
+ 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";
+}