mirror of
https://github.com/Jetsparrow/karmabot.git
synced 2026-01-21 09:06:09 +03:00
Add RequestContext.SendMessage + Silent messages
This commit is contained in:
parent
fdbeec4ea4
commit
7843a60fd9
@ -28,13 +28,13 @@ namespace JetKarmaBot.Commands
|
|||||||
{
|
{
|
||||||
if (recipientId != default(int))
|
if (recipientId != default(int))
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(ctx.EventArgs.Message.Chat.Id, currentLocale["jetkarmabot.award.errdup"]);
|
await ctx.SendMessage(currentLocale["jetkarmabot.award.errdup"]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
recipientId = await db.Users.Where(x => x.Username == arg).Select(x => x.UserId).FirstOrDefaultAsync();
|
recipientId = await db.Users.Where(x => x.Username == arg).Select(x => x.UserId).FirstOrDefaultAsync();
|
||||||
if (recipientId == default(int))
|
if (recipientId == default(int))
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(ctx.EventArgs.Message.Chat.Id, currentLocale["jetkarmabot.award.errbadusername"]);
|
await ctx.SendMessage(currentLocale["jetkarmabot.award.errbadusername"]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,7 +44,7 @@ namespace JetKarmaBot.Commands
|
|||||||
awardTypeText = arg;
|
awardTypeText = arg;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(ctx.EventArgs.Message.Chat.Id, currentLocale["jetkarmabot.award.errdup"]);
|
await ctx.SendMessage(currentLocale["jetkarmabot.award.errdup"]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ namespace JetKarmaBot.Commands
|
|||||||
|
|
||||||
if (recipientId == default(int))
|
if (recipientId == default(int))
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(ctx.EventArgs.Message.Chat.Id, currentLocale["jetkarmabot.award.errawardnoreply"]);
|
await ctx.SendMessage(currentLocale["jetkarmabot.award.errawardnoreply"]);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,21 +66,15 @@ namespace JetKarmaBot.Commands
|
|||||||
|
|
||||||
if (awarder.Id == recipientId)
|
if (awarder.Id == recipientId)
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(currentLocale["jetkarmabot.award.errawardself"]);
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
currentLocale["jetkarmabot.award.errawardself"],
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.GetFeature<ChatCommandRouter.Feature>().Router.Me.Id == recipientId)
|
if (ctx.GetFeature<ChatCommandRouter.Feature>().Router.Me.Id == recipientId)
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(awarding
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
awarding
|
|
||||||
? currentLocale["jetkarmabot.award.errawardbot"]
|
? currentLocale["jetkarmabot.award.errawardbot"]
|
||||||
: currentLocale["jetkarmabot.award.errrevokebot"],
|
: currentLocale["jetkarmabot.award.errrevokebot"]);
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,10 +107,7 @@ namespace JetKarmaBot.Commands
|
|||||||
|
|
||||||
var response = message + "\n" + String.Format(currentLocale["jetkarmabot.award.statustext"], recUserName, prevCount + (awarding ? 1 : -1), awardType.Symbol);
|
var response = message + "\n" + String.Format(currentLocale["jetkarmabot.award.statustext"], recUserName, prevCount + (awarding ? 1 : -1), awardType.Symbol);
|
||||||
|
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(response);
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
response,
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,27 +21,18 @@ namespace JetKarmaBot.Commands
|
|||||||
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
||||||
if (cmd.Parameters.Length < 1)
|
if (cmd.Parameters.Length < 1)
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.getlocale"]);
|
||||||
args.Message.Chat.Id,
|
|
||||||
currentLocale["jetkarmabot.changelocale.getlocale"],
|
|
||||||
replyToMessageId: args.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (cmd.Parameters[0] == "list")
|
else if (cmd.Parameters[0] == "list")
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.listalltext"] + "\n"
|
||||||
args.Message.Chat.Id,
|
+ string.Join("\n", Locale.Select(a => a.Key)));
|
||||||
currentLocale["jetkarmabot.changelocale.listalltext"] + "\n"
|
|
||||||
+ string.Join("\n", Locale.Select(a => a.Key)),
|
|
||||||
replyToMessageId: args.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (cmd.Parameters[0] == "all")
|
else if (cmd.Parameters[0] == "all")
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.errorall"]);
|
||||||
args.Message.Chat.Id,
|
|
||||||
currentLocale["jetkarmabot.changelocale.errorall"],
|
|
||||||
replyToMessageId: args.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
string localeId;
|
string localeId;
|
||||||
@ -54,10 +45,9 @@ namespace JetKarmaBot.Commands
|
|||||||
}
|
}
|
||||||
catch (LocalizationException e)
|
catch (LocalizationException e)
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(
|
||||||
args.Message.Chat.Id,
|
currentLocale["jetkarmabot.changelocale.toomany"] + "\n"
|
||||||
currentLocale["jetkarmabot.changelocale.toomany"] + "\n" + string.Join("\n", (e.Data["LocaleNames"] as Locale[]).Select(x => x.Name)),
|
+ string.Join("\n", (e.Data["LocaleNames"] as Locale[]).Select(x => x.Name)));
|
||||||
replyToMessageId: args.Message.MessageId);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
(await db.Chats.FindAsync(args.Message.Chat.Id)).Locale = localeId;
|
(await db.Chats.FindAsync(args.Message.Chat.Id)).Locale = localeId;
|
||||||
@ -65,11 +55,9 @@ namespace JetKarmaBot.Commands
|
|||||||
|
|
||||||
currentLocale = Locale[localeId];
|
currentLocale = Locale[localeId];
|
||||||
|
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(
|
||||||
args.Message.Chat.Id,
|
|
||||||
(currentLocale.HasNote ? currentLocale["jetkarmabot.changelocale.beforenote"] + currentLocale.Note + "\n" : "")
|
(currentLocale.HasNote ? currentLocale["jetkarmabot.changelocale.beforenote"] + currentLocale.Note + "\n" : "")
|
||||||
+ currentLocale["jetkarmabot.changelocale.justchanged"],
|
+ currentLocale["jetkarmabot.changelocale.justchanged"]);
|
||||||
replyToMessageId: args.Message.MessageId);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,13 +23,10 @@ namespace JetKarmaBot.Commands
|
|||||||
{
|
{
|
||||||
var db = ctx.Database;
|
var db = ctx.Database;
|
||||||
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
||||||
string resp = currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n",
|
await ctx.SendMessage(
|
||||||
(await db.AwardTypes.ToListAsync()).Select(x => $"{x.Symbol} ({x.CommandName}) <i>{currentLocale["jetkarmabot.awardtypes.nominative." + x.CommandName]}</i>"));
|
currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n",
|
||||||
await ctx.Client.SendTextMessageAsync(
|
(await db.AwardTypes.ToListAsync())
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
.Select(x => $"{x.Symbol} ({x.CommandName}) <i>{currentLocale["jetkarmabot.awardtypes.nominative." + x.CommandName]}</i>")));
|
||||||
resp,
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId,
|
|
||||||
parseMode: ParseMode.Html);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,20 +31,12 @@ namespace JetKarmaBot.Commands
|
|||||||
var router = ctx.GetFeature<ChatCommandRouter.Feature>().Router;
|
var router = ctx.GetFeature<ChatCommandRouter.Feature>().Router;
|
||||||
if (ctx.Command.Parameters.Length < 1)
|
if (ctx.Command.Parameters.Length < 1)
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(router.GetHelpText(currentLocale));
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
router.GetHelpText(currentLocale),
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId,
|
|
||||||
parseMode: ParseMode.Html);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(router.GetHelpTextFor(ctx.Command.Parameters[0], currentLocale));
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
router.GetHelpTextFor(ctx.Command.Parameters[0], currentLocale),
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId,
|
|
||||||
parseMode: ParseMode.Html);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,8 +18,6 @@ namespace JetKarmaBot.Commands
|
|||||||
var asker = ctx.EventArgs.Message.From;
|
var asker = ctx.EventArgs.Message.From;
|
||||||
var awardTypeName = ctx.Command.Parameters.FirstOrDefault();
|
var awardTypeName = ctx.Command.Parameters.FirstOrDefault();
|
||||||
|
|
||||||
string response;
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(awardTypeName))
|
if (string.IsNullOrWhiteSpace(awardTypeName))
|
||||||
awardTypeName = "star";
|
awardTypeName = "star";
|
||||||
|
|
||||||
@ -29,7 +27,7 @@ namespace JetKarmaBot.Commands
|
|||||||
var awardTypeId = await awardTypeIdQuery.FirstAsync();
|
var awardTypeId = await awardTypeIdQuery.FirstAsync();
|
||||||
var awardType = await db.AwardTypes.FindAsync(awardTypeId);
|
var awardType = await db.AwardTypes.FindAsync(awardTypeId);
|
||||||
|
|
||||||
response = string.Format(currentLocale["jetkarmabot.leaderboard.specifictext"], awardType.Symbol) + "\n" + string.Join('\n',
|
await ctx.SendMessage(string.Format(currentLocale["jetkarmabot.leaderboard.specifictext"], awardType.Symbol) + "\n" + string.Join('\n',
|
||||||
await Task.WhenAll((await db.Awards
|
await Task.WhenAll((await db.Awards
|
||||||
.Where(x => x.ChatId == ctx.EventArgs.Message.Chat.Id && x.AwardTypeId == awardTypeId)
|
.Where(x => x.ChatId == ctx.EventArgs.Message.Chat.Id && x.AwardTypeId == awardTypeId)
|
||||||
.GroupBy(x => x.ToId)
|
.GroupBy(x => x.ToId)
|
||||||
@ -38,12 +36,7 @@ namespace JetKarmaBot.Commands
|
|||||||
.Take(5)
|
.Take(5)
|
||||||
.ToListAsync())
|
.ToListAsync())
|
||||||
.Select(async (x, index) => $"{index + 1}. {(await db.Users.FindAsync(x.UserId)).Username} - {x.Amount}"))
|
.Select(async (x, index) => $"{index + 1}. {(await db.Users.FindAsync(x.UserId)).Username} - {x.Amount}"))
|
||||||
);
|
));
|
||||||
|
|
||||||
await ctx.Client.SendTextMessageAsync(
|
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
response,
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -60,10 +60,7 @@ namespace JetKarmaBot.Commands
|
|||||||
.SumAsync(x => x.Amount), awardType.Symbol);
|
.SumAsync(x => x.Amount), awardType.Symbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(response);
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
response,
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using JetKarmaBot.Commands;
|
using JetKarmaBot.Commands;
|
||||||
using JetKarmaBot.Models;
|
using JetKarmaBot.Models;
|
||||||
using Telegram.Bot;
|
using Telegram.Bot;
|
||||||
@ -24,5 +25,13 @@ namespace JetKarmaBot.Services.Handling
|
|||||||
}
|
}
|
||||||
public object GetService(Type serviceType) => Features.First(x => x.GetType() == serviceType);
|
public object GetService(Type serviceType) => Features.First(x => x.GetType() == serviceType);
|
||||||
public T GetFeature<T>() => (T)Features.First(x => x is T);
|
public T GetFeature<T>() => (T)Features.First(x => x is T);
|
||||||
|
|
||||||
|
//Method to reduce WET in commands
|
||||||
|
public Task SendMessage(string text) => Client.SendTextMessageAsync(
|
||||||
|
EventArgs.Message.Chat.Id,
|
||||||
|
text,
|
||||||
|
replyToMessageId: EventArgs.Message.MessageId,
|
||||||
|
disableNotification: true,
|
||||||
|
parseMode: Telegram.Bot.Types.Enums.ParseMode.Html);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,10 +81,7 @@ namespace JetKarmaBot.Services.Handling
|
|||||||
if (!TimeoutCache[uid].TimeoutMessaged)
|
if (!TimeoutCache[uid].TimeoutMessaged)
|
||||||
{
|
{
|
||||||
Locale currentLocale = Locale[(await ctx.Database.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
Locale currentLocale = Locale[(await ctx.Database.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
|
||||||
await ctx.Client.SendTextMessageAsync(
|
await ctx.SendMessage(currentLocale["jetkarmabot.ratelimit"]);
|
||||||
ctx.EventArgs.Message.Chat.Id,
|
|
||||||
currentLocale["jetkarmabot.ratelimit"],
|
|
||||||
replyToMessageId: ctx.EventArgs.Message.MessageId);
|
|
||||||
TimeoutCache[uid] = new TimeoutStats() { TimeoutMessaged = true, CooldownDate = TimeoutCache[uid].CooldownDate };
|
TimeoutCache[uid] = new TimeoutStats() { TimeoutMessaged = true, CooldownDate = TimeoutCache[uid].CooldownDate };
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user