diff --git a/README.md b/README.md
index c635b9d..27c4cfd 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[](https://central.sonatype.com/artifact/io.github.husnjak/igdb-api-jvm/1.2.0)
+[](https://central.sonatype.com/artifact/io.github.husnjak/igdb-api-jvm/1.3.0)
[](https://jitpack.io/#husnjak/IGDB-API-JVM)
# IGDB API-JVM (V4)
A Kotlin wrapper for the IGDB.com Video Game Database API.
@@ -34,7 +34,7 @@ __Maven__
io.github.husnjak
igdb-api-jvm
- 1.2.0
+ 1.3.0
```
@@ -42,7 +42,7 @@ __Gradle__
``` gradle
dependencies {
- implementation 'io.github.husnjak:igdb-api-jvm:1.2.0'
+ implementation 'io.github.husnjak:igdb-api-jvm:1.3.0'
}
```
diff --git a/build.gradle.kts b/build.gradle.kts
index 6f41eaf..fef191c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,7 +2,7 @@ import com.google.protobuf.gradle.GenerateProtoTask
import de.undercouch.gradle.tasks.download.Download
plugins {
- kotlin("jvm") version "1.9.24"
+ kotlin("jvm") version "2.1.10"
id("org.jetbrains.dokka") version "1.9.20"
id("maven-publish")
id("signing")
@@ -14,9 +14,9 @@ group = "io.github.husnjak"
version = findProperty("version") as String
val fuelVersion = "2.3.1"
-val protobufJavaVersion = "4.27.2"
-val junitJupiterVersion = "5.10.0"
-val junitPlatformVersion = "1.10.0"
+val protobufJavaVersion = "4.29.3"
+val junitJupiterVersion = "5.12.0"
+val junitPlatformVersion = "1.12.0"
val protobufPluginVersion = "0.9.4"
repositories {
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 19cfad9..2733ed5 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/src/main/kotlin/com/api/igdb/request/JsonRequest.kt b/src/main/kotlin/com/api/igdb/request/JsonRequest.kt
index 73953d9..bd27103 100644
--- a/src/main/kotlin/com/api/igdb/request/JsonRequest.kt
+++ b/src/main/kotlin/com/api/igdb/request/JsonRequest.kt
@@ -9,11 +9,26 @@ fun IGDBWrapper.jsonAgeRatings(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.AGE_RATINGS, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonAgeRatingCategories(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.AGE_RATING_CATEGORIES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonAgeRatingContentDescriptions(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.AGE_RATING_CONTENT_DESCRIPTIONS, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonAgeRatingContentDescriptionsV2(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.AGE_RATING_CONTENT_DESCRIPTIONS_V2, APICalypse.buildQuery())
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonAgeRatingOrganizations(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.AGE_RATING_ORGANIZATIONS, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonAlternativeNames(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.ALTERNATIVE_NAMES, APICalypse.buildQuery())
@@ -29,6 +44,16 @@ fun IGDBWrapper.jsonCharacters(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.CHARACTERS, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonCharacterGenders(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.CHARACTER_GENDERS, APICalypse.buildQuery())
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonCharacterSpecies(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.CHARACTER_SPECIES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonCollections(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.COLLECTIONS, APICalypse.buildQuery())
@@ -44,6 +69,11 @@ fun IGDBWrapper.jsonCompanies(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.COMPANIES, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonCompanyStatuses(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.COMPANY_STATUS, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonCompanyWebsites(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.COMPANY_WEBSITES, APICalypse.buildQuery())
@@ -59,11 +89,21 @@ fun IGDBWrapper.jsonCovers(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.COVERS, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonDateFormats(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.DATE_FORMATS, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonExternalGames(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.EXTERNAL_GAMES, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonExternalGameSources(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.EXTERNAL_GAMES_SOURCES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonFranchises(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.FRANCHISES, APICalypse.buildQuery())
@@ -94,6 +134,21 @@ fun IGDBWrapper.jsonGameModes(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.GAME_MODES, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonGameReleaseFormats(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.GAME_RELEASE_FORMATS, APICalypse.buildQuery())
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonGameStatuses(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.GAME_STATUSES, APICalypse.buildQuery())
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonGameTypes(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.GAME_TYPES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonGameVersion(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.GAME_VERSIONS, APICalypse.buildQuery())
@@ -159,6 +214,11 @@ fun IGDBWrapper.jsonPlatformLogos(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.PLATFORM_LOGOS, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonPlatformTypes(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.PLATFORM_TYPES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonPlatformVersions(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.PLATFORM_VERSIONS, APICalypse.buildQuery())
@@ -199,6 +259,11 @@ fun IGDBWrapper.jsonReleaseDates(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.RELEASE_DATES, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonReleaseDateRegions(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.RELEASE_DATE_REGIONS, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonScreenshots(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.SCREENSHOTS, APICalypse.buildQuery())
@@ -219,6 +284,11 @@ fun IGDBWrapper.jsonWebsites(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.WEBSITES, APICalypse.buildQuery())
}
+@Throws(RequestException::class)
+fun IGDBWrapper.jsonWebsiteTypes(APICalypse: APICalypse): String {
+ return apiJsonRequest(Endpoints.WEBSITE_TYPES, APICalypse.buildQuery())
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.jsonEvents(APICalypse: APICalypse): String {
return apiJsonRequest(Endpoints.EVENTS, APICalypse.buildQuery())
diff --git a/src/main/kotlin/com/api/igdb/request/ProtoRequest.kt b/src/main/kotlin/com/api/igdb/request/ProtoRequest.kt
index ad10eb9..8905983 100644
--- a/src/main/kotlin/com/api/igdb/request/ProtoRequest.kt
+++ b/src/main/kotlin/com/api/igdb/request/ProtoRequest.kt
@@ -13,12 +13,30 @@ fun IGDBWrapper.ageRatings(APICalypse: APICalypse): List {
return AgeRatingResult.parseFrom(bytes).ageratingsList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.ageRatingCategories(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.AGE_RATING_CATEGORIES, APICalypse.buildQuery())
+ return AgeRatingCategoryResult.parseFrom(bytes).ageratingcategoriesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.ageRatingContentDescriptions(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.AGE_RATING_CONTENT_DESCRIPTIONS, APICalypse.buildQuery())
return AgeRatingContentDescriptionResult.parseFrom(bytes).ageratingcontentdescriptionsList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.ageRatingContentDescriptionsV2(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.AGE_RATING_CONTENT_DESCRIPTIONS_V2, APICalypse.buildQuery())
+ return AgeRatingContentDescriptionV2Result.parseFrom(bytes).ageratingcontentdescriptionsv2List
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.ageRatingOrganizations(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.AGE_RATING_ORGANIZATIONS, APICalypse.buildQuery())
+ return AgeRatingOrganizationResult.parseFrom(bytes).ageratingorganizationsList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.alternativeNames(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.ALTERNATIVE_NAMES, APICalypse.buildQuery())
@@ -37,6 +55,18 @@ fun IGDBWrapper.characters(APICalypse: APICalypse): List {
return CharacterResult.parseFrom(bytes).charactersList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.characterGenders(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.CHARACTER_GENDERS, APICalypse.buildQuery())
+ return CharacterGenderResult.parseFrom(bytes).charactergendersList
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.characterSpecies(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.CHARACTER_SPECIES, APICalypse.buildQuery())
+ return CharacterSpecieResult.parseFrom(bytes).characterspeciesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.collections(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.COLLECTIONS, APICalypse.buildQuery())
@@ -55,6 +85,12 @@ fun IGDBWrapper.companies(APICalypse: APICalypse): List {
return CompanyResult.parseFrom(bytes).companiesList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.companyStatuses(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.COMPANIES, APICalypse.buildQuery())
+ return CompanyStatusResult.parseFrom(bytes).companystatusesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.companyWebsites(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.COMPANY_WEBSITES, APICalypse.buildQuery())
@@ -73,12 +109,24 @@ fun IGDBWrapper.covers(APICalypse: APICalypse): List {
return CoverResult.parseFrom(bytes).coversList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.dateFormats(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.COVERS, APICalypse.buildQuery())
+ return DateFormatResult.parseFrom(bytes).dateformatsList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.externalGames(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.EXTERNAL_GAMES, APICalypse.buildQuery())
return ExternalGameResult.parseFrom(bytes).externalgamesList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.externalGameSources(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.EXTERNAL_GAMES, APICalypse.buildQuery())
+ return ExternalGameSourceResult.parseFrom(bytes).externalgamesourcesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.franchises(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.FRANCHISES, APICalypse.buildQuery())
@@ -115,6 +163,24 @@ fun IGDBWrapper.gameModes(APICalypse: APICalypse): List {
return GameModeResult.parseFrom(bytes).gamemodesList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.gameReleaseFormats(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.GAME_RELEASE_FORMATS, APICalypse.buildQuery())
+ return GameReleaseFormatResult.parseFrom(bytes).gamereleaseformatsList
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.gameStatuses(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.GAME_MODES, APICalypse.buildQuery())
+ return GameStatusResult.parseFrom(bytes).gamestatusesList
+}
+
+@Throws(RequestException::class)
+fun IGDBWrapper.gameTypes(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.GAME_MODES, APICalypse.buildQuery())
+ return GameTypeResult.parseFrom(bytes).gametypesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.gameVersion(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.GAME_VERSIONS, APICalypse.buildQuery())
@@ -193,6 +259,12 @@ fun IGDBWrapper.platformLogos(APICalypse: APICalypse): List {
return PlatformLogoResult.parseFrom(bytes).platformlogosList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.platformTypes(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.PLATFORM_LOGOS, APICalypse.buildQuery())
+ return PlatformTypeResult.parseFrom(bytes).platformtypesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.platformVersions(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.PLATFORM_VERSIONS, APICalypse.buildQuery())
@@ -241,6 +313,12 @@ fun IGDBWrapper.releaseDates(APICalypse: APICalypse): List {
return ReleaseDateResult.parseFrom(bytes).releasedatesList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.releaseDateRegions(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.RELEASE_DATES, APICalypse.buildQuery())
+ return ReleaseDateRegionResult.parseFrom(bytes).releasedateregionsList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.screenshots(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.SCREENSHOTS, APICalypse.buildQuery())
@@ -265,6 +343,12 @@ fun IGDBWrapper.websites(APICalypse: APICalypse): List {
return WebsiteResult.parseFrom(bytes).websitesList
}
+@Throws(RequestException::class)
+fun IGDBWrapper.websiteTypes(APICalypse: APICalypse): List {
+ val bytes = apiProtoRequest(Endpoints.WEBSITES, APICalypse.buildQuery())
+ return WebsiteTypeResult.parseFrom(bytes).websitetypesList
+}
+
@Throws(RequestException::class)
fun IGDBWrapper.events(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.EVENTS, APICalypse.buildQuery())
@@ -277,7 +361,6 @@ fun IGDBWrapper.eventLogos(APICalypse: APICalypse): List {
return EventLogoResult.parseFrom(bytes).eventlogosList
}
-
@Throws(RequestException::class)
fun IGDBWrapper.eventNetworks(APICalypse: APICalypse): List {
val bytes = apiProtoRequest(Endpoints.EVENT_NETWORKS, APICalypse.buildQuery())
@@ -328,6 +411,6 @@ fun IGDBWrapper.popularityTypes(APICalypse: APICalypse): List {
@Throws(RequestException::class)
fun IGDBWrapper.popularityPrimitives(APICalypse: APICalypse): List {
- val bytes = apiProtoRequest(Endpoints.COLLECTION_MEMBERSHIP_TYPES, APICalypse.buildQuery())
+ val bytes = apiProtoRequest(Endpoints.POPULARITY_PRIMITIVES, APICalypse.buildQuery())
return PopularityPrimitiveResult.parseFrom(bytes).popularityprimitivesList
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/api/igdb/utils/Endpoints.kt b/src/main/kotlin/com/api/igdb/utils/Endpoints.kt
index 8e494ff..3802cc7 100644
--- a/src/main/kotlin/com/api/igdb/utils/Endpoints.kt
+++ b/src/main/kotlin/com/api/igdb/utils/Endpoints.kt
@@ -4,15 +4,16 @@ package com.api.igdb.utils
* The Public Endpoint Enum class holds all of the accessible IGDB API Endpoints
*/
enum class Endpoints : Endpoint {
- AGE_RATINGS, AGE_RATING_CONTENT_DESCRIPTIONS, ALTERNATIVE_NAMES, ARTWORKS, CHARACTERS, CHARACTER_MUG_SHOTS,
- COLLECTIONS, COMPANIES, COMPANY_WEBSITES, COMPANY_LOGOS, COVERS, EXTERNAL_GAMES, FRANCHISES, GAMES, GAME_ENGINES,
- GAME_ENGINE_LOGOS, GAME_LOCALIZATIONS, GAME_MODES, GAME_VERSIONS, GAME_VERSION_FEATURES, GAME_VERSION_FEATURE_VALUES, GAME_VIDEOS,
- GENRES, INVOLVED_COMPANIES, KEYWORDS, LANGUAGES, LANGUAGE_SUPPORTS, LANGUAGE_SUPPORT_TYPES, MULTIPLAYER_MODES,
- PLATFORMS, PLATFORM_LOGOS, PLATFORM_VERSIONS, PLATFORM_VERSION_COMPANIES, PLATFORM_VERSION_RELEASE_DATES,
- PLATFORM_WEBSITES, PLAYER_PERSPECTIVES, PLATFORM_FAMILIES, REGIONS, RELEASE_DATES, SCREENSHOTS, SEARCH, THEMES,
- WEBSITES, EVENTS, EVENT_LOGOS, EVENT_NETWORKS, NETWORK_TYPES, COLLECTION_RELATIONS, COLLECTION_RELATION_TYPES,
- COLLECTION_TYPES, COLLECTION_MEMBERSHIPS, COLLECTION_MEMBERSHIP_TYPES, POPULARITY_TYPES, POPULARITY_PRIMITIVES;
-
+ AGE_RATING_CATEGORIES, AGE_RATING_CONTENT_DESCRIPTIONS, AGE_RATING_CONTENT_DESCRIPTIONS_V2, AGE_RATING_ORGANIZATIONS, AGE_RATINGS,
+ ALTERNATIVE_NAMES, ARTWORKS, CHARACTERS, CHARACTER_GENDERS, CHARACTER_MUG_SHOTS, CHARACTER_SPECIES, COLLECTION_MEMBERSHIPS,
+ COLLECTION_MEMBERSHIP_TYPES, COLLECTION_RELATIONS, COLLECTION_RELATION_TYPES, COLLECTION_TYPES, COLLECTIONS, COMPANIES,
+ COMPANY_LOGOS, COMPANY_STATUS, COMPANY_WEBSITES, COVERS, DATE_FORMATS, EVENTS, EVENT_LOGOS,
+ EVENT_NETWORKS, EXTERNAL_GAMES, EXTERNAL_GAMES_SOURCES, FRANCHISES, GAMES, GAME_ENGINES, GAME_ENGINE_LOGOS, GAME_LOCALIZATIONS,
+ GAME_MODES, GAME_RELEASE_FORMATS, GAME_STATUSES, GAME_TYPES, GAME_VERSIONS, GAME_VERSION_FEATURES, GAME_VERSION_FEATURE_VALUES,
+ GAME_VIDEOS, GENRES, INVOLVED_COMPANIES, KEYWORDS, LANGUAGES, LANGUAGE_SUPPORTS, LANGUAGE_SUPPORT_TYPES, MULTIPLAYER_MODES,
+ NETWORK_TYPES, PLATFORMS, PLATFORM_FAMILIES, PLATFORM_LOGOS, PLATFORM_TYPES, PLATFORM_VERSIONS, PLATFORM_VERSION_COMPANIES,
+ PLATFORM_VERSION_RELEASE_DATES, PLATFORM_WEBSITES, PLAYER_PERSPECTIVES, POPULARITY_PRIMITIVES, POPULARITY_TYPES, REGIONS,
+ RELEASE_DATES, RELEASE_DATE_REGIONS, SCREENSHOTS, SEARCH, THEMES, WEBSITES, WEBSITE_TYPES;
override fun url(): String {
return "/${this.name.lowercase()}"
diff --git a/src/resources/com/api/igdb/igdbproto.proto b/src/resources/com/api/igdb/igdbproto.proto
index 6150fbe..c5ecadb 100644
--- a/src/resources/com/api/igdb/igdbproto.proto
+++ b/src/resources/com/api/igdb/igdbproto.proto
@@ -28,68 +28,84 @@ message AgeRatingResult {
message AgeRating {
uint64 id = 1;
- AgeRatingCategoryEnum category = 2;
+ AgeRatingCategoryEnum category = 2 [deprecated = true];
repeated AgeRatingContentDescription content_descriptions = 3;
- AgeRatingRatingEnum rating = 4;
+ AgeRatingRatingEnum rating = 4 [deprecated = true];
string rating_cover_url = 5;
string synopsis = 6;
string checksum = 7;
+ AgeRatingOrganization organization = 8;
+ AgeRatingCategory rating_category = 9;
+ repeated AgeRatingContentDescriptionV2 rating_content_descriptions = 10;
}
enum AgeRatingCategoryEnum {
- AGERATING_CATEGORY_NULL = 0;
- ESRB = 1;
- PEGI = 2;
- CERO = 3;
- USK = 4;
- GRAC = 5;
- CLASS_IND = 6;
- ACB = 7;
+ AGERATING_CATEGORY_NULL = 0 [deprecated = true];
+ ESRB = 1 [deprecated = true];
+ PEGI = 2 [deprecated = true];
+ CERO = 3 [deprecated = true];
+ USK = 4 [deprecated = true];
+ GRAC = 5 [deprecated = true];
+ CLASS_IND = 6 [deprecated = true];
+ ACB = 7 [deprecated = true];
}
enum AgeRatingRatingEnum {
- AGERATING_RATING_NULL = 0;
- THREE = 1;
- SEVEN = 2;
- TWELVE = 3;
- SIXTEEN = 4;
- EIGHTEEN = 5;
- RP = 6;
- EC = 7;
- E = 8;
- E10 = 9;
- T = 10;
- M = 11;
- AO = 12;
- CERO_A = 13;
- CERO_B = 14;
- CERO_C = 15;
- CERO_D = 16;
- CERO_Z = 17;
- USK_0 = 18;
- USK_6 = 19;
- USK_12 = 20;
- USK_16 = 21;
- USK_18 = 22;
- GRAC_ALL = 23;
- GRAC_TWELVE = 24;
- GRAC_FIFTEEN = 25;
- GRAC_EIGHTEEN = 26;
- GRAC_TESTING = 27;
- CLASS_IND_L = 28;
- CLASS_IND_TEN = 29;
- CLASS_IND_TWELVE = 30;
- CLASS_IND_FOURTEEN = 31;
- CLASS_IND_SIXTEEN = 32;
- CLASS_IND_EIGHTEEN = 33;
- ACB_G = 34;
- ACB_PG = 35;
- ACB_M = 36;
- ACB_MA15 = 37;
- ACB_R18 = 38;
- ACB_RC = 39;
+ AGERATING_RATING_NULL = 0 [deprecated = true];
+ THREE = 1 [deprecated = true];
+ SEVEN = 2 [deprecated = true];
+ TWELVE = 3 [deprecated = true];
+ SIXTEEN = 4 [deprecated = true];
+ EIGHTEEN = 5 [deprecated = true];
+ RP = 6 [deprecated = true];
+ EC = 7 [deprecated = true];
+ E = 8 [deprecated = true];
+ E10 = 9 [deprecated = true];
+ T = 10 [deprecated = true];
+ M = 11 [deprecated = true];
+ AO = 12 [deprecated = true];
+ CERO_A = 13 [deprecated = true];
+ CERO_B = 14 [deprecated = true];
+ CERO_C = 15 [deprecated = true];
+ CERO_D = 16 [deprecated = true];
+ CERO_Z = 17 [deprecated = true];
+ USK_0 = 18 [deprecated = true];
+ USK_6 = 19 [deprecated = true];
+ USK_12 = 20 [deprecated = true];
+ USK_16 = 21 [deprecated = true];
+ USK_18 = 22 [deprecated = true];
+ GRAC_ALL = 23 [deprecated = true];
+ GRAC_TWELVE = 24 [deprecated = true];
+ GRAC_FIFTEEN = 25 [deprecated = true];
+ GRAC_EIGHTEEN = 26 [deprecated = true];
+ GRAC_TESTING = 27 [deprecated = true];
+ CLASS_IND_L = 28 [deprecated = true];
+ CLASS_IND_TEN = 29 [deprecated = true];
+ CLASS_IND_TWELVE = 30 [deprecated = true];
+ CLASS_IND_FOURTEEN = 31 [deprecated = true];
+ CLASS_IND_SIXTEEN = 32 [deprecated = true];
+ CLASS_IND_EIGHTEEN = 33 [deprecated = true];
+ ACB_G = 34 [deprecated = true];
+ ACB_PG = 35 [deprecated = true];
+ ACB_M = 36 [deprecated = true];
+ ACB_MA15 = 37 [deprecated = true];
+ ACB_R18 = 38 [deprecated = true];
+ ACB_RC = 39 [deprecated = true];
+}
+
+message AgeRatingCategoryResult {
+ repeated AgeRatingCategory ageratingcategories = 1;
+}
+
+message AgeRatingCategory {
+ uint64 id = 1;
+ string rating = 2;
+ AgeRatingOrganization organization = 3;
+ google.protobuf.Timestamp created_at = 4;
+ google.protobuf.Timestamp updated_at = 5;
+ string checksum = 6;
}
message AgeRatingContentDescriptionResult {
@@ -98,99 +114,124 @@ message AgeRatingContentDescriptionResult {
message AgeRatingContentDescription {
uint64 id = 1;
- AgeRatingContentDescriptionCategoryEnum category = 2;
+ AgeRatingContentDescriptionCategoryEnum category = 2 [deprecated = true];
string description = 3;
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;
+ AGERATINGCONTENTDESCRIPTION_CATEGORY_NULL = 0 [deprecated = true];
+ ESRB_ALCOHOL_REFERENCE = 1 [deprecated = true];
+ ESRB_ANIMATED_BLOOD = 2 [deprecated = true];
+ ESRB_BLOOD = 3 [deprecated = true];
+ ESRB_BLOOD_AND_GORE = 4 [deprecated = true];
+ ESRB_CARTOON_VIOLENCE = 5 [deprecated = true];
+ ESRB_COMIC_MISCHIEF = 6 [deprecated = true];
+ ESRB_CRUDE_HUMOR = 7 [deprecated = true];
+ ESRB_DRUG_REFERENCE = 8 [deprecated = true];
+ ESRB_FANTASY_VIOLENCE = 9 [deprecated = true];
+ ESRB_INTENSE_VIOLENCE = 10 [deprecated = true];
+ ESRB_LANGUAGE = 11 [deprecated = true];
+ ESRB_LYRICS = 12 [deprecated = true];
+ ESRB_MATURE_HUMOR = 13 [deprecated = true];
+ ESRB_NUDITY = 14 [deprecated = true];
+ ESRB_PARTIAL_NUDITY = 15 [deprecated = true];
+ ESRB_REAL_GAMBLING = 16 [deprecated = true];
+ ESRB_SEXUAL_CONTENT = 17 [deprecated = true];
+ ESRB_SEXUAL_THEMES = 18 [deprecated = true];
+ ESRB_SEXUAL_VIOLENCE = 19 [deprecated = true];
+ ESRB_SIMULATED_GAMBLING = 20 [deprecated = true];
+ ESRB_STRONG_LANGUAGE = 21 [deprecated = true];
+ ESRB_STRONG_LYRICS = 22 [deprecated = true];
+ ESRB_STRONG_SEXUAL_CONTENT = 23 [deprecated = true];
+ ESRB_SUGGESTIVE_THEMES = 24 [deprecated = true];
+ ESRB_TOBACCO_REFERENCE = 25 [deprecated = true];
+ ESRB_USE_OF_ALCOHOL = 26 [deprecated = true];
+ ESRB_USE_OF_DRUGS = 27 [deprecated = true];
+ ESRB_USE_OF_TOBACCO = 28 [deprecated = true];
+ ESRB_VIOLENCE = 29 [deprecated = true];
+ ESRB_VIOLENT_REFERENCES = 30 [deprecated = true];
+ ESRB_ANIMATED_VIOLENCE = 31 [deprecated = true];
+ ESRB_MILD_LANGUAGE = 32 [deprecated = true];
+ ESRB_MILD_VIOLENCE = 33 [deprecated = true];
+ ESRB_USE_OF_DRUGS_AND_ALCOHOL = 34 [deprecated = true];
+ ESRB_DRUG_AND_ALCOHOL_REFERENCE = 35 [deprecated = true];
+ ESRB_MILD_SUGGESTIVE_THEMES = 36 [deprecated = true];
+ ESRB_MILD_CARTOON_VIOLENCE = 37 [deprecated = true];
+ ESRB_MILD_BLOOD = 38 [deprecated = true];
+ ESRB_REALISTIC_BLOOD_AND_GORE = 39 [deprecated = true];
+ ESRB_REALISTIC_VIOLENCE = 40 [deprecated = true];
+ ESRB_ALCOHOL_AND_TOBACCO_REFERENCE = 41 [deprecated = true];
+ ESRB_MATURE_SEXUAL_THEMES = 42 [deprecated = true];
+ ESRB_MILD_ANIMATED_VIOLENCE = 43 [deprecated = true];
+ ESRB_MILD_SEXUAL_THEMES = 44 [deprecated = true];
+ ESRB_USE_OF_ALCOHOL_AND_TOBACCO = 45 [deprecated = true];
+ ESRB_ANIMATED_BLOOD_AND_GORE = 46 [deprecated = true];
+ ESRB_MILD_FANTASY_VIOLENCE = 47 [deprecated = true];
+ ESRB_MILD_LYRICS = 48 [deprecated = true];
+ ESRB_REALISTIC_BLOOD = 49 [deprecated = true];
+ PEGI_VIOLENCE = 50 [deprecated = true];
+ PEGI_SEX = 51 [deprecated = true];
+ PEGI_DRUGS = 52 [deprecated = true];
+ PEGI_FEAR = 53 [deprecated = true];
+ PEGI_DISCRIMINATION = 54 [deprecated = true];
+ PEGI_BAD_LANGUAGE = 55 [deprecated = true];
+ PEGI_GAMBLING = 56 [deprecated = true];
+ PEGI_ONLINE_GAMEPLAY = 57 [deprecated = true];
+ PEGI_IN_GAME_PURCHASES = 58 [deprecated = true];
+ CERO_LOVE = 59 [deprecated = true];
+ CERO_SEXUAL_CONTENT = 60 [deprecated = true];
+ CERO_VIOLENCE = 61 [deprecated = true];
+ CERO_HORROR = 62 [deprecated = true];
+ CERO_DRINKING_SMOKING = 63 [deprecated = true];
+ CERO_GAMBLING = 64 [deprecated = true];
+ CERO_CRIME = 65 [deprecated = true];
+ CERO_CONTROLLED_SUBSTANCES = 66 [deprecated = true];
+ CERO_LANGUAGES_AND_OTHERS = 67 [deprecated = true];
+ GRAC_SEXUALITY = 68 [deprecated = true];
+ GRAC_VIOLENCE = 69 [deprecated = true];
+ GRAC_FEAR_HORROR_THREATENING = 70 [deprecated = true];
+ GRAC_LANGUAGE = 71 [deprecated = true];
+ GRAC_ALCOHOL_TOBACCO_DRUG = 72 [deprecated = true];
+ GRAC_CRIME_ANTI_SOCIAL = 73 [deprecated = true];
+ GRAC_GAMBLING = 74 [deprecated = true];
+ CLASS_IND_VIOLENCIA = 75 [deprecated = true];
+ CLASS_IND_VIOLENCIA_EXTREMA = 76 [deprecated = true];
+ CLASS_IND_CONTEUDO_SEXUAL = 77 [deprecated = true];
+ CLASS_IND_NUDEZ = 78 [deprecated = true];
+ CLASS_IND_SEXO = 79 [deprecated = true];
+ CLASS_IND_SEXO_EXPLICITO = 80 [deprecated = true];
+ CLASS_IND_DROGAS = 81 [deprecated = true];
+ CLASS_IND_DROGAS_LICITAS = 82 [deprecated = true];
+ CLASS_IND_DROGAS_ILICITAS = 83 [deprecated = true];
+ CLASS_IND_LINGUAGEM_IMPROPRIA = 84 [deprecated = true];
+ CLASS_IND_ATOS_CRIMINOSOS = 85 [deprecated = true];
+}
+
+message AgeRatingContentDescriptionV2Result {
+ repeated AgeRatingContentDescriptionV2 ageratingcontentdescriptionsv2 = 1;
+}
+
+message AgeRatingContentDescriptionV2 {
+ uint64 id = 1;
+ string description = 2;
+ AgeRatingOrganization organization = 3;
+ google.protobuf.Timestamp created_at = 4;
+ google.protobuf.Timestamp updated_at = 5;
+ string checksum = 6;
+}
+
+message AgeRatingOrganizationResult {
+ repeated AgeRatingOrganization ageratingorganizations = 1;
+}
+
+message AgeRatingOrganization {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
}
message AlternativeNameResult {
@@ -232,31 +273,45 @@ message Character {
google.protobuf.Timestamp created_at = 4;
string description = 5;
repeated Game games = 6;
- GenderGenderEnum gender = 7;
+ GenderGenderEnum gender = 7 [deprecated = true];
CharacterMugShot mug_shot = 8;
string name = 9;
string slug = 10;
- CharacterSpeciesEnum species = 11;
+ CharacterSpeciesEnum species = 11 [deprecated = true];
google.protobuf.Timestamp updated_at = 12;
string url = 13;
string checksum = 14;
+ CharacterGender character_gender = 15;
+ CharacterSpecie character_species = 16;
}
enum GenderGenderEnum {
- MALE = 0;
- FEMALE = 1;
- OTHER = 2;
+ MALE = 0 [deprecated = true];
+ FEMALE = 1 [deprecated = true];
+ OTHER = 2 [deprecated = true];
}
enum CharacterSpeciesEnum {
- CHARACTER_SPECIES_NULL = 0;
- HUMAN = 1;
- ALIEN = 2;
- ANIMAL = 3;
- ANDROID = 4;
- UNKNOWN = 5;
+ CHARACTER_SPECIES_NULL = 0 [deprecated = true];
+ HUMAN = 1 [deprecated = true];
+ ALIEN = 2 [deprecated = true];
+ ANIMAL = 3 [deprecated = true];
+ ANDROID = 4 [deprecated = true];
+ UNKNOWN = 5 [deprecated = true];
+}
+
+message CharacterGenderResult {
+ repeated CharacterGender charactergenders = 1;
+}
+
+message CharacterGender {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
}
message CharacterMugShotResult {
@@ -274,6 +329,18 @@ message CharacterMugShot {
string checksum = 8;
}
+message CharacterSpecieResult {
+ repeated CharacterSpecie characterspecies = 1;
+}
+
+message CharacterSpecie {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
message CollectionResult {
repeated Collection collections = 1;
}
@@ -369,7 +436,7 @@ message CompanyResult {
message Company {
uint64 id = 1;
google.protobuf.Timestamp change_date = 2;
- DateFormatChangeDateCategoryEnum change_date_category = 3;
+ DateFormatChangeDateCategoryEnum change_date_category = 3 [deprecated = true];
Company changed_company_id = 4;
int32 country = 5;
google.protobuf.Timestamp created_at = 6;
@@ -381,23 +448,26 @@ message Company {
repeated Game published = 12;
string slug = 13;
google.protobuf.Timestamp start_date = 14;
- DateFormatChangeDateCategoryEnum start_date_category = 15;
+ DateFormatChangeDateCategoryEnum start_date_category = 15 [deprecated = true];
google.protobuf.Timestamp updated_at = 16;
string url = 17;
repeated CompanyWebsite websites = 18;
string checksum = 19;
+ CompanyStatus status = 20;
+ DateFormat start_date_format = 21;
+ DateFormat change_date_format = 22;
}
enum DateFormatChangeDateCategoryEnum {
- YYYYMMMMDD = 0;
- YYYYMMMM = 1;
- YYYY = 2;
- YYYYQ1 = 3;
- YYYYQ2 = 4;
- YYYYQ3 = 5;
- YYYYQ4 = 6;
- TBD = 7;
+ YYYYMMMMDD = 0 [deprecated = true];
+ YYYYMMMM = 1 [deprecated = true];
+ YYYY = 2 [deprecated = true];
+ YYYYQ1 = 3 [deprecated = true];
+ YYYYQ2 = 4 [deprecated = true];
+ YYYYQ3 = 5 [deprecated = true];
+ YYYYQ4 = 6 [deprecated = true];
+ TBD = 7 [deprecated = true];
}
message CompanyLogoResult {
@@ -415,38 +485,52 @@ message CompanyLogo {
string checksum = 8;
}
+message CompanyStatusResult {
+ repeated CompanyStatus companystatuses = 1;
+}
+
+message CompanyStatus {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
message CompanyWebsiteResult {
repeated CompanyWebsite companywebsites = 1;
}
message CompanyWebsite {
uint64 id = 1;
- WebsiteCategoryEnum category = 2;
+ WebsiteCategoryEnum category = 2 [deprecated = true];
bool trusted = 3;
string url = 4;
string checksum = 5;
+ WebsiteType type = 6;
}
enum WebsiteCategoryEnum {
- WEBSITE_CATEGORY_NULL = 0;
- WEBSITE_OFFICIAL = 1;
- WEBSITE_WIKIA = 2;
- WEBSITE_WIKIPEDIA = 3;
- WEBSITE_FACEBOOK = 4;
- WEBSITE_TWITTER = 5;
- WEBSITE_TWITCH = 6;
- WEBSITE_INSTAGRAM = 8;
- WEBSITE_YOUTUBE = 9;
- WEBSITE_IPHONE = 10;
- WEBSITE_IPAD = 11;
- WEBSITE_ANDROID = 12;
- WEBSITE_STEAM = 13;
- WEBSITE_REDDIT = 14;
- WEBSITE_ITCH = 15;
- WEBSITE_EPICGAMES = 16;
- WEBSITE_GOG = 17;
- WEBSITE_DISCORD = 18;
+ WEBSITE_CATEGORY_NULL = 0 [deprecated = true];
+ WEBSITE_OFFICIAL = 1 [deprecated = true];
+ WEBSITE_WIKIA = 2 [deprecated = true];
+ WEBSITE_WIKIPEDIA = 3 [deprecated = true];
+ WEBSITE_FACEBOOK = 4 [deprecated = true];
+ WEBSITE_TWITTER = 5 [deprecated = true];
+ WEBSITE_TWITCH = 6 [deprecated = true];
+ WEBSITE_INSTAGRAM = 8 [deprecated = true];
+ WEBSITE_YOUTUBE = 9 [deprecated = true];
+ WEBSITE_IPHONE = 10 [deprecated = true];
+ WEBSITE_IPAD = 11 [deprecated = true];
+ WEBSITE_ANDROID = 12 [deprecated = true];
+ WEBSITE_STEAM = 13 [deprecated = true];
+ WEBSITE_REDDIT = 14 [deprecated = true];
+ WEBSITE_ITCH = 15 [deprecated = true];
+ WEBSITE_EPICGAMES = 16 [deprecated = true];
+ WEBSITE_GOG = 17 [deprecated = true];
+ WEBSITE_DISCORD = 18 [deprecated = true];
+ WEBSITE_BLUESKY = 19 [deprecated = true];
}
message CoverResult {
@@ -466,6 +550,18 @@ message Cover {
GameLocalization game_localization = 10;
}
+message DateFormatResult {
+ repeated DateFormat dateformats = 1;
+}
+
+message DateFormat {
+ uint64 id = 1;
+ string format = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
message EventResult {
repeated Event events = 1;
}
@@ -526,7 +622,7 @@ message ExternalGameResult {
message ExternalGame {
uint64 id = 1;
- ExternalGameCategoryEnum category = 2;
+ ExternalGameCategoryEnum category = 2 [deprecated = true];
google.protobuf.Timestamp created_at = 3;
Game game = 4;
string name = 5;
@@ -534,42 +630,56 @@ message ExternalGame {
google.protobuf.Timestamp updated_at = 7;
string url = 8;
int32 year = 9;
- ExternalGameMediaEnum media = 10;
+ ExternalGameMediaEnum media = 10 [deprecated = true];
Platform platform = 11;
repeated int32 countries = 12;
string checksum = 13;
+ ExternalGameSource external_game_source = 14;
+ GameReleaseFormat game_release_format = 15;
}
enum ExternalGameCategoryEnum {
- EXTERNALGAME_CATEGORY_NULL = 0;
- EXTERNALGAME_STEAM = 1;
- EXTERNALGAME_GOG = 5;
- EXTERNALGAME_YOUTUBE = 10;
- EXTERNALGAME_MICROSOFT = 11;
- EXTERNALGAME_APPLE = 13;
- EXTERNALGAME_TWITCH = 14;
- EXTERNALGAME_ANDROID = 15;
- EXTERNALGAME_AMAZON_ASIN = 20;
- EXTERNALGAME_AMAZON_LUNA = 22;
- EXTERNALGAME_AMAZON_ADG = 23;
- EXTERNALGAME_EPIC_GAME_STORE = 26;
- 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;
+ EXTERNALGAME_CATEGORY_NULL = 0 [deprecated = true];
+ EXTERNALGAME_STEAM = 1 [deprecated = true];
+ EXTERNALGAME_GOG = 5 [deprecated = true];
+ EXTERNALGAME_YOUTUBE = 10 [deprecated = true];
+ EXTERNALGAME_MICROSOFT = 11 [deprecated = true];
+ EXTERNALGAME_APPLE = 13 [deprecated = true];
+ EXTERNALGAME_TWITCH = 14 [deprecated = true];
+ EXTERNALGAME_ANDROID = 15 [deprecated = true];
+ EXTERNALGAME_AMAZON_ASIN = 20 [deprecated = true];
+ EXTERNALGAME_AMAZON_LUNA = 22 [deprecated = true];
+ EXTERNALGAME_AMAZON_ADG = 23 [deprecated = true];
+ EXTERNALGAME_EPIC_GAME_STORE = 26 [deprecated = true];
+ EXTERNALGAME_OCULUS = 28 [deprecated = true];
+ EXTERNALGAME_UTOMIK = 29 [deprecated = true];
+ EXTERNALGAME_ITCH_IO = 30 [deprecated = true];
+ EXTERNALGAME_XBOX_MARKETPLACE = 31 [deprecated = true];
+ EXTERNALGAME_KARTRIDGE = 32 [deprecated = true];
+ EXTERNALGAME_PLAYSTATION_STORE_US = 36 [deprecated = true];
+ EXTERNALGAME_FOCUS_ENTERTAINMENT = 37 [deprecated = true];
+ EXTERNALGAME_XBOX_GAME_PASS_ULTIMATE_CLOUD = 54 [deprecated = true];
+ EXTERNALGAME_GAMEJOLT = 55 [deprecated = true];
}
enum ExternalGameMediaEnum {
- EXTERNALGAME_MEDIA_NULL = 0;
- EXTERNALGAME_DIGITAL = 1;
- EXTERNALGAME_PHYSICAL = 2;
+ EXTERNALGAME_MEDIA_NULL = 0 [deprecated = true];
+ EXTERNALGAME_DIGITAL = 1 [deprecated = true];
+ EXTERNALGAME_PHYSICAL = 2 [deprecated = true];
+}
+
+message ExternalGameSourceResult {
+ repeated ExternalGameSource externalgamesources = 1;
+}
+
+message ExternalGameSource {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 4;
+ google.protobuf.Timestamp updated_at = 5;
+ string checksum = 6;
}
message FranchiseResult {
@@ -599,8 +709,8 @@ message Game {
repeated AlternativeName alternative_names = 5;
repeated Artwork artworks = 6;
repeated Game bundles = 7;
- GameCategoryEnum category = 8;
- Collection collection = 9;
+ GameCategoryEnum category = 8 [deprecated = true];
+ Collection collection = 9 [deprecated = true];
Cover cover = 10;
google.protobuf.Timestamp created_at = 11;
repeated Game dlcs = 12;
@@ -628,7 +738,7 @@ message Game {
repeated Game similar_games = 34;
string slug = 35;
repeated Game standalone_expansions = 36;
- GameStatusEnum status = 37;
+ GameStatusEnum status = 37 [deprecated = true];
string storyline = 38;
string summary = 39;
repeated int32 tags = 40;
@@ -650,37 +760,39 @@ message Game {
repeated LanguageSupport language_supports = 56;
repeated GameLocalization game_localizations = 57;
repeated Collection collections = 58;
+ GameStatus game_status = 59;
+ GameType game_type = 60;
}
enum GameCategoryEnum {
- MAIN_GAME = 0;
- DLC_ADDON = 1;
- EXPANSION = 2;
- BUNDLE = 3;
- STANDALONE_EXPANSION = 4;
- MOD = 5;
- EPISODE = 6;
- SEASON = 7;
- REMAKE = 8;
- REMASTER = 9;
- EXPANDED_GAME = 10;
- PORT = 11;
- FORK = 12;
- PACK = 13;
- UPDATE = 14;
+ MAIN_GAME = 0 [deprecated = true];
+ DLC_ADDON = 1 [deprecated = true];
+ EXPANSION = 2 [deprecated = true];
+ BUNDLE = 3 [deprecated = true];
+ STANDALONE_EXPANSION = 4 [deprecated = true];
+ MOD = 5 [deprecated = true];
+ EPISODE = 6 [deprecated = true];
+ SEASON = 7 [deprecated = true];
+ REMAKE = 8 [deprecated = true];
+ REMASTER = 9 [deprecated = true];
+ EXPANDED_GAME = 10 [deprecated = true];
+ PORT = 11 [deprecated = true];
+ FORK = 12 [deprecated = true];
+ PACK = 13 [deprecated = true];
+ UPDATE = 14 [deprecated = true];
}
enum GameStatusEnum {
- RELEASED = 0;
- ALPHA = 2;
- BETA = 3;
- EARLY_ACCESS = 4;
- OFFLINE = 5;
- CANCELLED = 6;
- RUMORED = 7;
- DELISTED = 8;
+ RELEASED = 0 [deprecated = true];
+ ALPHA = 2 [deprecated = true];
+ BETA = 3 [deprecated = true];
+ EARLY_ACCESS = 4 [deprecated = true];
+ OFFLINE = 5 [deprecated = true];
+ CANCELLED = 6 [deprecated = true];
+ RUMORED = 7 [deprecated = true];
+ DELISTED = 8 [deprecated = true];
}
message GameEngineResult {
@@ -745,6 +857,58 @@ message GameMode {
string checksum = 7;
}
+message GameReleaseFormatResult {
+ repeated GameReleaseFormat gamereleaseformats = 1;
+}
+
+message GameReleaseFormat {
+ uint64 id = 1;
+ string format = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
+message GameStatusResult {
+ repeated GameStatus gamestatuses = 1;
+}
+
+message GameStatus {
+ uint64 id = 1;
+ string status = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
+message GameTimeToBeatResult {
+ repeated GameTimeToBeat gametimetobeats = 1;
+}
+
+message GameTimeToBeat {
+ uint64 id = 1;
+ int32 game_id = 2;
+ int32 hastily = 3;
+ int32 normally = 4;
+ int32 completely = 5;
+ int32 count = 6;
+ google.protobuf.Timestamp created_at = 7;
+ google.protobuf.Timestamp updated_at = 8;
+ string checksum = 9;
+}
+
+message GameTypeResult {
+ repeated GameType gametypes = 1;
+}
+
+message GameType {
+ uint64 id = 1;
+ string type = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
message GameVersionResult {
repeated GameVersion gameversions = 1;
}
@@ -940,7 +1104,7 @@ message Platform {
uint64 id = 1;
string abbreviation = 2;
string alternative_name = 3;
- PlatformCategoryEnum category = 4;
+ PlatformCategoryEnum category = 4 [deprecated = true];
google.protobuf.Timestamp created_at = 5;
int32 generation = 6;
string name = 7;
@@ -953,17 +1117,18 @@ message Platform {
repeated PlatformVersion versions = 14;
repeated PlatformWebsite websites = 15;
string checksum = 16;
+ PlatformType platform_type = 17;
}
enum PlatformCategoryEnum {
- PLATFORM_CATEGORY_NULL = 0;
- CONSOLE = 1;
- ARCADE = 2;
- PLATFORM = 3;
- OPERATING_SYSTEM = 4;
- PORTABLE_CONSOLE = 5;
- COMPUTER = 6;
+ PLATFORM_CATEGORY_NULL = 0 [deprecated = true];
+ CONSOLE = 1 [deprecated = true];
+ ARCADE = 2 [deprecated = true];
+ PLATFORM = 3 [deprecated = true];
+ OPERATING_SYSTEM = 4 [deprecated = true];
+ PORTABLE_CONSOLE = 5 [deprecated = true];
+ COMPUTER = 6 [deprecated = true];
}
message PlatformFamilyResult {
@@ -992,6 +1157,18 @@ message PlatformLogo {
string checksum = 8;
}
+message PlatformTypeResult {
+ repeated PlatformType platformtypes = 1;
+}
+
+message PlatformType {
+ uint64 id = 1;
+ string name = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
+}
+
message PlatformVersionResult {
repeated PlatformVersion platformversions = 1;
}
@@ -1006,7 +1183,6 @@ message PlatformVersion {
string media = 7;
string memory = 8;
string name = 9;
- string online = 10;
string os = 11;
string output = 12;
PlatformLogo platform_logo = 13;
@@ -1039,31 +1215,33 @@ message PlatformVersionReleaseDateResult {
message PlatformVersionReleaseDate {
uint64 id = 1;
- DateFormatChangeDateCategoryEnum category = 2;
+ DateFormatChangeDateCategoryEnum category = 2 [deprecated = true];
google.protobuf.Timestamp created_at = 3;
google.protobuf.Timestamp date = 4;
string human = 5;
int32 m = 6;
PlatformVersion platform_version = 7;
- RegionRegionEnum region = 8;
+ RegionRegionEnum region = 8 [deprecated = true];
google.protobuf.Timestamp updated_at = 9;
int32 y = 10;
string checksum = 11;
+ DateFormat date_format = 12;
+ ReleaseDateRegion release_region = 13;
}
enum RegionRegionEnum {
- REGION_REGION_NULL = 0;
- EUROPE = 1;
- NORTH_AMERICA = 2;
- AUSTRALIA = 3;
- NEW_ZEALAND = 4;
- JAPAN = 5;
- CHINA = 6;
- ASIA = 7;
- WORLDWIDE = 8;
- KOREA = 9;
- BRAZIL = 10;
+ REGION_REGION_NULL = 0 [deprecated = true];
+ EUROPE = 1 [deprecated = true];
+ NORTH_AMERICA = 2 [deprecated = true];
+ AUSTRALIA = 3 [deprecated = true];
+ NEW_ZEALAND = 4 [deprecated = true];
+ JAPAN = 5 [deprecated = true];
+ CHINA = 6 [deprecated = true];
+ ASIA = 7 [deprecated = true];
+ WORLDWIDE = 8 [deprecated = true];
+ KOREA = 9 [deprecated = true];
+ BRAZIL = 10 [deprecated = true];
}
message PlatformWebsiteResult {
@@ -1100,18 +1278,19 @@ message PopularityPrimitive {
uint64 id = 1;
int32 game_id = 2;
PopularityType popularity_type = 3;
- PopularitySourcePopularitySourceEnum popularity_source = 4;
+ PopularitySourcePopularitySourceEnum popularity_source = 4 [deprecated = true];
double value = 5;
google.protobuf.Timestamp calculated_at = 6;
google.protobuf.Timestamp created_at = 7;
google.protobuf.Timestamp updated_at = 8;
string checksum = 9;
+ ExternalGameSource external_popularity_source = 10;
}
enum PopularitySourcePopularitySourceEnum {
- POPULARITYSOURCE_POPULARITY_SOURCE_NULL = 0;
- IGDB = 121;
+ POPULARITYSOURCE_POPULARITY_SOURCE_NULL = 0 [deprecated = true];
+ IGDB = 121 [deprecated = true];
}
message PopularityTypeResult {
@@ -1120,11 +1299,12 @@ message PopularityTypeResult {
message PopularityType {
uint64 id = 1;
- PopularitySourcePopularitySourceEnum popularity_source = 2;
+ PopularitySourcePopularitySourceEnum popularity_source = 2 [deprecated = true];
string name = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
string checksum = 6;
+ ExternalGameSource external_popularity_source = 7;
}
message RegionResult {
@@ -1147,18 +1327,32 @@ message ReleaseDateResult {
message ReleaseDate {
uint64 id = 1;
- DateFormatChangeDateCategoryEnum category = 2;
+ DateFormatChangeDateCategoryEnum category = 2 [deprecated = true];
google.protobuf.Timestamp created_at = 3;
google.protobuf.Timestamp date = 4;
Game game = 5;
string human = 6;
int32 m = 7;
Platform platform = 8;
- RegionRegionEnum region = 9;
+ RegionRegionEnum region = 9 [deprecated = true];
google.protobuf.Timestamp updated_at = 10;
int32 y = 11;
string checksum = 12;
ReleaseDateStatus status = 13;
+ DateFormat date_format = 14;
+ ReleaseDateRegion release_region = 15;
+}
+
+message ReleaseDateRegionResult {
+ repeated ReleaseDateRegion releasedateregions = 1;
+}
+
+message ReleaseDateRegion {
+ uint64 id = 1;
+ string region = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
}
message ReleaseDateStatusResult {
@@ -1262,9 +1456,22 @@ message WebsiteResult {
message Website {
uint64 id = 1;
- WebsiteCategoryEnum category = 2;
+ WebsiteCategoryEnum category = 2 [deprecated = true];
Game game = 3;
bool trusted = 4;
string url = 5;
string checksum = 6;
+ WebsiteType type = 7;
+}
+
+message WebsiteTypeResult {
+ repeated WebsiteType websitetypes = 1;
+}
+
+message WebsiteType {
+ uint64 id = 1;
+ string type = 2;
+ google.protobuf.Timestamp created_at = 3;
+ google.protobuf.Timestamp updated_at = 4;
+ string checksum = 5;
}
diff --git a/src/test/kotlin/com/api/igdb/TestProtobufRequest.kt b/src/test/kotlin/com/api/igdb/TestProtobufRequest.kt
index 43f1749..17df30d 100644
--- a/src/test/kotlin/com/api/igdb/TestProtobufRequest.kt
+++ b/src/test/kotlin/com/api/igdb/TestProtobufRequest.kt
@@ -23,12 +23,30 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testAgeRatingCategories() {
+ val result = wrapper.ageRatingCategories(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testAgeRatingContentDescriptions() {
val result = wrapper.ageRatingContentDescriptions(APICalypse())
assert(result.isNotEmpty())
}
+ @Test
+ fun testAgeRatingContentDescriptionsV2() {
+ val result = wrapper.ageRatingContentDescriptionsV2(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
+ @Test
+ fun testAgeRatingOrganizations() {
+ val result = wrapper.ageRatingOrganizations(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testAlternativeNames() {
val result = wrapper.alternativeNames(APICalypse())
@@ -41,6 +59,18 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testCharactersGenders() {
+ val result = wrapper.characterGenders(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
+ @Test
+ fun testCharacterSpecies() {
+ val result = wrapper.characterSpecies(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testCharacters() {
val result = wrapper.characters(APICalypse())
@@ -65,6 +95,12 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testCompanyStatuses() {
+ val result = wrapper.companyStatuses(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testComapnyWebsites() {
val result = wrapper.companyWebsites(APICalypse())
@@ -83,12 +119,24 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testDateFormats() {
+ val result = wrapper.dateFormats(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testExternalGames() {
val result = wrapper.externalGames(APICalypse())
assert(result.isNotEmpty())
}
+ @Test
+ fun testExternalGameSources() {
+ val result = wrapper.externalGameSources(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testFranschises() {
val result = wrapper.franchises(APICalypse())
@@ -105,13 +153,16 @@ class TestProtobufRequest {
assertEquals("The Witcher 3: Wild Hunt", game.name)
assertEquals("the-witcher-3-wild-hunt", game.slug)
assert(game.name.isNotEmpty())
- assert(game.updatedAt.isInitialized)
+ assert(game.hasCreatedAt())
if (game.checksum.isNullOrBlank()) println("checksumField empty") else println(game.checksum)
assertNotEquals(" ", game.checksum)
val ageRatings = game.ageRatingsList
val ageRating = ageRatings.first()
assert(ageRating.contentDescriptionsList.isNotEmpty())
+ assert(ageRating.ratingContentDescriptionsList.isNotEmpty())
+ assert(ageRating.hasOrganization())
+ assert(ageRating.hasRatingCategory())
if (ageRating.checksum.isNullOrBlank()) println("checksumField empty") else println(ageRating.checksum)
assertNotEquals(" ", ageRating.checksum)
@@ -182,6 +233,24 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testGameReleaseFormats() {
+ val result = wrapper.gameReleaseFormats(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
+ @Test
+ fun testGameStatuses() {
+ val result = wrapper.gameStatuses(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
+ @Test
+ fun testGameTypes() {
+ val result = wrapper.gameTypes(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testGameVersions() {
val result = wrapper.gameVersion(APICalypse())
@@ -242,6 +311,12 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testPlatformTypes() {
+ val result = wrapper.platformTypes(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testPlatformVersions() {
val result = wrapper.platformVersions(APICalypse())
@@ -283,12 +358,19 @@ class TestProtobufRequest {
val result = wrapper.regions(APICalypse())
assert(result.isNotEmpty())
}
+
@Test
fun testReleaseDates() {
val result = wrapper.releaseDates(APICalypse())
assert(result.isNotEmpty())
}
+ @Test
+ fun testReleaseDateRegions() {
+ val result = wrapper.releaseDateRegions(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testScreenshots() {
val result = wrapper.screenshots(APICalypse())
@@ -313,6 +395,12 @@ class TestProtobufRequest {
assert(result.isNotEmpty())
}
+ @Test
+ fun testWebsiteTypes() {
+ val result = wrapper.websiteTypes(APICalypse())
+ assert(result.isNotEmpty())
+ }
+
@Test
fun testEvents() {
val result = wrapper.events(APICalypse())
@@ -369,14 +457,18 @@ class TestProtobufRequest {
@Test
fun testPopularityTypes() {
- val result = wrapper.popularityTypes(APICalypse())
+ val result = wrapper.popularityTypes(APICalypse().fields("*"))
assert(result.isNotEmpty())
+ assert(result.first().hasExternalPopularitySource())
}
@Test
fun testPopularityPrimitives() {
- val result = wrapper.popularityPrimitives(APICalypse())
+ val result = wrapper.popularityPrimitives(APICalypse().fields("*"))
assert(result.isNotEmpty())
+ assert(result.first().hasExternalPopularitySource())
+ assert(result.first().hasCalculatedAt())
+ assert(result.first().value > 0)
}
}