mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2025-01-24 20:48:03 +03:00
Query tags
This commit is contained in:
parent
e9f5898b6c
commit
0e4946e550
@ -24,6 +24,28 @@ namespace Steamworks
|
|||||||
Console.WriteLine( $"TotalCount: {result?.TotalCount}" );
|
Console.WriteLine( $"TotalCount: {result?.TotalCount}" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public async Task QueryWithTags()
|
||||||
|
{
|
||||||
|
var q = UgcQuery.All()
|
||||||
|
.WithTag( "Fun" )
|
||||||
|
.WithTag( "Movie" )
|
||||||
|
.MatchAllTags();
|
||||||
|
|
||||||
|
var result = await q.GetPageAsync( 1 );
|
||||||
|
Assert.IsNotNull( result );
|
||||||
|
|
||||||
|
Console.WriteLine( $"ResultCount: {result?.ResultCount}" );
|
||||||
|
Console.WriteLine( $"TotalCount: {result?.TotalCount}" );
|
||||||
|
|
||||||
|
foreach ( var entry in result.Value.Entries )
|
||||||
|
{
|
||||||
|
Assert.IsTrue( entry.HasTag( "Fun" ) );
|
||||||
|
Assert.IsTrue( entry.HasTag( "Movie" ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task QueryAllFromFriends()
|
public async Task QueryAllFromFriends()
|
||||||
{
|
{
|
||||||
|
@ -71,18 +71,27 @@ namespace Steamworks.Data
|
|||||||
public UgcQuery RankedByPlaytimeSessionsTrend() { queryType = UGCQuery.RankedByPlaytimeSessionsTrend; return this; }
|
public UgcQuery RankedByPlaytimeSessionsTrend() { queryType = UGCQuery.RankedByPlaytimeSessionsTrend; return this; }
|
||||||
public UgcQuery RankedByLifetimePlaytimeSessions() { queryType = UGCQuery.RankedByLifetimePlaytimeSessions; return this; }
|
public UgcQuery RankedByLifetimePlaytimeSessions() { queryType = UGCQuery.RankedByLifetimePlaytimeSessions; return this; }
|
||||||
|
|
||||||
public UgcQuery ReturnOnlyIDs( bool b) { WantsReturnOnlyIDs = b; return this; }
|
public UgcQuery WithOnlyIDs( bool b) { WantsReturnOnlyIDs = b; return this; }
|
||||||
public UgcQuery ReturnKeyValueTag( bool b ) { WantsReturnKeyValueTags = b; return this; }
|
public UgcQuery WithKeyValueTag( bool b ) { WantsReturnKeyValueTags = b; return this; }
|
||||||
public UgcQuery ReturnLongDescription( bool b ) { WantsReturnLongDescription = b; return this; }
|
public UgcQuery WithLongDescription( bool b ) { WantsReturnLongDescription = b; return this; }
|
||||||
public UgcQuery ReturnMetadata( bool b ) { WantsReturnMetadata = b; return this; }
|
public UgcQuery WithMetadata( bool b ) { WantsReturnMetadata = b; return this; }
|
||||||
public UgcQuery ReturnChildren( bool b ) { WantsReturnChildren = b; return this; }
|
public UgcQuery WithChildren( bool b ) { WantsReturnChildren = b; return this; }
|
||||||
public UgcQuery ReturnAdditionalPreviews( bool b ) { WantsReturnAdditionalPreviews = b; return this; }
|
public UgcQuery WithAdditionalPreviews( bool b ) { WantsReturnAdditionalPreviews = b; return this; }
|
||||||
public UgcQuery ReturnTotalOnly( bool b ) { WantsReturnTotalOnly = b; return this; }
|
public UgcQuery WithTotalOnly( bool b ) { WantsReturnTotalOnly = b; return this; }
|
||||||
public UgcQuery ReturnPlaytimeStats( bool b ) { WantsReturnPlaytimeStats = b; return this; }
|
public UgcQuery WithPlaytimeStats( bool b ) { WantsReturnPlaytimeStats = b; return this; }
|
||||||
public UgcQuery AllowCachedResponse( int maxSecondsAge ) { maxCacheAge = maxSecondsAge; return this; }
|
public UgcQuery AllowCachedResponse( int maxSecondsAge ) { maxCacheAge = maxSecondsAge; return this; }
|
||||||
|
|
||||||
public UgcQuery InLanguage( string lang ) { language = lang; return this; }
|
public UgcQuery InLanguage( string lang ) { language = lang; return this; }
|
||||||
public UgcQuery MatchAnyTag( bool b ) { matchAnyTag = b; return this; }
|
|
||||||
|
/// <summary>
|
||||||
|
/// Found items must have at least one of the defined tags
|
||||||
|
/// </summary>
|
||||||
|
public UgcQuery MatchAnyTag() { matchAnyTag = true; return this; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Found items must have all defined tags
|
||||||
|
/// </summary>
|
||||||
|
public UgcQuery MatchAllTags() { matchAnyTag = false; return this; }
|
||||||
|
|
||||||
public UgcQuery WithTag( string tag )
|
public UgcQuery WithTag( string tag )
|
||||||
{
|
{
|
||||||
@ -129,6 +138,11 @@ namespace Steamworks.Data
|
|||||||
SteamUGC.Internal.AddRequiredKeyValueTag( handle, tag.Key, tag.Value );
|
SteamUGC.Internal.AddRequiredKeyValueTag( handle, tag.Key, tag.Value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( matchAnyTag .HasValue )
|
||||||
|
{
|
||||||
|
SteamUGC.Internal.SetMatchAnyTag( handle, matchAnyTag.Value );
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO - add more
|
// TODO - add more
|
||||||
//
|
//
|
||||||
@ -193,6 +207,7 @@ namespace Steamworks.Data
|
|||||||
|
|
||||||
public string Title;
|
public string Title;
|
||||||
public string Description;
|
public string Description;
|
||||||
|
public string[] Tags;
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -211,7 +226,6 @@ namespace Steamworks.Data
|
|||||||
internal bool Banned; // m_bBanned _Bool
|
internal bool Banned; // m_bBanned _Bool
|
||||||
internal bool AcceptedForUse; // m_bAcceptedForUse _Bool
|
internal bool AcceptedForUse; // m_bAcceptedForUse _Bool
|
||||||
internal bool TagsTruncated; // m_bTagsTruncated _Bool
|
internal bool TagsTruncated; // m_bTagsTruncated _Bool
|
||||||
internal string Tags; // m_rgchTags char [1025]
|
|
||||||
internal ulong File; // m_hFile UGCHandle_t
|
internal ulong File; // m_hFile UGCHandle_t
|
||||||
internal ulong PreviewFile; // m_hPreviewFile UGCHandle_t
|
internal ulong PreviewFile; // m_hPreviewFile UGCHandle_t
|
||||||
internal string PchFileName; // m_pchFileName char [260]
|
internal string PchFileName; // m_pchFileName char [260]
|
||||||
@ -232,10 +246,21 @@ namespace Steamworks.Data
|
|||||||
|
|
||||||
Title = details.Title,
|
Title = details.Title,
|
||||||
Description = details.Description,
|
Description = details.Description,
|
||||||
|
Tags = details.Tags.Split( new[] { ',' }, StringSplitOptions.RemoveEmptyEntries )
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A case insensitive check for tag
|
||||||
|
/// </summary>
|
||||||
|
public bool HasTag( string find )
|
||||||
|
{
|
||||||
|
if ( Tags.Length == 0 ) return false;
|
||||||
|
|
||||||
|
return Tags.Contains( find, StringComparer.OrdinalIgnoreCase );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user