SYMBOL INDEX (300 symbols across 29 files) FILE: FreePackages.Tests/Apps.cs class Apps (line 10) | [TestClass] method InitializePackageFilter (line 15) | [TestInitialize] method CleanupPackageFilter (line 22) | [TestCleanup] method CanDetectFreeApp (line 28) | [TestMethod] method CanDetectAvailableAppByReleaseState (line 35) | [TestMethod] method CanDetectAvailableAppByState (line 43) | [TestMethod] method CanDetectRedeemableAppWithAppRequirement (line 51) | [TestMethod] method CanDetectRedeemableAppWithRestrictedCountry (line 62) | [TestMethod] method CanDetectRedeemableAppWithPurchaseRestrictedCountry (line 74) | [TestMethod] method CanFindAppDLC (line 87) | [TestMethod] method CanDetectNonRedeemablePlaytestWithHiddenParent (line 95) | [TestMethod] FILE: FreePackages.Tests/Filters.cs class Filters (line 9) | [TestClass] method InitializePackageFilter (line 15) | [TestInitialize] method CleanupPackageFilter (line 23) | [TestCleanup] method CanFilterAppByType (line 30) | [TestMethod] method CanFilterAppByTag (line 47) | [TestMethod] method CanFilterAppAppByParentTag (line 73) | [TestMethod] method CanFilterAppByCategory (line 97) | [TestMethod] method CanFilterAppWithNoCategoryByParentCategory (line 123) | [TestMethod] method CanFilterAppByParentCategory (line 146) | [TestMethod] method CanFilterAppByLanguage (line 161) | [TestMethod] method CanFilterAppWithNoLanguageByParentLanguage (line 174) | [TestMethod] method CanFilterAppByParentLanguage (line 188) | [TestMethod] method CanFilterAppByReviewScore (line 203) | [TestMethod] method CanFilterAppByContentDescriptor (line 216) | [TestMethod] method CanFilterAppAppByParentContentDescriptor (line 227) | [TestMethod] method CanFilterAppByID (line 241) | [TestMethod] method CanFilterAppByParentID (line 252) | [TestMethod] method CanFilterAppByPlaytest (line 266) | [TestMethod] method CanFilterPackageByFreeWeekend (line 278) | [TestMethod] method CanFilterPackageByContents (line 289) | [TestMethod] method CanFilterByStoreData (line 306) | [TestMethod] method CanUseMultipleFilters (line 327) | [TestMethod] method CanFilterAppBySystem (line 350) | [TestMethod] method CanFilterPackageByNoCost (line 388) | [TestMethod] method CanFilterByWishlist (line 402) | [TestMethod] method CanFilterByReleaseDate (line 421) | [TestMethod] method CanFilterDemos (line 438) | [TestMethod] FILE: FreePackages.Tests/Packages.cs class Packages (line 10) | [DeploymentItem("TestData")] method InitializePackageFilter (line 18) | [TestInitialize] method CleanupPackageFilter (line 53) | [TestCleanup] method CanDetectFreePackage (line 71) | [TestMethod] method CanDetectPackageDemoState (line 84) | [TestMethod] method CanDetectPackageTimeRestrictions (line 97) | [TestMethod] method CanDetectPackageDisallowedApp (line 111) | [TestMethod] method CanDetectPackageRestrictedCountry (line 124) | [TestMethod] method CanDetectPackagePurchaseRestrictedCountry (line 139) | [TestMethod] method Dispose (line 154) | public void Dispose() => BotCache?.Dispose(); FILE: FreePackages/Commands.cs class Commands (line 16) | internal static class Commands { method Response (line 17) | internal static async Task Response(Bot bot, EAccess access, ... method ResponseCancelRemove (line 108) | private static string? ResponseCancelRemove(Bot bot, EAccess access) { method ResponseCancelRemove (line 124) | private static string? ResponseCancelRemove(EAccess access, ulong stea... method ResponseConfirmRemove (line 142) | private static string? ResponseConfirmRemove(Bot bot, EAccess access) { method ResponseConfirmRemove (line 158) | private static string? ResponseConfirmRemove(EAccess access, ulong ste... method ResponseClearQueue (line 176) | private static string? ResponseClearQueue(Bot bot, EAccess access) { method ResponseClearQueue (line 192) | private static string? ResponseClearQueue(EAccess access, ulong steamI... method ResponseDontRemove (line 210) | private static string? ResponseDontRemove(Bot bot, EAccess access, str... method ResponseDontRemove (line 264) | private static string? ResponseDontRemove(EAccess access, ulong steamI... method ResponseQueueStatus (line 284) | private static string? ResponseQueueStatus(Bot bot, EAccess access) { method ResponseQueueStatus (line 300) | private static string? ResponseQueueStatus(EAccess access, ulong steam... method ResponseQueueLicense (line 318) | private static string? ResponseQueueLicense(Bot bot, EAccess access, s... method ResponseQueueLicense (line 376) | private static string? ResponseQueueLicense(EAccess access, ulong stea... method ResponseRemoveFreePackages (line 396) | private static async Task ResponseRemoveFreePackages(Bot bot,... method ResponseRemoveFreePackages (line 450) | private static async Task ResponseRemoveFreePackages(EAccess ... method FormatStaticResponse (line 464) | internal static string FormatStaticResponse(string response) => ArchiS... method FormatBotResponse (line 465) | internal static string FormatBotResponse(Bot bot, string response) => ... FILE: FreePackages/Data/Cache/BotCache.cs class BotCache (line 14) | internal sealed class BotCache : SerializableFile { method BotCache (line 50) | [JsonConstructor] method BotCache (line 53) | internal BotCache(string filePath) : this() { method Save (line 61) | protected override Task Save() => Save(this); method CreateOrLoad (line 63) | internal static async Task CreateOrLoad(string filePath) { method AddPackage (line 101) | internal bool AddPackage(Package package) { method AddPackages (line 112) | internal bool AddPackages(IEnumerable packages) { method RemovePackage (line 124) | internal bool RemovePackage(Package package) { method RemoveAppPackages (line 131) | internal bool RemoveAppPackages(HashSet appIDsToRemove) { method GetNextPackage (line 138) | internal Package? GetNextPackage(HashSet types) { method AddActivation (line 149) | internal void AddActivation(DateTime activation, uint count = 1, IRead... method NumActivationsPastPeriod (line 171) | internal int NumActivationsPastPeriod() { method GetLastActivation (line 175) | internal DateTime? GetLastActivation() { method AddChanges (line 187) | internal void AddChanges(HashSet? appIDs = null, HashSet? ... method RemoveChange (line 207) | internal void RemoveChange(uint? appID = null, uint? packageID = null,... method SaveChanges (line 221) | internal void SaveChanges() { method ClearQueue (line 225) | internal void ClearQueue() { method CancelRemoval (line 232) | internal void CancelRemoval() { method AddWaitlistedPlaytest (line 237) | internal void AddWaitlistedPlaytest(uint appID) { method UpdateSeenPackages (line 243) | internal void UpdateSeenPackages(List LastChangeNumber > 0; method ShouldSerializeLastASFInfoItemCount (line 20) | public bool ShouldSerializeLastASFInfoItemCount() => LastASFInfoItemCo... method GlobalCache (line 22) | [JsonConstructor] method Save (line 27) | protected override Task Save() => Save(this); method CreateOrLoad (line 29) | internal static async Task CreateOrLoad() { method UpdateChangeNumber (line 60) | internal void UpdateChangeNumber(uint currentChangeNumber) { method UpdateASFInfoItemCount (line 66) | internal void UpdateASFInfoItemCount(uint currentASFInfoItemCount) { FILE: FreePackages/Data/External/ASFInfo.cs class ASFInfo (line 17) | internal static class ASFInfo { method Update (line 24) | internal static void Update() { method DoUpdate (line 28) | private static async Task DoUpdate() { FILE: FreePackages/Data/External/CardApps.cs class CardApps (line 13) | internal static class CardApps { method Update (line 19) | internal static void Update() { method DoUpdate (line 23) | private static async Task DoUpdate() { class Badges (line 48) | private sealed class Badges { FILE: FreePackages/Data/PICS/ProductInfo.cs class ProductInfo (line 11) | internal static class ProductInfo { method GetProductInfo (line 16) | internal async static Task?> G... method GetProductIDBatches (line 33) | internal static IEnumerable<(HashSet?, HashSet?)> GetProdu... method FetchProductInfo (line 55) | private async static Task?> Fe... FILE: FreePackages/FreePackages.cs class FreePackages (line 13) | [Export(typeof(IPlugin))] method OnLoaded (line 20) | public Task OnLoaded() { method OnBotCommand (line 26) | public async Task OnBotCommand(Bot bot, EAccess access, strin... method OnASFInit (line 30) | public async Task OnASFInit(IReadOnlyDictionary? ... method OnBotInitModules (line 39) | public async Task OnBotInitModules(Bot bot, IReadOnlyDictionary GetPreferredChangeNumberToStartFrom() { method OnPICSChanges (line 98) | public Task OnPICSChanges(uint currentChangeNumber, IReadOnlyDictionar... method OnPICSChangesRestart (line 104) | public async Task OnPICSChangesRestart(uint currentChangeNumber) { method OnBotSteamCallbacksInit (line 108) | public Task OnBotSteamCallbacksInit(Bot bot, CallbackManager callbackM... method OnBotSteamHandlersInit (line 114) | public Task?> OnBotSteamHandlers... method OnLicenseList (line 118) | private static void OnLicenseList (Bot bot, SteamApps.LicenseListCallb... method OnBotLoggedOn (line 122) | public async Task OnBotLoggedOn(Bot bot) { method OnBotDisconnected (line 126) | public Task OnBotDisconnected(Bot bot, EResult reason) { FILE: FreePackages/Handlers/PICSHandler.cs class PICSHandler (line 12) | internal static class PICSHandler { method OnPICSChanges (line 16) | internal static void OnPICSChanges(uint currentChangeNumber, IReadOnly... method OnPICSRestart (line 31) | internal async static Task OnPICSRestart(uint currentChangeNumber) { method FindOldestPICSChanges (line 82) | private async static Task FindOldestPI... method FetchPICSChanges (line 112) | private async static Task FetchPICSCha... method GetRefreshBot (line 135) | private static Bot? GetRefreshBot() => Bot.BotsReadOnly?.Values.FirstO... FILE: FreePackages/Handlers/PackageHandler.cs class PackageHandler (line 14) | internal sealed class PackageHandler : IDisposable { method PackageHandler (line 28) | private PackageHandler(Bot bot, BotCache botCache, List ... method Dispose (line 37) | public void Dispose() { method AddHandler (line 42) | internal static async Task AddHandler(Bot bot, List filt... method OnLicenseList (line 72) | internal static void OnLicenseList(Bot bot, SteamApps.LicenseListCallb... method OnBotLoggedOn (line 80) | internal static async Task OnBotLoggedOn(Bot bot) { method UpdateUserData (line 90) | private void UpdateUserData() { method FetchUserData (line 94) | private async Task FetchUserData() { method AddChanges (line 122) | internal static void AddChanges(IReadOnlyDictionary IsReady(uint maxWaitTimeSeconds = 120) { method HandleChanges (line 151) | internal async static Task HandleChanges() { method HandleProductInfo (line 181) | private async static Task HandleProductInfo(List? appIDs, HashSet? packag... method ScanRemovables (line 487) | internal async Task ScanRemovables(Dictionary removeable... method ConfirmRemoval (line 598) | internal string ConfirmRemoval() { method ModifyRemovables (line 610) | internal string ModifyRemovables(EPackageType type, uint id) { method CancelRemoval (line 633) | internal string CancelRemoval() { FILE: FreePackages/Handlers/SteamHandler.cs class SteamHandler (line 12) | internal sealed class SteamHandler : ClientMsgHandler { method AddHandler (line 15) | internal static SteamHandler AddHandler(Bot bot) { method HandleMsg (line 26) | public override void HandleMsg(IPacketMsg packetMsg) { } method GetOwnedGames (line 28) | public async Task Hash(FnvOffsetBias, value); method Hash (line 11) | internal static int Hash(uint value) => Hash(FnvOffsetBias, value); method Hash (line 12) | internal static int Hash(bool value) => Hash(FnvOffsetBias, value); method Hash (line 13) | internal static int Hash(string? str) => Hash(FnvOffsetBias, str); method Hash (line 14) | internal static int Hash(IEnumerable? collection) => Hash(FnvO... method Hash (line 15) | internal static int Hash(IEnumerable? collection) => Hash(FnvOff... method Hash (line 16) | internal static int Hash(IEnumerable? collection) => Has... method Hash (line 18) | internal static int Hash(int hash, int value) => unchecked((hash ^ val... method Hash (line 19) | internal static int Hash(int hash, uint value) => Hash(hash, (int) val... method Hash (line 20) | internal static int Hash(int hash, bool value) => Hash(hash, value ? 1... method Hash (line 22) | internal static int Hash(int hash, string? str) { method Hash (line 34) | internal static int Hash(int hash, IEnumerable? collection) { method Hash (line 46) | internal static int Hash(int hash, IEnumerable? collection) { method Hash (line 58) | internal static int Hash(int hash, IEnumerable? collecti... FILE: FreePackages/Helpers/StatusReporter.cs class StatusReporter (line 16) | internal sealed class StatusReporter { method StatusReporter (line 35) | internal StatusReporter(Bot? sender = null, ulong recipientSteamID = 0... method StatusReporter (line 42) | [JsonConstructor] method StatusLogger (line 48) | internal static StatusReporter StatusLogger() { method Report (line 53) | internal void Report(Bot reportingBot, string report, bool suppressDup... method ForceSend (line 101) | internal void ForceSend() { method Send (line 105) | private async Task Send() { FILE: FreePackages/IPC/Api/FreePackagesController.cs class FreePackagesController (line 18) | [Route("Api/FreePackages")] method GetChangesSince (line 20) | [HttpGet("{botNames:required}/GetChangesSince/{changeNumber:required}")] method GetProductInfo (line 51) | [HttpGet("{botNames:required}/GetProductInfo")] method RequestFreeAppLicense (line 107) | [HttpGet("{botName:required}/RequestFreeAppLicense")] method RequestFreeSubLicense (line 151) | [HttpGet("{botName:required}/RequestFreeSubLicense")] method GetOwnedPackages (line 183) | [HttpGet("{botName:required}/GetOwnedPackages")] method GetOwnedApps (line 204) | [HttpGet("{botName:required}/GetOwnedApps")] method QueueLicenses (line 256) | [Consumes("application/json")] FILE: FreePackages/IPC/Requests/QueueLicensesRequest.cs class QueueLicensesRequest (line 5) | public sealed class QueueLicensesRequest { method QueueLicensesRequest (line 15) | [JsonConstructor] FILE: FreePackages/IPC/Responses/FreeSubResponse.cs class FreeSubResponse (line 5) | public sealed class FreeSubResponse { method FreeSubResponse (line 14) | public FreeSubResponse(EResult result, EPurchaseResultDetail purchaseR... FILE: FreePackages/Json.cs class Steam (line 7) | internal static class Steam { class PlaytestAccessResponse (line 8) | internal sealed class PlaytestAccessResponse { method PlaytestAccessResponse (line 19) | [JsonConstructor] class UserData (line 23) | internal sealed class UserData { method UserData (line 64) | [JsonConstructor] class Tag (line 68) | internal sealed class Tag { method Tag (line 84) | [JsonConstructor] class UserInfo (line 88) | internal sealed class UserInfo { method UserInfo (line 130) | [JsonConstructor] class EmptyArrayOrDictionaryConverter (line 135) | public class EmptyArrayOrDictionaryConverter : JsonConverter Read(ref Utf8JsonReader reade... method Write (line 154) | public override void Write(Utf8JsonWriter writer, Dictionary?> GetFilterables(List AddParent(kv?["appid"].AsUnsi... method AddParent (line 132) | internal void AddParent(uint? id, KeyValue? kv) { method IsFree (line 140) | internal bool IsFree() { method IsAvailable (line 157) | internal bool IsAvailable() { method HasID (line 171) | internal bool HasID(IEnumerable ids) { method HasType (line 189) | internal bool HasType(IEnumerable types) { method HasTag (line 198) | internal bool HasTag(IEnumerable tags, bool requireAll = false) { method HasCategory (line 220) | internal bool HasCategory(IEnumerable categories, bool requireAl... method HasContentDescriptor (line 245) | internal bool HasContentDescriptor(IEnumerable content_descripto... method HasLanguage (line 262) | internal bool HasLanguage(IEnumerable languages) { method HasSystem (line 282) | internal bool HasSystem(IEnumerable systems) { FILE: FreePackages/PackageFilter/Filterables/FilterablePackage.cs class FilterablePackage (line 10) | internal sealed class FilterablePackage { method FilterablePackage (line 31) | internal FilterablePackage(SteamApps.PICSProductInfoCallback.PICSProdu... method FilterablePackage (line 32) | internal FilterablePackage(KeyValue kv) : this(Convert.ToUInt32(kv.Nam... method FilterablePackage (line 33) | internal FilterablePackage(uint id, KeyValue kv) { method GetFilterables (line 52) | internal static async Task?> GetFilterables(Li... method AddPackageContents (line 119) | internal void AddPackageContents(IEnumerable kvs) => AddPack... method AddPackageContents (line 121) | internal void AddPackageContents(IEnumerable<(uint id, KeyValue kv)> p... method AddPackageContentParents (line 126) | internal void AddPackageContentParents(IEnumerable kvs) => A... method AddPackageContentParents (line 128) | internal void AddPackageContentParents(IEnumerable<(uint id, KeyValue ... method IsFree (line 141) | internal bool IsFree() { method IsAvailable (line 149) | internal bool IsAvailable() { method IsAvailablePackageContents (line 189) | internal bool IsAvailablePackageContents() { FILE: FreePackages/PackageFilter/PackageFilter.cs class PackageFilter (line 9) | internal sealed class PackageFilter { method PackageFilter (line 21) | internal PackageFilter(BotCache botCache, List filterCon... method UpdateUserDetails (line 31) | internal void UpdateUserDetails(Steam.UserData userData, Steam.UserInf... method IsRedeemableApp (line 48) | internal bool IsRedeemableApp(FilterableApp app, HashSet? includ... method IsAppWantedByFilter (line 89) | internal bool IsAppWantedByFilter(FilterableApp app, FilterConfig filt... method IsAppIgnoredByFilter (line 139) | internal bool IsAppIgnoredByFilter(FilterableApp app, FilterConfig fil... method IsRedeemablePackage (line 189) | internal bool IsRedeemablePackage(FilterablePackage package, bool igno... method IsPackageWantedByFilter (line 246) | internal bool IsPackageWantedByFilter(FilterablePackage package, Filte... method IsPackageIgnoredByFilter (line 255) | internal bool IsPackageIgnoredByFilter(FilterablePackage package, Filt... method IsRedeemablePlaytest (line 272) | internal bool IsRedeemablePlaytest(FilterableApp app) { method IsPlaytestWantedByFilter (line 298) | internal bool IsPlaytestWantedByFilter(FilterableApp app, FilterConfig... method FilterOnlyAllowsPackages (line 329) | internal bool FilterOnlyAllowsPackages(FilterConfig filter) { method IsWantedApp (line 338) | internal bool IsWantedApp(FilterableApp app) { method IsWantedPackage (line 346) | internal bool IsWantedPackage(FilterablePackage package, bool ignoreAg... method IsWantedPlaytest (line 354) | internal bool IsWantedPlaytest(FilterableApp app) { method OwnsApp (line 362) | internal bool OwnsApp(uint appID) { method OwnsSub (line 370) | internal bool OwnsSub(uint subID) { FILE: FreePackages/PackageQueue/ActivationQueue.cs class ActivationQueue (line 10) | internal sealed class ActivationQueue : PackageQueue { method ActivationQueue (line 19) | internal ActivationQueue(Bot bot, BotCache botCache, bool pauseWhilePl... method GetNextPackage (line 27) | protected override Package? GetNextPackage() => BotCache.GetNextPackag... method BeforeProcessing (line 29) | protected override async Task BeforeProcessing(Package pack... method HandleResult (line 118) | protected override DateTime? HandleResult(Package package, EResult res... FILE: FreePackages/PackageQueue/Package.cs class Package (line 6) | public sealed class Package { method ShouldSerializeStartTime (line 21) | public bool ShouldSerializeStartTime() => StartTime != null; method ShouldSerializeFilterHash (line 22) | public bool ShouldSerializeFilterHash() => FilterHash != null; method Package (line 24) | [JsonConstructor] type EPackageType (line 33) | public enum EPackageType { class PackageComparer (line 41) | public class PackageComparer : IEqualityComparer { method Equals (line 42) | public bool Equals(Package? x, Package? y) { method GetHashCode (line 46) | public int GetHashCode(Package obj) { FILE: FreePackages/PackageQueue/PackageQueue.cs class PackageQueue (line 11) | internal abstract class PackageQueue : IDisposable { method PackageQueue (line 18) | internal PackageQueue(Bot bot, BotCache botCache, bool pauseWhilePlayi... method Dispose (line 25) | public void Dispose() { method Start (line 29) | internal void Start() { method ProcessQueue (line 33) | private async Task ProcessQueue() { method GetNextPackage (line 78) | protected abstract Package? GetNextPackage(); method BeforeProcessing (line 80) | protected abstract Task BeforeProcessing(Package package); method HandleResult (line 82) | protected abstract DateTime? HandleResult(Package package, EResult res... method ProcessPackage (line 84) | private async Task ProcessPackage(Package package) { method ClaimFreeApp (line 108) | private async Task ClaimFreeApp(uint appID) { method ClaimFreeSub (line 156) | private async Task ClaimFreeSub(uint subID) { method ClaimPlaytest (line 197) | private async Task ClaimPlaytest(uint appID) { method RemoveSub (line 230) | private async Task RemoveSub(uint subID) { method RemoveApp (line 261) | private async Task RemoveApp(uint appID) { method GetMillisecondsFromNow (line 292) | private static int GetMillisecondsFromNow(DateTime then) => Math.Max(0... method UpdateTimer (line 293) | private void UpdateTimer(DateTime then) => Timer?.Change(GetMillisecon... FILE: FreePackages/PackageQueue/RemovalQueue.cs class RemovalQueue (line 10) | internal sealed class RemovalQueue(Bot bot, BotCache botCache, bool paus... method GetNextPackage (line 16) | protected override Package? GetNextPackage() => BotCache.GetNextPackag... method BeforeProcessing (line 18) | protected override Task BeforeProcessing(Package package) =... method HandleResult (line 20) | protected override DateTime? HandleResult(Package package, EResult res... FILE: FreePackages/WebRequest.cs class WebRequest (line 12) | internal static class WebRequest { method GetUserData (line 13) | internal static async Task GetUserData(Bot bot) { method RequestPlaytestAccess (line 20) | internal static async Task RequestPlayt... method GetAccountLicenses (line 29) | internal static async Task GetAccountLicenses(Bot bot) { method GetUserInfo (line 36) | internal static async Task GetUserInfo(Bot bot) { FILE: FreePackagesImporter/code.user.js function GetSetting (line 37) | function GetSetting(name) { function SetSetting (line 41) | function SetSetting(name, value) { function UpdatePackages (line 63) | function UpdatePackages() { function Finish (line 108) | function Finish() { function AddPackages (line 112) | async function AddPackages() { function SendASF (line 130) | async function SendASF(operation, path, http_method, target_bot, data = ... function BuildInterface (line 168) | function BuildInterface() { function ShowMessage (line 262) | function ShowMessage(message) { function UpdateInterface (line 269) | function UpdateInterface() {