diff --git a/steam/enums.py b/steam/enums.py index 0ec77c23..fd74ac62 100644 --- a/steam/enums.py +++ b/steam/enums.py @@ -2077,9 +2077,12 @@ class AuthSessionResponse(IntEnum): class ContentDescriptor(IntEnum): + NudityOrSexualContent = 1 FrequentNudityOrSexualContent = 1 FrequentViolenceOrGore = 2 + AdultOnlySexualContent = 3 StrongSexualContent = 3 + GratuitousSexualContent = 4 AnyMatureContent = 5 diff --git a/steam/manifest.py b/steam/manifest.py index af0d5476..fa7a7eee 100644 --- a/steam/manifest.py +++ b/steam/manifest.py @@ -25,7 +25,16 @@ from . import utils from ._const import MISSING, URL, VDF_LOADS, VDFDict, impl_eq_via_id from .app import PartialApp -from .enums import AppType, BillingType, DepotFileFlag, Language, LicenseType, PackageStatus, ReviewType +from .enums import ( + AppType, + BillingType, + ContentDescriptor, + DepotFileFlag, + Language, + LicenseType, + PackageStatus, + ReviewType, +) from .id import ID from .models import CDNAsset, _IOMixin from .package import PartialPackage @@ -877,6 +886,7 @@ class AppInfo(ProductInfo, PartialApp[str]): "language_support", "tags", "categories", + "content_descriptors", "genres", "created_at", "review_score", @@ -923,6 +933,10 @@ def __init__( """Whether this app has a content hub visible.""" self._stats_visible = common.get("community_visible_stats", "0") == "1" self._free = extended.get("isfreeapp", "0") == "1" + self.content_descriptors = [ + ContentDescriptor.try_value(int(id)) for id in common.get("content_descriptors", MultiDict()).values() + ] + """This app's content descriptors.""" self.controller_support = common.get("controller_support", "none") """This app's level of controller support.""" diff --git a/steam/types/manifest.py b/steam/types/manifest.py index b80609a3..df9c47bf 100644 --- a/steam/types/manifest.py +++ b/steam/types/manifest.py @@ -32,6 +32,7 @@ class Common(TypedVDFDict, total=False): has_adult_content: VDFBool has_adult_content_violence: VDFBool has_adult_content_sex: VDFBool + content_descriptors: MultiDict[str] market_presence: VDFBool workshop_visible: VDFBool community_hub_visible: VDFBool