Implement "!bug <number>" command.
Modified: trunk/irc/TechBot/TechBot/App.config
Modified: trunk/irc/TechBot/TechBot/ServiceThread.cs
Modified: trunk/irc/TechBot/TechBot.Console/App.config
Modified: trunk/irc/TechBot/TechBot.Console/Main.cs
Added: trunk/irc/TechBot/TechBot.Library/BugCommand.cs
Modified: trunk/irc/TechBot/TechBot.Library/IrcService.cs
Modified: trunk/irc/TechBot/TechBot.Library/TechBot.Library.prjx
Modified: trunk/irc/TechBot/TechBot.Library/TechBotService.cs
_____
Modified: trunk/irc/TechBot/TechBot/App.config
--- trunk/irc/TechBot/TechBot/App.config 2005-12-14 17:34:00 UTC
(rev 20164)
+++ trunk/irc/TechBot/TechBot/App.config 2005-12-14 18:13:05 UTC
(rev 20165)
@@ -12,5 +12,6 @@
<add key="HresultXml" value="C:\IRC\TechBot\hresult.xml"
/>
<add key="WmXml" value="C:\IRC\TechBot\wm.xml" />
<add key="SvnCommand" value="svn co
svn://svn.reactos.com/trunk/reactos" />
+ <add key="BugUrl"
value="www.reactos.org/bugzilla/show_bug.cgi?id={0}" />
</appSettings>
</configuration>
_____
Modified: trunk/irc/TechBot/TechBot/ServiceThread.cs
--- trunk/irc/TechBot/TechBot/ServiceThread.cs 2005-12-14 17:34:00 UTC
(rev 20164)
+++ trunk/irc/TechBot/TechBot/ServiceThread.cs 2005-12-14 18:13:05 UTC
(rev 20165)
@@ -18,6 +18,7 @@
private string WmXml;
private string WinerrorXml;
private string SvnCommand;
+ private string BugUrl;
private EventLog eventLog;
public ServiceThread(EventLog eventLog)
@@ -38,6 +39,7 @@
WmXml =
ConfigurationSettings.AppSettings["WmXml"];
WinerrorXml =
ConfigurationSettings.AppSettings["WinerrorXml"];
SvnCommand =
ConfigurationSettings.AppSettings["SvnCommand"];
+ BugUrl =
ConfigurationSettings.AppSettings["BugUrl"];
}
public void Run()
@@ -55,7 +57,8 @@
WinerrorXml,
HresultXml,
WmXml,
-
SvnCommand);
+
SvnCommand,
+ BugUrl);
ircService.Run();
}
_____
Modified: trunk/irc/TechBot/TechBot.Console/App.config
--- trunk/irc/TechBot/TechBot.Console/App.config 2005-12-14
17:34:00 UTC (rev 20164)
+++ trunk/irc/TechBot/TechBot.Console/App.config 2005-12-14
18:13:05 UTC (rev 20165)
@@ -12,5 +12,6 @@
<add key="HresultXml" value="C:\IRC\TechBot\hresult.xml"
/>
<add key="WmXml" value="C:\IRC\TechBot\wm.xml" />
<add key="SvnCommand" value="svn co
svn://svn.reactos.com/trunk/reactos" />
+ <add key="BugUrl"
value="www.reactos.org/bugzilla/show_bug.cgi?id={0}" />
</appSettings>
</configuration>
_____
Modified: trunk/irc/TechBot/TechBot.Console/Main.cs
--- trunk/irc/TechBot/TechBot.Console/Main.cs 2005-12-14 17:34:00 UTC
(rev 20164)
+++ trunk/irc/TechBot/TechBot.Console/Main.cs 2005-12-14 18:13:05 UTC
(rev 20165)
@@ -158,6 +158,18 @@
}
}
+ private static string BugUrl
+ {
+ get
+ {
+ string optionName = "BugUrl";
+ string s =
ConfigurationSettings.AppSettings[optionName];
+ VerifyRequiredOption(optionName,
+ s);
+ return s;
+ }
+ }
+
private static void RunIrcService()
{
IrcService ircService = new
IrcService(IRCServerHostName,
@@ -170,7 +182,8 @@
WinerrorXml,
HresultXml,
WmXml,
-
SvnCommand);
+
SvnCommand,
+ BugUrl);
ircService.Run();
}
@@ -190,7 +203,8 @@
WinerrorXml,
HresultXml,
WmXml,
-
SvnCommand);
+
SvnCommand,
+
BugUrl);
service.Run();
while (true)
{
_____
Added: trunk/irc/TechBot/TechBot.Library/BugCommand.cs
--- trunk/irc/TechBot/TechBot.Library/BugCommand.cs 2005-12-14
17:34:00 UTC (rev 20164)
+++ trunk/irc/TechBot/TechBot.Library/BugCommand.cs 2005-12-14
18:13:05 UTC (rev 20165)
@@ -0,0 +1,54 @@
+using System;
+
+namespace TechBot.Library
+{
+ public class BugCommand : BaseCommand, ICommand
+ {
+ private IServiceOutput serviceOutput;
+ private string bugUrl;
+
+ public BugCommand(IServiceOutput serviceOutput,
+ string bugUrl)
+ {
+ this.serviceOutput = serviceOutput;
+ this.bugUrl = bugUrl;
+ }
+
+ 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;
+ }
+
+ serviceOutput.WriteLine(context,
+ String.Format(bugUrl,
bug));
+ }
+
+ public string Help()
+ {
+ return "!bug <number>";
+ }
+ }
+}
_____
Modified: trunk/irc/TechBot/TechBot.Library/IrcService.cs
--- trunk/irc/TechBot/TechBot.Library/IrcService.cs 2005-12-14
17:34:00 UTC (rev 20164)
+++ trunk/irc/TechBot/TechBot.Library/IrcService.cs 2005-12-14
18:13:05 UTC (rev 20165)
@@ -18,6 +18,7 @@
private string hresultXml;
private string wmXml;
private string svnCommand;
+ private string bugUrl;
private IrcClient client;
private ArrayList channels = new ArrayList(); /*
IrcChannel */
private TechBotService service;
@@ -33,7 +34,8 @@
string winerrorXml,
string hresultXml,
string wmXml,
- string svnCommand)
+ string svnCommand,
+ string bugUrl)
{
this.hostname = hostname;
this.port = port;
@@ -46,6 +48,7 @@
this.hresultXml = hresultXml;
this.wmXml = wmXml;
this.svnCommand = svnCommand;
+ this.bugUrl = bugUrl;
}
public void Run()
@@ -57,7 +60,8 @@
winerrorXml,
hresultXml,
wmXml,
- svnCommand);
+ svnCommand,
+ bugUrl);
service.Run();
client = new IrcClient();
_____
Modified: trunk/irc/TechBot/TechBot.Library/TechBot.Library.prjx
--- trunk/irc/TechBot/TechBot.Library/TechBot.Library.prjx
2005-12-14 17:34:00 UTC (rev 20164)
+++ trunk/irc/TechBot/TechBot.Library/TechBot.Library.prjx
2005-12-14 18:13:05 UTC (rev 20165)
@@ -13,6 +13,7 @@
<File name=".\HresultCommand.cs" subtype="Code"
buildaction="Compile" dependson="" data="" />
<File name=".\WinerrorCommand.cs" subtype="Code"
buildaction="Compile" dependson="" data="" />
<File name=".\SvnCommand.cs" subtype="Code"
buildaction="Compile"
dependson="" data="" />
+ <File name=".\BugCommand.cs" subtype="Code"
buildaction="Compile"
dependson="" data="" />
<File name=".\WmCommand.cs" subtype="Code"
buildaction="Compile"
dependson="" data="" />
<File name=".\MessageContext.cs" subtype="Code"
buildaction="Compile" dependson="" data="" />
</Contents>
_____
Modified: trunk/irc/TechBot/TechBot.Library/TechBotService.cs
--- trunk/irc/TechBot/TechBot.Library/TechBotService.cs 2005-12-14
17:34:00 UTC (rev 20164)
+++ trunk/irc/TechBot/TechBot.Library/TechBotService.cs 2005-12-14
18:13:05 UTC (rev 20165)
@@ -17,6 +17,7 @@
private string hresultXml;
private string wmXml;
private string svnCommand;
+ private string bugUrl;
private ArrayList commands = new ArrayList();
public TechBotService(IServiceOutput serviceOutput,
@@ -26,7 +27,8 @@
string winerrorXml,
string hresultXml,
string wmXml,
- string svnCommand)
+ string svnCommand,
+ string bugUrl)
{
this.serviceOutput = serviceOutput;
this.chmPath = chmPath;
@@ -36,6 +38,7 @@
this.hresultXml = hresultXml;
this.wmXml = wmXml;
this.svnCommand = svnCommand;
+ this.bugUrl = bugUrl;
}
public void Run()
@@ -55,6 +58,8 @@
wmXml));
commands.Add(new SvnCommand(serviceOutput,
svnCommand));
+ commands.Add(new BugCommand(serviceOutput,
+ bugUrl));
}
public void InjectMessage(MessageContext context,