diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-22 03:25:26 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-22 03:25:26 +0100 |
| commit | 10cdaaa30a6b4a187797434dc8d959780f0e8fbf (patch) | |
| tree | 6c050b5cfec8a06de09fc4eb8ce5d20ff761a169 /common/src/node.rs | |
| parent | da27cc2f457f362f11f65b4e06e3d9eca09d1344 (diff) | |
| download | jellything-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.rs | 140 |
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"; +} |