mirror of
https://github.com/Jetsparrow/jetherald.git
synced 2026-01-21 07:56:09 +03:00
38 lines
1.0 KiB
C#
38 lines
1.0 KiB
C#
using System.Threading.Tasks;
|
|
using Telegram.Bot.Args;
|
|
|
|
namespace JetHerald
|
|
{
|
|
public class SubscribeCommand : IChatCommand
|
|
{
|
|
readonly Db db;
|
|
|
|
public SubscribeCommand(Db db)
|
|
{
|
|
this.db = db;
|
|
}
|
|
|
|
public async Task<string> Execute(CommandString cmd, MessageEventArgs args)
|
|
{
|
|
if (cmd.Parameters.Length < 1)
|
|
return null;
|
|
|
|
var chat = NamespacedId.Telegram(args.Message.Chat.Id);
|
|
var token = cmd.Parameters[0];
|
|
|
|
var topic = await db.GetTopicForSub(token, chat);
|
|
|
|
if (topic == null)
|
|
return "topic not found";
|
|
else if (topic.Chat == chat)
|
|
return $"already subscribed to {topic.Name}";
|
|
else if (topic.ReadToken != token)
|
|
return "token mismatch";
|
|
else
|
|
{
|
|
await db.CreateSubscription(topic.TopicId, chat);
|
|
return $"subscribed to {topic.Name}";
|
|
}
|
|
}
|
|
}
|
|
} |