Patreon rewards fix finished
This commit is contained in:
		@@ -34,7 +34,9 @@ namespace NadekoBot.Modules.Utility
 | 
			
		||||
            [OwnerOnly]
 | 
			
		||||
            public async Task PatreonRewardsReload()
 | 
			
		||||
            {
 | 
			
		||||
                await _patreon.LoadPledges().ConfigureAwait(false);
 | 
			
		||||
                if (string.IsNullOrWhiteSpace(_creds.PatreonAccessToken))
 | 
			
		||||
                    return;
 | 
			
		||||
                await _patreon.RefreshPledges(true).ConfigureAwait(false);
 | 
			
		||||
 | 
			
		||||
                await Context.Channel.SendConfirmAsync("👌").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
@@ -44,6 +46,7 @@ namespace NadekoBot.Modules.Utility
 | 
			
		||||
            {
 | 
			
		||||
                if (string.IsNullOrWhiteSpace(_creds.PatreonAccessToken))
 | 
			
		||||
                    return;
 | 
			
		||||
 | 
			
		||||
                if (DateTime.UtcNow.Day < 5)
 | 
			
		||||
                {
 | 
			
		||||
                    await ReplyErrorLocalized("clpa_too_early").ConfigureAwait(false);
 | 
			
		||||
 
 | 
			
		||||
@@ -163,7 +163,7 @@ namespace NadekoBot
 | 
			
		||||
                var repeaterService = new MessageRepeaterService(this, Client, AllGuildConfigs);
 | 
			
		||||
                //var converterService = new ConverterService(Db);
 | 
			
		||||
                var commandMapService = new CommandMapService(AllGuildConfigs);
 | 
			
		||||
                var patreonRewardsService = new PatreonRewardsService(Credentials, Db, Currency);
 | 
			
		||||
                var patreonRewardsService = new PatreonRewardsService(Credentials, Db, Currency, Client);
 | 
			
		||||
                var verboseErrorsService = new VerboseErrorsService(AllGuildConfigs, Db, CommandHandler, helpService);
 | 
			
		||||
                var pruneService = new PruneService();
 | 
			
		||||
                #endregion
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,8 @@ namespace NadekoBot.Services.Utility
 | 
			
		||||
        private readonly DbService _db;
 | 
			
		||||
        private readonly CurrencyService _currency;
 | 
			
		||||
 | 
			
		||||
        private readonly string cacheFileName = "./patreon-rewards.json";
 | 
			
		||||
 | 
			
		||||
        public PatreonRewardsService(IBotCredentials creds, DbService db, CurrencyService currency,
 | 
			
		||||
            DiscordSocketClient client)
 | 
			
		||||
        {
 | 
			
		||||
@@ -41,7 +43,8 @@ namespace NadekoBot.Services.Utility
 | 
			
		||||
            if (string.IsNullOrWhiteSpace(creds.PatreonAccessToken))
 | 
			
		||||
                return;
 | 
			
		||||
            _log = LogManager.GetCurrentClassLogger();
 | 
			
		||||
            Updater = new Timer(async (load) => await RefreshPledges((bool)load), client.ShardId == 0, TimeSpan.Zero, Interval);
 | 
			
		||||
            Updater = new Timer(async (load) => await RefreshPledges((bool)load),
 | 
			
		||||
                client.ShardId == 0, client.ShardId == 0 ? TimeSpan.Zero : TimeSpan.FromMinutes(2), Interval);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public async Task RefreshPledges(bool shouldLoad)
 | 
			
		||||
@@ -93,11 +96,15 @@ namespace NadekoBot.Services.Utility
 | 
			
		||||
                {
 | 
			
		||||
                    getPledgesLocker.Release();
 | 
			
		||||
                }
 | 
			
		||||
                Console.WriteLine("Pledges loaded from the website");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                if(File.Exists(cacheFileName))
 | 
			
		||||
                Pledges = JsonConvert.DeserializeObject<PatreonUserAndReward[]>(File.ReadAllText("./patreon_rewards.json"))
 | 
			
		||||
                    .ToImmutableArray();
 | 
			
		||||
 | 
			
		||||
                Console.WriteLine("Pledges loaded from the file");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user