Patreon stuff improved
This commit is contained in:
parent
b09cd7ea43
commit
6efd78ca21
@ -28,6 +28,16 @@ namespace NadekoBot.Modules.Utility
|
|||||||
{
|
{
|
||||||
patreon = PatreonThingy.Instance;
|
patreon = PatreonThingy.Instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
|
[OwnerOnly]
|
||||||
|
public async Task PatreonRewardsReload()
|
||||||
|
{
|
||||||
|
await patreon.LoadPledges().ConfigureAwait(false);
|
||||||
|
|
||||||
|
await Context.Channel.SendConfirmAsync("👌").ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
[NadekoCommand, Usage, Description, Aliases]
|
[NadekoCommand, Usage, Description, Aliases]
|
||||||
public async Task ClaimPatreonRewards()
|
public async Task ClaimPatreonRewards()
|
||||||
{
|
{
|
||||||
@ -53,13 +63,15 @@ namespace NadekoBot.Modules.Utility
|
|||||||
await ReplyConfirmLocalized("clpa_success", amount + NadekoBot.BotConfig.CurrencySign).ConfigureAwait(false);
|
await ReplyConfirmLocalized("clpa_success", amount + NadekoBot.BotConfig.CurrencySign).ConfigureAwait(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var rem = (patreon.Interval - (DateTime.UtcNow - patreon.LastUpdate));
|
||||||
var helpcmd = Format.Code(NadekoBot.ModulePrefixes[typeof(Help.Help).Name] + "donate");
|
var helpcmd = Format.Code(NadekoBot.ModulePrefixes[typeof(Help.Help).Name] + "donate");
|
||||||
await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
|
await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
|
||||||
.WithDescription(GetText("clpa_fail"))
|
.WithDescription(GetText("clpa_fail"))
|
||||||
.AddField(efb => efb.WithName(GetText("clpa_fail_already_title")).WithValue(GetText("clpa_fail_already")))
|
.AddField(efb => efb.WithName(GetText("clpa_fail_already_title")).WithValue(GetText("clpa_fail_already")))
|
||||||
.AddField(efb => efb.WithName(GetText("clpa_fail_wait_title")).WithValue(GetText("clpa_fail_wait")))
|
.AddField(efb => efb.WithName(GetText("clpa_fail_wait_title")).WithValue(GetText("clpa_fail_wait")))
|
||||||
.AddField(efb => efb.WithName(GetText("clpa_fail_conn_title")).WithValue(GetText("clpa_fail_conn")))
|
.AddField(efb => efb.WithName(GetText("clpa_fail_conn_title")).WithValue(GetText("clpa_fail_conn")))
|
||||||
.AddField(efb => efb.WithName(GetText("clpa_fail_sup_title")).WithValue(GetText("clpa_fail_sup", helpcmd))))
|
.AddField(efb => efb.WithName(GetText("clpa_fail_sup_title")).WithValue(GetText("clpa_fail_sup", helpcmd)))
|
||||||
|
.WithFooter(efb => efb.WithText(GetText("clpa_next_update", rem))))
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,21 +84,25 @@ namespace NadekoBot.Modules.Utility
|
|||||||
private readonly SemaphoreSlim getPledgesLocker = new SemaphoreSlim(1, 1);
|
private readonly SemaphoreSlim getPledgesLocker = new SemaphoreSlim(1, 1);
|
||||||
|
|
||||||
public ImmutableArray<PatreonUserAndReward> Pledges { get; private set; }
|
public ImmutableArray<PatreonUserAndReward> Pledges { get; private set; }
|
||||||
|
public DateTime LastUpdate { get; private set; } = DateTime.UtcNow;
|
||||||
|
|
||||||
private readonly Timer update;
|
private readonly Timer update;
|
||||||
private readonly SemaphoreSlim claimLockJustInCase = new SemaphoreSlim(1, 1);
|
private readonly SemaphoreSlim claimLockJustInCase = new SemaphoreSlim(1, 1);
|
||||||
private readonly Logger _log;
|
private readonly Logger _log;
|
||||||
|
|
||||||
|
public readonly TimeSpan Interval = TimeSpan.FromHours(1);
|
||||||
|
|
||||||
private PatreonThingy()
|
private PatreonThingy()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.PatreonAccessToken))
|
if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.PatreonAccessToken))
|
||||||
return;
|
return;
|
||||||
_log = LogManager.GetCurrentClassLogger();
|
_log = LogManager.GetCurrentClassLogger();
|
||||||
update = new Timer(async (_) => await LoadPledges(), null, TimeSpan.Zero, TimeSpan.FromHours(3));
|
update = new Timer(async (_) => await LoadPledges(), null, TimeSpan.Zero, Interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task LoadPledges()
|
public async Task LoadPledges()
|
||||||
{
|
{
|
||||||
|
LastUpdate = DateTime.UtcNow;
|
||||||
await getPledgesLocker.WaitAsync(1000).ConfigureAwait(false);
|
await getPledgesLocker.WaitAsync(1000).ConfigureAwait(false);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -2596,10 +2596,10 @@
|
|||||||
<value>listquotes liqu</value>
|
<value>listquotes liqu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="listquotes_desc" xml:space="preserve">
|
<data name="listquotes_desc" xml:space="preserve">
|
||||||
<value>`{0}liqu` or `{0}liqu 3`</value>
|
<value>Lists all quotes on the server ordered alphabetically. 15 Per page.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="listquotes_usage" xml:space="preserve">
|
<data name="listquotes_usage" xml:space="preserve">
|
||||||
<value>Lists all quotes on the server ordered alphabetically. 15 Per page.</value>
|
<value>`{0}liqu` or `{0}liqu 3`</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="typedel_cmd" xml:space="preserve">
|
<data name="typedel_cmd" xml:space="preserve">
|
||||||
<value>typedel</value>
|
<value>typedel</value>
|
||||||
@ -3211,7 +3211,7 @@
|
|||||||
<value>Toggles whether the response message of the custom reaction will be sent as a direct message.</value>
|
<value>Toggles whether the response message of the custom reaction will be sent as a direct message.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="crdm_usage" xml:space="preserve">
|
<data name="crdm_usage" xml:space="preserve">
|
||||||
<value>`{0}crad 44`</value>
|
<value>`{0}crdm 44`</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="aliaslist_cmd" xml:space="preserve">
|
<data name="aliaslist_cmd" xml:space="preserve">
|
||||||
<value>aliaslist cmdmaplist aliases</value>
|
<value>aliaslist cmdmaplist aliases</value>
|
||||||
@ -3334,7 +3334,7 @@
|
|||||||
<value>clparew</value>
|
<value>clparew</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="claimpatreonrewards_desc" xml:space="preserve">
|
<data name="claimpatreonrewards_desc" xml:space="preserve">
|
||||||
<value>Claim patreon rewards. If you're subscribed to bot owner's patreon you can user this command to claim your rewards - assuming bot owner did setup has their patreon key.</value>
|
<value>Claim patreon rewards. If you're subscribed to bot owner's patreon you can use this command to claim your rewards - assuming bot owner did setup has their patreon key.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="claimpatreonrewards_usage" xml:space="preserve">
|
<data name="claimpatreonrewards_usage" xml:space="preserve">
|
||||||
<value>`{0}clparew`</value>
|
<value>`{0}clparew`</value>
|
||||||
@ -3366,4 +3366,37 @@
|
|||||||
<data name="time_usage" xml:space="preserve">
|
<data name="time_usage" xml:space="preserve">
|
||||||
<value>`{0}time London, UK`</value>
|
<value>`{0}time London, UK`</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="patreonrewardsreload_cmd" xml:space="preserve">
|
||||||
|
<value>parewrel</value>
|
||||||
|
</data>
|
||||||
|
<data name="patreonrewardsreload_desc" xml:space="preserve">
|
||||||
|
<value>Forces the update of the list of patrons who are eligible for the reward.</value>
|
||||||
|
</data>
|
||||||
|
<data name="patreonrewardsreload_usage" xml:space="preserve">
|
||||||
|
<value>`{0}parewrel`</value>
|
||||||
|
</data>
|
||||||
|
<data name="shopadd_cmd" xml:space="preserve">
|
||||||
|
<value>shopadd</value>
|
||||||
|
</data>
|
||||||
|
<data name="shopadd_desc" xml:space="preserve">
|
||||||
|
<value>Adds an item to the shop by specifying type price and name.</value>
|
||||||
|
</data>
|
||||||
|
<data name="shopadd_usage" xml:space="preserve">
|
||||||
|
<value>`{0}shopadd role 1000 Rich`</value>
|
||||||
|
</data>
|
||||||
|
<data name="shopremove_cmd" xml:space="preserve">
|
||||||
|
<value>shoprem shoprm</value>
|
||||||
|
</data>
|
||||||
|
<data name="shopremove_desc" xml:space="preserve">
|
||||||
|
<value>Removes an item from the shop by its color.</value>
|
||||||
|
</data>
|
||||||
|
<data name="shop_cmd" xml:space="preserve">
|
||||||
|
<value>shop</value>
|
||||||
|
</data>
|
||||||
|
<data name="shop_desc" xml:space="preserve">
|
||||||
|
<value>Lists this server's administrators' shop. Paginated.</value>
|
||||||
|
</data>
|
||||||
|
<data name="shop_usage" xml:space="preserve">
|
||||||
|
<value>`{0}shop` or `{0}shop 2`</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Loading…
Reference in New Issue
Block a user