aboutsummaryrefslogtreecommitdiff
path: root/common/src/node.rs
blob: 60544e250baca4ac6da1198bf113dfc09965dc3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
    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: &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";

    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";

    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;

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";
}