mirror of
https://github.com/reactos/reactos.git
synced 2024-08-27 13:48:42 +00:00
72 lines
1.8 KiB
C#
72 lines
1.8 KiB
C#
using System;
|
|
|
|
namespace TechBot.Library
|
|
{
|
|
public class BugCommand : BaseCommand, ICommand
|
|
{
|
|
private IServiceOutput serviceOutput;
|
|
private string RosBugUrl;
|
|
private string WineBugUrl;
|
|
private string SambaBugUrl;
|
|
|
|
public BugCommand(IServiceOutput serviceOutput,
|
|
string RosBugUrl,
|
|
string WineBugUrl,
|
|
string SambaBugUrl)
|
|
{
|
|
this.serviceOutput = serviceOutput;
|
|
this.RosBugUrl = RosBugUrl;
|
|
this.WineBugUrl = WineBugUrl;
|
|
this.SambaBugUrl = SambaBugUrl;
|
|
}
|
|
|
|
public bool CanHandle(string commandName)
|
|
{
|
|
return CanHandle(commandName,
|
|
new string[] { "bug" });
|
|
}
|
|
|
|
public void Handle(MessageContext context,
|
|
string commandName,
|
|
string parameters)
|
|
{
|
|
string bugText = parameters;
|
|
if (bugText.Equals(String.Empty))
|
|
{
|
|
serviceOutput.WriteLine(context,
|
|
"Please provide a valid bug number.");
|
|
return;
|
|
}
|
|
|
|
NumberParser np = new NumberParser();
|
|
long bug = np.Parse(bugText);
|
|
if (np.Error)
|
|
{
|
|
serviceOutput.WriteLine(context,
|
|
String.Format("{0} is not a valid bug number.",
|
|
bugText));
|
|
return;
|
|
}
|
|
|
|
string bugUrl = this.RosBugUrl;
|
|
|
|
if (context is ChannelMessageContext)
|
|
{
|
|
ChannelMessageContext channelContext = context as ChannelMessageContext;
|
|
if (channelContext.Channel.Name == "winehackers")
|
|
bugUrl = this.WineBugUrl;
|
|
else if (channelContext.Channel.Name == "samba-technical")
|
|
bugUrl = this.SambaBugUrl;
|
|
}
|
|
|
|
serviceOutput.WriteLine(context,
|
|
String.Format(bugUrl, bug));
|
|
}
|
|
|
|
public string Help()
|
|
{
|
|
return "!bug <number>";
|
|
}
|
|
}
|
|
}
|