public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { var payload = Tuple.Create(envelope, messages); _messages.Add(payload); _messagesObservable.OnNext(payload); return base.Send(envelope, adapterArgs, messages); }
public override async Task Reply(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { foreach (var message in messages.Where(message => !string.IsNullOrWhiteSpace(message))) { await _client.Send(string.Format("@{0} {1}", envelope.User.Name, message), envelope.User.Room); } }
public override Task Topic(string roomName, AdapterArguments adapterArgs, params string[] messages) { var mucManager = new MucManager(_client); mucManager.ChangeSubject(new Jid(roomName), string.Join(" ", messages)); return(Task.FromResult(0)); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { var payload = Tuple.Create(envelope, messages); _messages.Add(payload); _messagesObservable.OnNext(payload); return(base.Send(envelope, adapterArgs, messages)); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { foreach (var message in messages.Where(message => !string.IsNullOrWhiteSpace(message))) { Console.WriteLine(message); } return(Task.FromResult(0)); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { foreach (var message in messages.Where(message => !string.IsNullOrWhiteSpace(message))) { Console.WriteLine(message); } return Task.FromResult(0); }
public override Task Topic(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (envelope != null && envelope.User != null) { return(Topic(envelope.User.Room, adapterArgs, messages)); } return(Task.FromResult(0)); }
private void InternalSend(string destination, AdapterArguments adapterArgs, string[] messages) { var room = destination; var channel = _rooms.FirstOrDefault(r => StringComparer.InvariantCultureIgnoreCase.Equals(r.Id, room) || StringComparer.InvariantCultureIgnoreCase.Equals(r.Name, room)); if (channel != null) { room = channel.Id; //EnsureBotInRoom(channel); if (!channel.IsMember) { // Currently bots cannot self enter a room. // Instead we'll just log for now. Logger.ErrorFormat("Bots cannot join rooms. Invite bot into room {0}({1})", channel.Id, channel.Name); return; } } var im = _ims.FirstOrDefault(i => StringComparer.InvariantCultureIgnoreCase.Equals(i.Id, room) || StringComparer.InvariantCultureIgnoreCase.Equals(i.User, room)); if (im != null) { room = im.Id; EnsureBotInRoom(im); } var user = _users.FirstOrDefault(u => StringComparer.InvariantCultureIgnoreCase.Equals(u.Id, room) || StringComparer.InvariantCultureIgnoreCase.Equals(u.Name, room)); if (user != null) { var response = _api.ImOpen(user.Id); if (!response.Ok) { Logger.ErrorFormat("Could not join im channel {0} ({1})", user.Id, response.Error); return; } room = response.Channel; im = new Im() { Id = response.Channel, User = user.Id, IsOpen = true }; _ims.Add(im); } Logger.DebugFormat("Trying to send message to room {0}({1})", room, destination); foreach (var message in messages) { SlackAPI.Send(_socket, room, message); } }
public override async Task Topic(string roomName, AdapterArguments adapterArgs, params string[] messages) { var room = await _client.GetRoomInfo(roomName); if (room != null) { var message = string.Join(" ", messages); await _client.Send(string.Format("/topic {0}", message.Substring(0, Math.Min(80, message.Length))), room.Name); } }
public override Task Topic(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (envelope != null && envelope.Room != null) { var message = string.Join(" ", messages); return(_client.Send(string.Format("/topic {0}", message.Substring(0, Math.Min(80, message.Length))), envelope.Room)); } return(Task.FromResult(0)); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (_confServer.HasValue() && envelope.User.Room.Contains(_confServer)) { _xmppConnection.Send(new agsXMPP.protocol.client.Message(envelope.User.Room, MessageType.groupchat, string.Join(Environment.NewLine, messages))); } else { _xmppConnection.Send(new agsXMPP.protocol.client.Message(new Jid(envelope.User.Name), MessageType.chat, string.Join(Environment.NewLine, messages))); } return(Task.FromResult(0)); }
public override Task Reply(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (_socket == null) { return(base.Reply(envelope, adapterArgs, messages)); } var room = envelope.User.Id; InternalSend(room, adapterArgs, messages); return(base.Reply(envelope, adapterArgs, messages)); }
public override Task Emote(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) { return(Task.FromResult(0)); } foreach (var message in messages.Select(m => "/me " + m)) { var to = new Jid(envelope.User.Room); _client.Send(new agsXMPP.protocol.client.Message(to, string.Equals(to.Server, _confhost) ? MessageType.groupchat : MessageType.chat, message)); } return(Task.FromResult(0)); }
public override Task Reply(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) { return(Task.FromResult(0)); } var userId = "@" + _nicks[envelope.User.Name]; foreach (var message in messages) { _api.PrivateMessageUser(userId, message); } return(Task.FromResult(0)); }
public override async Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null) { return; } foreach (var message in messages.Where(message => !string.IsNullOrWhiteSpace(message))) { if (!string.IsNullOrEmpty(envelope.User.Room)) { await _client.Send(message, envelope.User.Room); } else { await _client.SendPrivateMessage(envelope.User.Name, message); } } }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) { return(Task.FromResult(0)); } int roomId; if (!_roomMap.TryGetValue(envelope.User.Room, out roomId)) { // There's no public room with the envelopes key, so send this // as a private message to the user instead. return(Reply(envelope, adapterArgs, messages)); } var color = adapterArgs.Color ?? ""; color = color.ToLowerInvariant(); if (color != "yellow" && color != "green" && color != "red" && color != "purple" && color != "gray" && color != "random") { color = "yellow"; } foreach (var message in messages) { _api.SendRoomNotification(roomId, color, message); } return(Task.FromResult(0)); }
public override Task Topic(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (envelope != null && envelope.Room != null) { var message = string.Join(" ", messages); return _client.Send(string.Format("/topic {0}", message.Substring(0, Math.Min(80, message.Length))), envelope.Room); } return Task.FromResult(0); }
public override Task Topic(string roomName, AdapterArguments adapterArgs, params string[] messages) { var mucManager = new MucManager(_client); mucManager.ChangeSubject(new Jid(roomName), string.Join(" ", messages)); return Task.FromResult(0); }
public override Task Topic(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (envelope != null && envelope.User != null) { return Topic(envelope.User.Room, adapterArgs, messages); } return Task.FromResult(0); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (_confServer.HasValue() && envelope.User.Room.Contains(_confServer)) { _xmppConnection.Send(new agsXMPP.protocol.client.Message(envelope.User.Room, MessageType.groupchat, string.Join(Environment.NewLine, messages))); } else { _xmppConnection.Send(new agsXMPP.protocol.client.Message(new Jid(envelope.User.Name), MessageType.chat, string.Join(Environment.NewLine, messages))); } return Task.FromResult(0); }
public override Task Send(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) return Task.FromResult(0); int roomId; if (!_roomMap.TryGetValue(envelope.User.Room, out roomId)) { // There's no public room with the envelopes key, so send this // as a private message to the user instead. return Reply(envelope, adapterArgs, messages); } var color = adapterArgs.Color ?? ""; color = color.ToLowerInvariant(); if (color != "yellow" && color != "green" && color != "red" && color != "purple" && color != "gray" && color != "random") color = "yellow"; foreach (var message in messages) { _api.SendRoomNotification(roomId, color, message); } return Task.FromResult(0); }
public override Task Reply(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) return Task.FromResult(0); var userId = "@" + _nicks[envelope.User.Name]; foreach (var message in messages) { _api.PrivateMessageUser(userId, message); } return Task.FromResult(0); }
public override Task Reply(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (_socket == null) { return base.Reply(envelope, adapterArgs, messages); } var room = envelope.User.Id; InternalSend(room, adapterArgs, messages); return base.Reply(envelope, adapterArgs, messages); }
public override Task Emote(Envelope envelope, AdapterArguments adapterArgs, params string[] messages) { if (messages == null || !messages.Any()) return Task.FromResult(0); foreach (var message in messages.Select(m => "/me " + m)) { var to = new Jid(envelope.User.Room); _client.Send(new agsXMPP.protocol.client.Message(to, string.Equals(to.Server, _confhost) ? MessageType.groupchat : MessageType.chat, message)); } return Task.FromResult(0); }