From 4353428d41dde2eaca9a0f995b8e5968d38705bb Mon Sep 17 00:00:00 2001 From: Nikolay Kochulin Date: Thu, 18 Apr 2019 17:28:20 +0300 Subject: [PATCH] Add /currencies Signed-off-by: Nikolay Kochulin --- JetKarmaBot/Commands/CurrenciesCommand.cs | 40 +++++++++++++++++++++++ JetKarmaBot/JetKarmaBot.cs | 1 + JetKarmaBot/lang/be-BY.json | 2 ++ JetKarmaBot/lang/en-US.json | 2 ++ JetKarmaBot/lang/ru-RU.json | 2 ++ 5 files changed, 47 insertions(+) create mode 100644 JetKarmaBot/Commands/CurrenciesCommand.cs diff --git a/JetKarmaBot/Commands/CurrenciesCommand.cs b/JetKarmaBot/Commands/CurrenciesCommand.cs new file mode 100644 index 0000000..fc74fa2 --- /dev/null +++ b/JetKarmaBot/Commands/CurrenciesCommand.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using Telegram.Bot.Args; +using Perfusion; +using JetKarmaBot.Services; +using Telegram.Bot; +using Telegram.Bot.Types.Enums; +using System.Linq; + +namespace JetKarmaBot.Commands +{ + public class CurrenciesCommand : IChatCommand + { + [Inject] KarmaContextFactory Db; + [Inject] TelegramBotClient Client { get; set; } + [Inject] Localization Locale { get; set; } + public IReadOnlyCollection Names => new[] { "currencies", "awardtypes" }; + + public string Description => "Shows all award types"; + public string DescriptionID => "jetkarmabot.currencies.help"; + + public IReadOnlyCollection Arguments => new ChatCommandArgument[] { + }; + + public bool Execute(CommandString cmd, MessageEventArgs args) + { + using (var db = Db.GetContext()) + { + var currentLocale = Locale[db.Chats.Find(args.Message.Chat.Id).Locale]; + string resp = currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n", + db.AwardTypes.ToList().Select(x => $"{x.Symbol} ({x.CommandName}) - {currentLocale["jetkarmabot.awardtypes." + x.CommandName]}")); + Client.SendTextMessageAsync( + args.Message.Chat.Id, + resp, + replyToMessageId: args.Message.MessageId, + parseMode: ParseMode.Html); + return true; + } + } + } +} \ No newline at end of file diff --git a/JetKarmaBot/JetKarmaBot.cs b/JetKarmaBot/JetKarmaBot.cs index 2c344a5..4d3a88a 100644 --- a/JetKarmaBot/JetKarmaBot.cs +++ b/JetKarmaBot/JetKarmaBot.cs @@ -77,6 +77,7 @@ namespace JetKarmaBot Commands.Add(c.ResolveObject(new AwardCommand(Me))); Commands.Add(c.ResolveObject(new StatusCommand())); Commands.Add(c.ResolveObject(new LocaleCommand())); + Commands.Add(c.ResolveObject(new CurrenciesCommand())); } #endregion diff --git a/JetKarmaBot/lang/be-BY.json b/JetKarmaBot/lang/be-BY.json index beae628..c597ae3 100644 --- a/JetKarmaBot/lang/be-BY.json +++ b/JetKarmaBot/lang/be-BY.json @@ -29,6 +29,8 @@ "jetkarmabot.changelocale.localehelp": "Новая лакаль, альбо каманда list - спіс перакладаў. Калі пуста - паказваецца бягучая лакаль.", "jetkarmabot.help.help": "Паказвае інструкцыю да каманды, ці спіс каманд.", "jetkarmabot.help.commandhelp": "Каманда, да якой трэба паказаць інструкцыю. Калі пуста, то паказваецца спіс каманд.", + "jetkarmabot.currencies.help": "Паказвае ўсе тыпы узнагарод", + "jetkarmabot.currencies.listtext": "Тыпы узнагарод:", "jetkarmabot.awardtypes.star": "Зорачка", "jetkarmabot.awardtypes.pie": "з паліцы піражок", "jetkarmabot.awardtypes.dream": "Мара", diff --git a/JetKarmaBot/lang/en-US.json b/JetKarmaBot/lang/en-US.json index aabbf12..d10dca0 100644 --- a/JetKarmaBot/lang/en-US.json +++ b/JetKarmaBot/lang/en-US.json @@ -28,6 +28,8 @@ "jetkarmabot.changelocale.localehelp": "The locale to switch to. Can be \"list\" to list all possible locales. Also can be empty to get current locale", "jetkarmabot.help.help": "Displays help text for all(one) command(s)", "jetkarmabot.help.commandhelp": "The command to return help text for. If empty shows all commands.", + "jetkarmabot.currencies.help": "Shows all award types", + "jetkarmabot.currencies.listtext": "Award types:", "jetkarmabot.awardtypes.star": "Star", "jetkarmabot.awardtypes.pie": "a pie from the shelf", "jetkarmabot.awardtypes.dream": "Dream", diff --git a/JetKarmaBot/lang/ru-RU.json b/JetKarmaBot/lang/ru-RU.json index 7d55242..cbd82c6 100644 --- a/JetKarmaBot/lang/ru-RU.json +++ b/JetKarmaBot/lang/ru-RU.json @@ -28,6 +28,8 @@ "jetkarmabot.changelocale.localehelp": "Новая локаль, либо команда list - список переводов. Если пусто - показывается текущая локаль.", "jetkarmabot.help.help": "Показывает инструкцию к команде, или список команд.", "jetkarmabot.help.commandhelp": "Команда, к которой нужно показать инструкцию. Если пусто, то показывается список команд.", + "jetkarmabot.currencies.help": "Показывает все типы наград", + "jetkarmabot.currencies.listtext": "Типы наград:", "jetkarmabot.awardtypes.star": "звездочку", "jetkarmabot.awardtypes.pie": "с полки пирожок", "jetkarmabot.awardtypes.dream": "мечту",