reactos/irc/TechBot/TechBot.Console/Main.cs
Casper Hornstrup 70350430a5 Support multiple channels
svn path=/trunk/; revision=13604
2005-02-16 21:07:55 +00:00

189 lines
4.6 KiB
C#

using System;
using System.Configuration;
using TechBot.Library;
namespace TechBot.Console
{
public class ConsoleServiceOutput : IServiceOutput
{
public void WriteLine(MessageContext context,
string message)
{
System.Console.WriteLine(message);
}
}
class MainClass
{
private static void VerifyRequiredOption(string optionName,
string optionValue)
{
if (optionValue == null)
{
throw new Exception(String.Format("Option '{0}' not set.",
optionName));
}
}
private static string IRCServerHostName
{
get
{
string optionName = "IRCServerHostName";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static int IRCServerHostPort
{
get
{
string optionName = "IRCServerHostPort";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return Int32.Parse(s);
}
}
private static string IRCChannelNames
{
get
{
string optionName = "IRCChannelNames";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string IRCBotName
{
get
{
string optionName = "IRCBotName";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string ChmPath
{
get
{
string optionName = "ChmPath";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string MainChm
{
get
{
string optionName = "MainChm";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string NtstatusXml
{
get
{
string optionName = "NtstatusXml";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string WinerrorXml
{
get
{
string optionName = "WinerrorXml";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string HresultXml
{
get
{
string optionName = "HresultXml";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static string SvnCommand
{
get
{
string optionName = "SvnCommand";
string s = ConfigurationSettings.AppSettings[optionName];
VerifyRequiredOption(optionName,
s);
return s;
}
}
private static void RunIrcService()
{
IrcService ircService = new IrcService(IRCServerHostName,
IRCServerHostPort,
IRCChannelNames,
IRCBotName,
ChmPath,
MainChm,
NtstatusXml,
WinerrorXml,
HresultXml,
SvnCommand);
ircService.Run();
}
public static void Main(string[] args)
{
if (args.Length > 0 && args[0].ToLower().Equals("irc"))
{
RunIrcService();
return;
}
System.Console.WriteLine("TechBot running console service...");
TechBotService service = new TechBotService(new ConsoleServiceOutput(),
ChmPath,
MainChm,
NtstatusXml,
WinerrorXml,
HresultXml,
SvnCommand);
service.Run();
while (true)
{
string s = System.Console.ReadLine();
service.InjectMessage(null,
s);
}
}
}
}