Merge pull request #432 from kamyker/faster-ugc-query

Ability to disable default stats loading to speed up ugc query
This commit is contained in:
Garry Newman 2020-05-18 11:18:12 +01:00 committed by GitHub
commit c25bc70d53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 14 deletions

View File

@ -150,6 +150,7 @@ namespace Steamworks.Ugc
TotalCount = (int)result.Value.TotalMatchingResults, TotalCount = (int)result.Value.TotalMatchingResults,
CachedData = result.Value.CachedData, CachedData = result.Value.CachedData,
ReturnsKeyValueTags = WantsReturnKeyValueTags ?? false, ReturnsKeyValueTags = WantsReturnKeyValueTags ?? false,
ReturnsDefaultStats = WantsDefaultStats ?? true, //true by default
}; };
} }
@ -302,5 +303,15 @@ namespace Steamworks.Ugc
} }
#endregion #endregion
}
#region LoadingBehaviour
bool? WantsDefaultStats; //true by default
/// <summary>
/// Set to false to disable, by default following stats are loaded: NumSubscriptions, NumFavorites, NumFollowers, NumUniqueSubscriptions, NumUniqueFavorites, NumUniqueFollowers, NumUniqueWebsiteViews, ReportScore, NumSecondsPlayed, NumPlaytimeSessions, NumComments, NumSecondsPlayedDuringTimePeriod, NumPlaytimeSessionsDuringTimePeriod
/// </summary>
public QueryType WithDefaultStats( bool b ) { WantsDefaultStats = b; return this; }
#endregion
}
} }

View File

@ -13,6 +13,8 @@ namespace Steamworks.Ugc
public bool CachedData; public bool CachedData;
internal bool ReturnsKeyValueTags; internal bool ReturnsKeyValueTags;
internal bool ReturnsDefaultStats;
public IEnumerable<Item> Entries public IEnumerable<Item> Entries
{ {
get get
@ -25,19 +27,23 @@ namespace Steamworks.Ugc
{ {
var item = Item.From( details ); var item = Item.From( details );
item.NumSubscriptions = GetStat( i, ItemStatistic.NumSubscriptions );
item.NumFavorites = GetStat( i, ItemStatistic.NumFavorites ); if ( ReturnsDefaultStats )
item.NumFollowers = GetStat( i, ItemStatistic.NumFollowers ); {
item.NumUniqueSubscriptions = GetStat( i, ItemStatistic.NumUniqueSubscriptions ); item.NumSubscriptions = GetStat( i, ItemStatistic.NumSubscriptions );
item.NumUniqueFavorites = GetStat( i, ItemStatistic.NumUniqueFavorites ); item.NumFavorites = GetStat( i, ItemStatistic.NumFavorites );
item.NumUniqueFollowers = GetStat( i, ItemStatistic.NumUniqueFollowers ); item.NumFollowers = GetStat( i, ItemStatistic.NumFollowers );
item.NumUniqueWebsiteViews = GetStat( i, ItemStatistic.NumUniqueWebsiteViews ); item.NumUniqueSubscriptions = GetStat( i, ItemStatistic.NumUniqueSubscriptions );
item.ReportScore = GetStat( i, ItemStatistic.ReportScore ); item.NumUniqueFavorites = GetStat( i, ItemStatistic.NumUniqueFavorites );
item.NumSecondsPlayed = GetStat( i, ItemStatistic.NumSecondsPlayed ); item.NumUniqueFollowers = GetStat( i, ItemStatistic.NumUniqueFollowers );
item.NumPlaytimeSessions = GetStat( i, ItemStatistic.NumPlaytimeSessions ); item.NumUniqueWebsiteViews = GetStat( i, ItemStatistic.NumUniqueWebsiteViews );
item.NumComments = GetStat( i, ItemStatistic.NumComments ); item.ReportScore = GetStat( i, ItemStatistic.ReportScore );
item.NumSecondsPlayedDuringTimePeriod = GetStat( i, ItemStatistic.NumSecondsPlayedDuringTimePeriod ); item.NumSecondsPlayed = GetStat( i, ItemStatistic.NumSecondsPlayed );
item.NumPlaytimeSessionsDuringTimePeriod = GetStat( i, ItemStatistic.NumPlaytimeSessionsDuringTimePeriod ); item.NumPlaytimeSessions = GetStat( i, ItemStatistic.NumPlaytimeSessions );
item.NumComments = GetStat( i, ItemStatistic.NumComments );
item.NumSecondsPlayedDuringTimePeriod = GetStat( i, ItemStatistic.NumSecondsPlayedDuringTimePeriod );
item.NumPlaytimeSessionsDuringTimePeriod = GetStat( i, ItemStatistic.NumPlaytimeSessionsDuringTimePeriod );
}
if ( SteamUGC.Internal.GetQueryUGCPreviewURL( Handle, i, out string preview ) ) if ( SteamUGC.Internal.GetQueryUGCPreviewURL( Handle, i, out string preview ) )
{ {