public bool handleURL(string url, IrcClient ctx, CtcpClient ctpcclient = null, IIrcMessageSource source = null ) { var title = GetPageTitle(url).Trim(); if (!string.IsNullOrWhiteSpace(title)) { if(title.ToLower().Contains("Domainpark - Bitte den Rasen nicht betreten".ToLower())) { int roll = random.Next(0, 101); if(roll < 5) { if(ctpcclient != null) { string textMessage = "slaps " + source.Name + " and screamed:"; BotDeathmicMessageTarget target = new BotDeathmicMessageTarget(); target.Name = Properties.Settings.Default.Channel.ToString(); ctpcclient.SendAction(target, textMessage); ctx.LocalUser.SendMessage(Properties.Settings.Default.Channel, "Runter vom Rasen!"); } } } else { if(title.ToLower() == "Imgur: The most awesome images on the Internet".ToLower()) { } else { ctx.LocalUser.SendMessage(Properties.Settings.Default.Channel, title); } } } return true; }
public void Execute(IrcClient Client, string channel, IrcUser Sender, string message) { message = message.Trim(); if (message == "") { Client.LocalUser.SendMessage(channel, horoscopeHelpMsg()); } else { if (!signs.ContainsKey(message)) { Client.LocalUser.SendMessage(channel, "Why won't you give me a sign~"); return; } string html = getHTML(signs[message]); string horoscope = dropHtmlPrecedingHoroscope(html, message); horoscope = dropHtmlTailingHoroscope(horoscope); horoscope = html2Txt(horoscope); Client.LocalUser.SendMessage(channel, horoscope); } }
private static void HandleEventLoop(IrcClient client) { _ircLocaluser = client.LocalUser; _hostNameToWebSockets.Add("", new WebSocketListenerClient(PrivateConstants.TestAccountWebsocketAuth)); _hostNameToWebSockets[""].Run(sendToIrcProcessor); bool isExit = false; while (!isExit) { Console.Write("> "); var command = Console.ReadLine(); switch (command) { case "exit": isExit = true; break; default: if (!string.IsNullOrEmpty(command)) { if (command.StartsWith("/") && command.Length > 1) { client.SendRawMessage(command.Substring(1)); } else { Console.WriteLine($"Unknown command '{command}'"); } } break; } } client.Disconnect(); }
private static void HandleEventLoop(IrcDotNet.IrcClient client) { bool isExit = false; while (!isExit) { Console.Write("> "); var command = Console.ReadLine(); switch (command) { case "exit": isExit = true; break; default: if (!string.IsNullOrEmpty(command)) { if (command.StartsWith("/") && command.Length > 1) { client.SendRawMessage(command.Substring(1)); } else { Console.WriteLine("unknown command '{0}'", command); } } break; } } client.Disconnect(); }
public void Connect() { this.client = new IrcClient(); this.client.ErrorMessageReceived += client_ErrorMessageReceived; this.client.Connected += client_Connected; this.client.RawMessageReceived += client_RawMessageReceived; this.client.ConnectFailed += client_ConnectFailed; this.client.MotdReceived += client_MotdReceived; this.client.Error += client_Error; this.client.ProtocolError += client_ProtocolError; this.client.Disconnected += client_Disconnected; this.client.NetworkInformationReceived += client_NetworkInformationReceived; this.client.ClientInfoReceived += client_ClientInfoReceived; this.client.ValidateSslCertificate += client_ValidateSslCertificate; IrcUserRegistrationInfo serviceReg = new IrcUserRegistrationInfo(); serviceReg.RealName = REALNAME; serviceReg.UserName = USERNAME; serviceReg.NickName = this.Nick; serviceReg.Password = ""; this.client.Connect(this.server, 6667, false, serviceReg); while (!isQuitting) { Thread.Sleep(10000); } }
public static void SayInChannels(IrcClient client, string msg) { foreach (var channel in client.Channels) { client.LocalUser.SendMessage(channel, msg); } }
public ChannelSearchViewModel(IrcClient client) { this.client = client; this.allChannels = new List<BindableChannelInfo>(); this.Channels = new BindableCollection<BindableChannelInfo>(); this.client.ChannelListReceived += ircClient_ChannelListReceived; this.DisplayName = "Join Channel"; }
protected void InvalidSyncLibraryCommand( IrcClient client, IList<IIrcMessageTarget> replyTarget, string commandError) { client.LocalUser.SendMessage(replyTarget, string.Format("Invalid .sync-command: {0}", commandError)); client.LocalUser.SendMessage(replyTarget, "Usage: .sync-library library-guid"); }
public Client(Server server) { client = new IrcClient(); this.server = server; channels = getChannels(server); SetEventHandlers(); findClientConfs(); }
/// <summary> /// /// </summary> /// <param name="twitchUsername"></param> /// <param name="twitchOAuthToken"> /// A chat login token which can be generated here: http://www.twitchapps.com/tmi/ /// </param> public void Start(string twitchUsername, string twitchOAuthToken) { var client = new IrcClient(); client.Connected += client_Connected; client.ChannelListReceived += client_ChannelListReceived; client.RawMessageReceived += client_RawMessageReceived; client.Connect("irc.twitch.tv", 6667, false, new IrcUserRegistrationInfo() {NickName = twitchUsername, Password = twitchOAuthToken, UserName = twitchUsername, RealName = twitchUsername}); }
public ActionResult Irc() { var api = new AppHarborApi(new AuthInfo { AccessToken = ConfigurationManager.AppSettings["authToken"] }); var latestBuild = api.GetBuilds(Constants.AppHarborAppName).First(); var testResults = api.GetTests(Constants.AppHarborAppName, latestBuild.ID); List<AppHarbor.Model.Test> allTests = new List<AppHarbor.Model.Test>(); foreach (var testresult in testResults) { FillTests(allTests, testresult); } AutoResetEvent are = new AutoResetEvent(false); IrcDotNet.IrcClient client = new IrcDotNet.IrcClient(); try { client.Connect("irc.gamesurge.net", false, new IrcUserRegistrationInfo() { NickName = "crymono-build", RealName = "crymono", UserName = "******" }); client.ClientInfoReceived += (s, e) => are.Set(); are.WaitOne(); client.Channels.Join(new string[] { "#crymono" }); Thread.Sleep(200); string msg = latestBuild.Commit.Message.Replace("\n", "").Replace("\r", ""); client.LocalUser.SendMessage("#crymono", "Build finished, latest commit: " + msg); Thread.Sleep(200); int numPassedTests = allTests.Count(t => t.Status == "Passed"); float percentage = (float)numPassedTests / allTests.Count * 100; client.LocalUser.SendMessage("#crymono", String.Format("Test results: {0} of {1} passed ({2:0}%) - http://crymono.apphb.com/#!/{3} - AppHB: https://appharbor.com/applications/crymonobuild/builds/{3}/tests", numPassedTests, allTests.Count, percentage, latestBuild.ID )); Thread.Sleep(200); } finally { if (client != null && client.IsConnected) { client.Quit("to the hills!"); Thread.Sleep(200); client.Disconnect(); } } return Content("OK"); }
/// <summary> /// Initializes a new instance of the IrcChannelViewModel class /// </summary> public IrcStatusTabViewModel(IrcClient client) { this.Messages = new BindableCollection<Message>(); this.Closable = false; this.DisplayName = "Status"; this.Client = client; this.Client.LocalUser.MessageReceived += this.localUserMessageReceived; this.Client.MotdReceived += this.clientMessageOfTheDayReceived; this.Client.WhoIsReplyReceived += this.clientWhoIsReplyReceived; }
public IrcMessageCommand( IrcBot bot, IrcBotUser user, IrcClient client, string[] parameters, IIrcMessageTarget target, IIrcMessageSource source ) : base(bot, user, client, parameters, target, source) { }
public IrcQueryViewModel(IrcUser user, IrcClient client, Settings settings) { this.Settings = settings; this.User = user; this.client = client; this.DisplayName = user.NickName; this.Messages = new BindableCollection<Message>(); this.Closable = true; // TODO this.client.LocalUser.MessageReceived += this.messageReceived; }
private void ProcessChatCommandHelp(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { if (parameters.Count != 0) throw new InvalidCommandParametersException(0); // List all commands recognized by this bot. var replyTarget = GetDefaultReplyTarget(client, source, targets); client.LocalUser.SendMessage(replyTarget, "Commands recognized by bot:"); client.LocalUser.SendMessage(replyTarget, string.Join(", ", this.ChatCommandProcessors.Select(kvPair => kvPair.Key))); }
public IrcBot(IrcBotConfiguration configuration) { this.tasks = new List<IIrcTask>(); this.users = new ConcurrentDictionary<string, IrcBotUser>(); configuration.UserName = configuration.UserName ?? configuration.NickName; configuration.RealName = configuration.RealName?? configuration.NickName; this.Configuration = configuration; this.commandPrefix = string.Format("{0}", this.Configuration.NickName.ToLower()); this.client = new IrcClient(); }
public void ConnectAndSetup() { _client = new IrcClient(); _client.Connect("irc.homelien.no", 6667, false, new IrcUserRegistrationInfo { NickName = "testL", UserName = "******", RealName = "LarsBot" }); _client.Connected += ClientOnConnected; _client.Disconnected += _client_Disconnected; _client.RawMessageReceived += _client_RawMessageReceived; _client.Error += ClientOnError; _client.ErrorMessageReceived += ClientOnErrorMessageReceived; }
public INetwork Connect(INetwork network, IUser user) { IrcClient ircClient = new IrcClient(); INetwork connection = this.RegisterNetwork(ircClient, network); this.OnNetworkAdded(connection); ircClient.Connect(network.Url.Host, network.Url.Port, false, new IrcUserRegistrationInfo() { NickName = user.Nickname, RealName = user.Realname, UserName = user.Nickname, }); return network; }
public void Run(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { Client = client; SourceUser = (IrcUser)source; Command = command; Parameters = parameters; if (targets.Contains(Client.LocalUser) && source != null) ReplyTargets = new[] { (IIrcMessageTarget)source }; else { ReplyTargets = targets; } Run(); }
public SpeedRunsLiveIRC(LiveSplitState state, ITimerModel model, IEnumerable<string> channels) { ChannelsToJoin = channels.ToList(); Client = new IrcClient(); Client.ConnectFailed += Client_ConnectFailed; Client.Connected += Client_Connected; Client.Registered += Client_Registered; Client.RawMessageReceived += Client_RawMessageReceived; Client.ConnectFailed += Client_ConnectFailed; Client.Disconnected += Client_Disconnected; Model = model; state.OnSplit += Model_OnSplit; state.OnUndoSplit += Model_OnUndoSplit; state.OnReset += Model_OnReset; RaceState = RaceState.NotInRace; }
public TwitchChat(string accessToken, string channel) { Client = new IrcClient(); UserFlags = new Dictionary<string, ChatBadges>(); UserColors = new Dictionary<string, Color>(); var twitch = Twitch.Instance; Client.Connected += Client_Connected; Client.Registered += Client_Registered; Channel = channel; Client.Connect("irc.twitch.tv", 6667, new IrcUserRegistrationInfo() { NickName = twitch.ChannelName, Password = $"oauth:{accessToken}" }); }
public IrcCommand( IrcBot bot, IrcBotUser user, IrcClient client, string[] parameters, IIrcMessageTarget target, IIrcMessageSource source ) { this.Bot = bot; this.User = user; this.Client = client; this.Target = target; this.Source = source; ParseParameters(parameters); }
public void Execute(IrcDotNet.IrcClient Client, string Channel, IrcDotNet.IrcUser Sender, string Message) { // Message sisältää argumentit // Jos Message on tyhjä, niin komennolle ei ole annettu argumentteja // Esimerkki: // !uguu -> Message on tyhjä // !uguu Crank -> Message == "Crank" // uguu u:kirjainten määrä vaihtelee satunnaisesti 2-17 välillä string text = ""; string uguu = "uu"; IrcUserCollection nicklist = Client.Channels.Client.Users; Random random = new Random(); if (Message == "") { int rnd = random.Next(0, 16); for (int i = 0; i < rnd; i++) { uguu += 'u'; } uguu += '~'; //string[] IllegalNicks = { "SIMOBOT", Sender.NickName}; int rndNick = random.Next(0, nicklist.Count); text = nicklist[rndNick].NickName.TrimEnd("aeiouyåäö".ToCharArray()) + uguu; } else { Message = Message.Trim().TrimEnd("aeiouyåäö".ToCharArray()); int rnd = random.Next(0, 16); for (int i = 0; i < rnd; i++) { uguu += 'u'; } uguu += '~'; text = Message + uguu; } Client.LocalUser.SendMessage(Channel, text); }
static void Main(string[] args) { client = new IrcClient(); var reg = new IrcUserRegistrationInfo(); reg.NickName = "botctgn"; reg.UserName = "******"; reg.RealName = "botctgn"; client.Connect("irc.freenode.net",6667,false,reg); client.Disconnected += ClientOnDisconnected; client.Connected += ClientOnConnected; client.ErrorMessageReceived += ClientOnErrorMessageReceived; client.MotdReceived += ClientOnMotdReceived; client.RawMessageReceived += ClientOnRawMessageReceived; client.ChannelListReceived += ClientOnChannelListReceived; client.ProtocolError += ClientOnProtocolError; while (!closingTime) { Thread.Sleep(10); } }
public override void Loop() { while(true) { using (var mre = new ManualResetEvent(false)) { if(_client != null) _client.Disconnect(); _client = new IrcClient(); _client.Registered += (sender, args) => { _client.LocalUser.JoinedChannel += (sender1, args1) => { args1.Channel.MessageReceived += (o, eventArgs) => { if (eventArgs.Source.Name == "Taimur") Handle(eventArgs.Text); }; Output("Joined " + args1.Channel.Name); mre.Set(); }; _client.Channels.Join("#yaar"); }; _client.Connect("irc.rizon.net", 6667, false, new IrcUserRegistrationInfo() { NickName = "[Yaar]", UserName = "******", RealName = "[Yaar]" }); mre.WaitOne(30.Seconds()); while(_client.IsConnected) 5.Seconds().Sleep(); } Brain.ListenerManager.CurrentListener.Output("Failed to connect to Rizon."); } }
private void ReadChatCommand(IrcClient client, IIrcMessageSource source, IList <IIrcMessageTarget> targets, string command, string[] parameters) { var defaultReplyTarget = GetDefaultReplyTarget(client, source, targets); ChatCommandProcessor processor; if (this.chatCommandProcessors.TryGetValue(command, out processor)) { System.Threading.Tasks.Task.Factory.StartNew(() => { try { processor(client, source, targets, command, parameters); } catch (InvalidCommandParametersException exInvalidCommandParameters) { client.LocalUser.SendNotice(defaultReplyTarget, exInvalidCommandParameters.GetMessage(command)); } catch (Exception ex) { if (source is IIrcMessageTarget) { client.LocalUser.SendNotice(defaultReplyTarget, "Error processing '{0}' command: {1}", command, ex.Message); } } }, System.Threading.Tasks.TaskCreationOptions.LongRunning); } else { if (source is IIrcMessageTarget) { client.LocalUser.SendNotice(defaultReplyTarget, "Command '{0}' not recognized.", command); } } }
protected override void OnClientConnect(IrcClient client) { // Sort out which server/client is which... this really only needs to be done once foreach (server aServ in conf.servers) { if (aServ.uName == client.LocalUser.UserName) { client.ClientId = aServ.uName; Console.WriteLine("Client {0} identified and tagged", client.ClientId); } } // Autojoin Chans //TODO: fix this to pull from conf files // client.Channels.Join("#b0tcage"); //client.Channels.Join("#gentoo-pr0n"); // foreach (server aServ in conf.servers) { // foreach (channel chan in aServ.channels) { // client.Channels.Join("#" + chan.chanName); // Console.WriteLine("Joining: {0} on {1}", chan.chanName, aServ.pName); // } // } // foreach (server aServ in conf.servers) { // if (client.LocalUser.UserName == aServ.uName) { // Console.WriteLine("Server {0} is matched", aServ.uName); // } // } foreach (server aServ in conf.servers) { if (client.ClientId == aServ.uName) { foreach (channel chan in aServ.channels) { client.Channels.Join("#" + chan.chanName); Console.WriteLine("Joining: {0}({1}) -- Logging: {2}, Active: {3}, Color: {4}", chan.chanName, client.ClientId, chan.log, chan.active, chan.sCol); } } } Console.WriteLine("Clients count: {0}", this.Clients.Count+1); }
private void ProcessChatCommandSend(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { var sourceUser = (IrcUser)source; var twitterBotUser = GetTwitterBotUser(sourceUser); if (parameters.Count != 1) throw new InvalidCommandParametersException(1); // Send tweet from user. var tweetStatus = twitterBotUser.SendTweet(parameters[0].TrimStart()); var replyTargets = GetDefaultReplyTarget(client, sourceUser, targets); client.LocalUser.SendMessage(replyTargets, "Tweet sent by {0} at {1}.", tweetStatus.User.ScreenName, tweetStatus.CreatedDate.ToLongTimeString()); }
private void ProcessChatCommandLogOut(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { var sourceUser = (IrcUser)source; var twitterBotUser = GetTwitterBotUser(sourceUser); if (parameters.Count != 0) throw new InvalidCommandParametersException(1); // Log out Twitter user. twitterBotUser.LogOut(); this.twitterUsers.Remove(twitterBotUser); var replyTargets = GetDefaultReplyTarget(client, sourceUser, targets); client.LocalUser.SendMessage(replyTargets, "You are now logged out."); }
private void ProcessChatCommandLogIn(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { var sourceUser = (IrcUser)source; var twitterUser = this.twitterUsers.SingleOrDefault(tu => tu.IrcUser == sourceUser); if (twitterUser != null) throw new InvalidOperationException(string.Format( "User '{0}' is already logged in to Twitter as {1}.", sourceUser.NickName, twitterUser.TwitterUser.ScreenName)); if (parameters.Count != 2) throw new InvalidCommandParametersException(1); // Create new Twitter user and log in. var twitterBotUser = new TwitterBotUser(sourceUser); twitterBotUser.LogIn(parameters[0], parameters[1]); this.twitterUsers.Add(twitterBotUser); var replyTargets = GetDefaultReplyTarget(client, sourceUser, targets); client.LocalUser.SendMessage(replyTargets, "You are now logged in as {0} / '{1}'.", twitterBotUser.TwitterUser.ScreenName, twitterBotUser.TwitterUser.Name); }
private void HandleEventLoop(IrcDotNet.IrcClient client) { logger.Debug("In HandleEventLoop"); IsExit = false; while (!IsExit) { Console.Write("> "); var command = Console.ReadLine(); switch (command) { case "exit": case "quit": IsExit = true; break; default: if (!string.IsNullOrEmpty(command)) { if (command.StartsWith("limit")) { short tempLimit; if (Int16.TryParse(command.Substring(6).Trim(), out tempLimit)) { levels.LevelLimit = tempLimit; } } else if (command == "o") { if (!levels.Open) { levels.OpenQueue(); client.SendPrivateMessage(MAINCHANNEL, "/me Submissions Open"); client.SendPrivateMessage(MAINCHANNEL, "/me Submit levels with !submit"); } } else if (command == "c") { if (levels.Open) { levels.CloseQueue(); client.SendPrivateMessage(MAINCHANNEL, "/me Submissions Closed"); if (levels.FinalLevels.Count >= 0) { string plural = (levels.FinalLevels.Count != 1) ? " levels " : " level "; client.SendPrivateMessage(MAINCHANNEL, "/me " + levels.FinalLevels.Count + plural + "will be randomly picked."); client.SendPrivateMessage(MAINCHANNEL, "/me Now Playing: " + levels.CurrentLevel); Console.WriteLine(); Console.WriteLine(levels.CurrentLevel + " (" + levels.Remaining + ")"); Console.WriteLine(); PostToWebsite(); } else { client.SendPrivateMessage(MAINCHANNEL, "/me No Levels submitted."); } } } else if (command.StartsWith("s ")) { command = command.Remove(0, 2).Trim(); SaveLevel(command); } else if (command == "settings") { OpenSettingsWindow(); } else if (command == "restart") { this.Restart = true; return; } else if (command.StartsWith("v ")) { command = command.Remove(0, 2).Trim(); short vol; if (Int16.TryParse(command, out vol)) { soundPlayerVolume = vol; } } else if (command.StartsWith("max ")) { command = command.Remove(0, 4).Trim(); int amt; if (Int32.TryParse(command, out amt)) { if (amt <= 0) { break; } BotSettings.MaxSubmissionsForSingleUser = amt; Console.WriteLine("User can only submit " + amt + " level(s) per round."); Console.WriteLine(); } } else if (command.StartsWith("cool ")) { command = command.Remove(0, 5).Trim(); int tempCooldown; if (int.TryParse(command, out tempCooldown)) { cooldownSeconds = tempCooldown; } } else if (command == "q") { foreach (var level in levels.FinalLevels) { Console.WriteLine(level.Item2 + " " + level.Item1); } } else if (command.StartsWith("add ")) { string[] args = command.Split(' '); if (args.Length > 2) { if (LevelSubmitter.IsValidLevelCode(ref args[2])) { levels.ForceAddLevel(args[2].ToUpper(), args[1]); PostToWebsite(); if (levels.Remaining == 0) { Console.WriteLine(levels.CurrentLevel + " (" + levels.Remaining + ")"); } } } } else if (command == "prev") { if (levels.Remaining == levels.FinalLevels.Count) { break; } levels.PreviousLevel(); PostToWebsite(); Console.WriteLine(); Console.WriteLine(levels.CurrentLevel + " (" + levels.Remaining + ")"); Console.WriteLine(); } else if (command == "h" || command == "help") { DisplayMainMenu(); } } //ELSE - command IsNullOrEmpty - (Enter Key pressed) else { if (levels.Remaining > 0) { levels.NextLevel(); PostToWebsite(); client.SendPrivateMessage(MAINCHANNEL, "/me Now Playing: " + levels.CurrentLevel); Console.WriteLine(); Console.WriteLine(levels.CurrentLevel + " (" + levels.Remaining + ")"); Console.WriteLine(); } } break; } } client.Disconnect(); }
internal IrcUserCollection(IrcClient client, IList <IrcUser> list) : base(list) { this.client = client; }
protected override void OnClientDisconnect(IrcClient client) { // }
public static void WriteIrcRawLine(IrcClient client, string line) { #if DEBUG WriteEvent("({0}) {1}", client.ClientId, line); #endif }
internal IrcChannelCollection(IrcClient client, ObservableCollection <IrcChannel> list) : base(list) { this.client = client; }
protected override void OnClientRegistered(IrcClient client) { // }
private void SendTweetInfo(IrcClient client, IList <IIrcMessageTarget> targets, TwitterStatus tweet) { client.LocalUser.SendMessage(targets, "@{0}: {1}", tweet.User.ScreenName, SanitizeTextForIrc(tweet.Text)); }
private void ProcessChatCommandMentions(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters) { var sourceUser = (IrcUser)source; var twitterBotUser = GetTwitterBotUser(sourceUser); if (parameters.Count != 0) throw new InvalidCommandParametersException(1); // List tweets on Home timeline of user. var replyTargets = GetDefaultReplyTarget(client, sourceUser, targets); client.LocalUser.SendMessage(replyTargets, "Recent tweets mentioning '{0}':", twitterBotUser.TwitterUser.ScreenName); foreach (var tweet in twitterBotUser.ListTweetsMentioningMe()) { SendTweetInfo(client, replyTargets, tweet); } }
protected virtual void OnClientDisconnect(IrcClient client) { }
private void SendTweetInfo(IrcClient client, IList<IIrcMessageTarget> targets, TwitterStatus tweet) { client.LocalUser.SendMessage(targets, "@{0}: {1}", tweet.User.ScreenName, tweet.Text); }
protected virtual void OnClientRegistered(IrcClient client) { }
internal IrcChannelCollection(IrcClient client, IList <IrcChannel> list) : base(list) { this.client = client; }