Update IGDB protobuf spec

This commit is contained in:
Simon Grimme
2023-10-10 21:07:07 +02:00
parent 81d05a33da
commit 7aeb876463
+287 -21
View File
@@ -4,8 +4,8 @@ package com.igdb.proto;
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
option java_outer_classname = "Igdb"; option java_outer_classname = "Igdb"; // Needed in order to be able to differentiate between Gameyfin and IGDB types in code (e.g. "Game" = Gameyfin, "Igdb.Game" = IGDB)
//option java_multiple_files = true; // Must be true because of private access in files. //option java_multiple_files = true; // Disabled because it clashes with java_outer_classname
option optimize_for = CODE_SIZE; option optimize_for = CODE_SIZE;
message Count { message Count {
@@ -71,24 +71,25 @@ enum AgeRatingRatingEnum {
USK_0 = 18; USK_0 = 18;
USK_6 = 19; USK_6 = 19;
USK_12 = 20; USK_12 = 20;
USK_18 = 21; USK_16 = 21;
GRAC_ALL = 22; USK_18 = 22;
GRAC_TWELVE = 23; GRAC_ALL = 23;
GRAC_FIFTEEN = 24; GRAC_TWELVE = 24;
GRAC_EIGHTEEN = 25; GRAC_FIFTEEN = 25;
GRAC_TESTING = 26; GRAC_EIGHTEEN = 26;
CLASS_IND_L = 27; GRAC_TESTING = 27;
CLASS_IND_TEN = 28; CLASS_IND_L = 28;
CLASS_IND_TWELVE = 29; CLASS_IND_TEN = 29;
CLASS_IND_FOURTEEN = 30; CLASS_IND_TWELVE = 30;
CLASS_IND_SIXTEEN = 31; CLASS_IND_FOURTEEN = 31;
CLASS_IND_EIGHTEEN = 32; CLASS_IND_SIXTEEN = 32;
ACB_G = 33; CLASS_IND_EIGHTEEN = 33;
ACB_PG = 34; ACB_G = 34;
ACB_M = 35; ACB_PG = 35;
ACB_MA15 = 36; ACB_M = 36;
ACB_R18 = 37; ACB_MA15 = 37;
ACB_RC = 38; ACB_R18 = 38;
ACB_RC = 39;
} }
message AgeRatingContentDescriptionResult { message AgeRatingContentDescriptionResult {
@@ -97,11 +98,101 @@ message AgeRatingContentDescriptionResult {
message AgeRatingContentDescription { message AgeRatingContentDescription {
uint64 id = 1; uint64 id = 1;
AgeRatingRatingEnum category = 2; AgeRatingContentDescriptionCategoryEnum category = 2;
string description = 3; string description = 3;
string checksum = 4; string checksum = 4;
} }
enum AgeRatingContentDescriptionCategoryEnum {
AGERATINGCONTENTDESCRIPTION_CATEGORY_NULL = 0;
ESRB_ALCOHOL_REFERENCE = 1;
ESRB_ANIMATED_BLOOD = 2;
ESRB_BLOOD = 3;
ESRB_BLOOD_AND_GORE = 4;
ESRB_CARTOON_VIOLENCE = 5;
ESRB_COMIC_MISCHIEF = 6;
ESRB_CRUDE_HUMOR = 7;
ESRB_DRUG_REFERENCE = 8;
ESRB_FANTASY_VIOLENCE = 9;
ESRB_INTENSE_VIOLENCE = 10;
ESRB_LANGUAGE = 11;
ESRB_LYRICS = 12;
ESRB_MATURE_HUMOR = 13;
ESRB_NUDITY = 14;
ESRB_PARTIAL_NUDITY = 15;
ESRB_REAL_GAMBLING = 16;
ESRB_SEXUAL_CONTENT = 17;
ESRB_SEXUAL_THEMES = 18;
ESRB_SEXUAL_VIOLENCE = 19;
ESRB_SIMULATED_GAMBLING = 20;
ESRB_STRONG_LANGUAGE = 21;
ESRB_STRONG_LYRICS = 22;
ESRB_STRONG_SEXUAL_CONTENT = 23;
ESRB_SUGGESTIVE_THEMES = 24;
ESRB_TOBACCO_REFERENCE = 25;
ESRB_USE_OF_ALCOHOL = 26;
ESRB_USE_OF_DRUGS = 27;
ESRB_USE_OF_TOBACCO = 28;
ESRB_VIOLENCE = 29;
ESRB_VIOLENT_REFERENCES = 30;
ESRB_ANIMATED_VIOLENCE = 31;
ESRB_MILD_LANGUAGE = 32;
ESRB_MILD_VIOLENCE = 33;
ESRB_USE_OF_DRUGS_AND_ALCOHOL = 34;
ESRB_DRUG_AND_ALCOHOL_REFERENCE = 35;
ESRB_MILD_SUGGESTIVE_THEMES = 36;
ESRB_MILD_CARTOON_VIOLENCE = 37;
ESRB_MILD_BLOOD = 38;
ESRB_REALISTIC_BLOOD_AND_GORE = 39;
ESRB_REALISTIC_VIOLENCE = 40;
ESRB_ALCOHOL_AND_TOBACCO_REFERENCE = 41;
ESRB_MATURE_SEXUAL_THEMES = 42;
ESRB_MILD_ANIMATED_VIOLENCE = 43;
ESRB_MILD_SEXUAL_THEMES = 44;
ESRB_USE_OF_ALCOHOL_AND_TOBACCO = 45;
ESRB_ANIMATED_BLOOD_AND_GORE = 46;
ESRB_MILD_FANTASY_VIOLENCE = 47;
ESRB_MILD_LYRICS = 48;
ESRB_REALISTIC_BLOOD = 49;
PEGI_VIOLENCE = 50;
PEGI_SEX = 51;
PEGI_DRUGS = 52;
PEGI_FEAR = 53;
PEGI_DISCRIMINATION = 54;
PEGI_BAD_LANGUAGE = 55;
PEGI_GAMBLING = 56;
PEGI_ONLINE_GAMEPLAY = 57;
PEGI_IN_GAME_PURCHASES = 58;
CERO_LOVE = 59;
CERO_SEXUAL_CONTENT = 60;
CERO_VIOLENCE = 61;
CERO_HORROR = 62;
CERO_DRINKING_SMOKING = 63;
CERO_GAMBLING = 64;
CERO_CRIME = 65;
CERO_CONTROLLED_SUBSTANCES = 66;
CERO_LANGUAGES_AND_OTHERS = 67;
GRAC_SEXUALITY = 68;
GRAC_VIOLENCE = 69;
GRAC_FEAR_HORROR_THREATENING = 70;
GRAC_LANGUAGE = 71;
GRAC_ALCOHOL_TOBACCO_DRUG = 72;
GRAC_CRIME_ANTI_SOCIAL = 73;
GRAC_GAMBLING = 74;
CLASS_IND_VIOLENCIA = 75;
CLASS_IND_VIOLENCIA_EXTREMA = 76;
CLASS_IND_CONTEUDO_SEXUAL = 77;
CLASS_IND_NUDEZ = 78;
CLASS_IND_SEXO = 79;
CLASS_IND_SEXO_EXPLICITO = 80;
CLASS_IND_DROGAS = 81;
CLASS_IND_DROGAS_LICITAS = 82;
CLASS_IND_DROGAS_ILICITAS = 83;
CLASS_IND_LINGUAGEM_IMPROPRIA = 84;
CLASS_IND_ATOS_CRIMINOSOS = 85;
}
message AlternativeNameResult { message AlternativeNameResult {
repeated AlternativeName alternativenames = 1; repeated AlternativeName alternativenames = 1;
} }
@@ -299,6 +390,73 @@ message Cover {
string url = 7; string url = 7;
int32 width = 8; int32 width = 8;
string checksum = 9; string checksum = 9;
GameLocalization game_localization = 10;
}
message EventResult {
repeated Event events = 1;
}
message Event {
uint64 id = 1;
string name = 2;
string description = 3;
string slug = 4;
EventLogo event_logo = 5;
repeated EventEventCategoriesEnum event_categories = 6;
google.protobuf.Timestamp start_time = 7;
string time_zone = 8;
google.protobuf.Timestamp end_time = 9;
string live_stream_url = 10;
repeated Game games = 11;
repeated GameVideo videos = 12;
repeated EventNetwork event_networks = 13;
google.protobuf.Timestamp created_at = 14;
google.protobuf.Timestamp updated_at = 15;
string checksum = 16;
}
enum EventEventCategoriesEnum {
EVENT_EVENT_CATEGORIES_NULL = 0;
INDUSTRY_CONFERENCE = 1;
STREAM_EVENT = 2;
AWARD = 3;
GAME_EXPO = 4;
E_SPORT = 5;
OTHER_MISC = 6;
}
message EventLogoResult {
repeated EventLogo eventlogos = 1;
}
message EventLogo {
uint64 id = 1;
Event event = 2;
bool alpha_channel = 3;
bool animated = 4;
int32 height = 5;
string image_id = 6;
string url = 7;
int32 width = 8;
google.protobuf.Timestamp created_at = 9;
google.protobuf.Timestamp updated_at = 10;
string checksum = 11;
}
message EventNetworkResult {
repeated EventNetwork eventnetworks = 1;
}
message EventNetwork {
uint64 id = 1;
Event event = 2;
string url = 3;
NetworkType network_type = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
string checksum = 7;
} }
message ExternalGameResult { message ExternalGameResult {
@@ -336,6 +494,14 @@ enum ExternalGameCategoryEnum {
EXTERNALGAME_AMAZON_ADG = 23; EXTERNALGAME_AMAZON_ADG = 23;
EXTERNALGAME_EPIC_GAME_STORE = 26; EXTERNALGAME_EPIC_GAME_STORE = 26;
EXTERNALGAME_OCULUS = 28; EXTERNALGAME_OCULUS = 28;
EXTERNALGAME_UTOMIK = 29;
EXTERNALGAME_ITCH_IO = 30;
EXTERNALGAME_XBOX_MARKETPLACE = 31;
EXTERNALGAME_KARTRIDGE = 32;
EXTERNALGAME_PLAYSTATION_STORE_US = 36;
EXTERNALGAME_FOCUS_ENTERTAINMENT = 37;
EXTERNALGAME_XBOX_GAME_PASS_ULTIMATE_CLOUD = 54;
EXTERNALGAME_GAMEJOLT = 55;
} }
@@ -420,6 +586,8 @@ message Game {
repeated Game expanded_games = 53; repeated Game expanded_games = 53;
repeated Game ports = 54; repeated Game ports = 54;
repeated Game forks = 55; repeated Game forks = 55;
repeated LanguageSupport language_supports = 56;
repeated GameLocalization game_localizations = 57;
} }
@@ -437,6 +605,8 @@ enum GameCategoryEnum {
EXPANDED_GAME = 10; EXPANDED_GAME = 10;
PORT = 11; PORT = 11;
FORK = 12; FORK = 12;
PACK = 13;
UPDATE = 14;
} }
@@ -484,6 +654,21 @@ message GameEngineLogo {
string checksum = 8; string checksum = 8;
} }
message GameLocalizationResult {
repeated GameLocalization gamelocalizations = 1;
}
message GameLocalization {
uint64 id = 1;
string name = 2;
Cover cover = 3;
Game game = 4;
Region region = 5;
google.protobuf.Timestamp created_at = 6;
google.protobuf.Timestamp updated_at = 7;
string checksum = 8;
}
message GameModeResult { message GameModeResult {
repeated GameMode gamemodes = 1; repeated GameMode gamemodes = 1;
} }
@@ -610,6 +795,46 @@ message Keyword {
string checksum = 7; string checksum = 7;
} }
message LanguageResult {
repeated Language languages = 1;
}
message Language {
uint64 id = 1;
string name = 2;
string native_name = 3;
string locale = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
string checksum = 7;
}
message LanguageSupportResult {
repeated LanguageSupport languagesupports = 1;
}
message LanguageSupport {
uint64 id = 1;
Game game = 2;
Language language = 3;
LanguageSupportType language_support_type = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
string checksum = 7;
}
message LanguageSupportTypeResult {
repeated LanguageSupportType languagesupporttypes = 1;
}
message LanguageSupportType {
uint64 id = 1;
string name = 2;
google.protobuf.Timestamp created_at = 3;
google.protobuf.Timestamp updated_at = 4;
string checksum = 5;
}
message MultiplayerModeResult { message MultiplayerModeResult {
repeated MultiplayerMode multiplayermodes = 1; repeated MultiplayerMode multiplayermodes = 1;
} }
@@ -632,6 +857,19 @@ message MultiplayerMode {
string checksum = 15; string checksum = 15;
} }
message NetworkTypeResult {
repeated NetworkType networktypes = 1;
}
message NetworkType {
uint64 id = 1;
string name = 2;
repeated EventNetwork event_networks = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
string checksum = 6;
}
message PlatformResult { message PlatformResult {
repeated Platform platforms = 1; repeated Platform platforms = 1;
} }
@@ -792,6 +1030,20 @@ message PlayerPerspective {
string checksum = 7; string checksum = 7;
} }
message RegionResult {
repeated Region regions = 1;
}
message Region {
uint64 id = 1;
string name = 2;
string category = 3;
string identifier = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
string checksum = 7;
}
message ReleaseDateResult { message ReleaseDateResult {
repeated ReleaseDate releasedates = 1; repeated ReleaseDate releasedates = 1;
} }
@@ -809,6 +1061,20 @@ message ReleaseDate {
google.protobuf.Timestamp updated_at = 10; google.protobuf.Timestamp updated_at = 10;
int32 y = 11; int32 y = 11;
string checksum = 12; string checksum = 12;
ReleaseDateStatus status = 13;
}
message ReleaseDateStatusResult {
repeated ReleaseDateStatus releasedatestatuses = 1;
}
message ReleaseDateStatus {
uint64 id = 1;
string name = 2;
string description = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
string checksum = 6;
} }
message ScreenshotResult { message ScreenshotResult {