DepotDownloader: More steam3 support

pull/8/head
Ryan Kistner 13 years ago
parent 028e9ce8c8
commit 1a281f3182

@ -192,19 +192,27 @@ namespace DepotDownloader
static bool AccountHasAccess( int depotId, bool appId=false ) static bool AccountHasAccess( int depotId, bool appId=false )
{ {
if ( steam3 == null || steam3.Licenses == null ) if ( steam3 == null || (steam3.Licenses == null && steam3.steamUser.SteamID.AccountType != EAccountType.AnonUser) )
return CDRManager.SubHasDepot( 0, depotId ); return CDRManager.SubHasDepot( 0, depotId );
steam3.RequestPackageInfo( steam3.Licenses.Select( x => x.PackageID ) ); IEnumerable<uint> licenseQuery;
if ( steam3.steamUser.SteamID.AccountType == EAccountType.AnonUser )
foreach ( var license in steam3.Licenses ) {
licenseQuery = new List<uint>() { 0 };
}
else
{ {
licenseQuery = steam3.Licenses.Select( x => x.PackageID );
}
steam3.RequestPackageInfo( licenseQuery );
foreach ( var license in licenseQuery )
{
SteamApps.PICSProductInfoCallback.PICSProductInfo package; SteamApps.PICSProductInfoCallback.PICSProductInfo package;
if ( steam3.PackageInfo.TryGetValue( (uint)license.PackageID, out package ) || package == null ) if ( steam3.PackageInfo.TryGetValue( license, out package ) || package == null )
{ {
KeyValue root = package.KeyValues[license.PackageID.ToString()]; KeyValue root = package.KeyValues[license.ToString()];
KeyValue subset = (appId == true ? root["appids"] : root["depotids"]); KeyValue subset = (appId == true ? root["appids"] : root["depotids"]);
foreach ( var child in subset.Children ) foreach ( var child in subset.Children )
@ -214,7 +222,7 @@ namespace DepotDownloader
} }
} }
if ( CDRManager.SubHasDepot( ( int )license.PackageID, depotId ) ) if ( CDRManager.SubHasDepot( ( int )license, depotId ) )
return true; return true;
} }

@ -171,7 +171,10 @@ namespace DepotDownloader
SteamApps.PICSRequest request = new SteamApps.PICSRequest(appId); SteamApps.PICSRequest request = new SteamApps.PICSRequest(appId);
if (AppTokens.ContainsKey(appId)) if (AppTokens.ContainsKey(appId))
{
request.AccessToken = AppTokens[appId]; request.AccessToken = AppTokens[appId];
request.Public = false;
}
using (JobCallback<SteamApps.PICSProductInfoCallback> appInfoCallback = new JobCallback<SteamApps.PICSProductInfoCallback>(cbMethod, callbacks, steamApps.PICSGetProductInfo(new List<SteamApps.PICSRequest>() { request }, new List<SteamApps.PICSRequest>() { }))) using (JobCallback<SteamApps.PICSProductInfoCallback> appInfoCallback = new JobCallback<SteamApps.PICSProductInfoCallback>(cbMethod, callbacks, steamApps.PICSGetProductInfo(new List<SteamApps.PICSRequest>() { request }, new List<SteamApps.PICSRequest>() { })))
{ {

Loading…
Cancel
Save