Ejemplo n.º 1
0
        private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e)
        {
            var firstEntity = e.Message?.Entities?.FirstOrDefault();

            if (null == firstEntity || firstEntity.Offset != 0 || firstEntity.Type != "bot_command")
            {
                UpdateStats(e);
            }
        }
Ejemplo n.º 2
0
        private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e)
        {
            var firstEntity = e.Message?.Entities?.FirstOrDefault();

            if (e.Message.ForwardFrom == null && (null == firstEntity || firstEntity.Offset != 0 || firstEntity.Type != "bot_command"))
            {
                bool isduplicate = IsDuplicateInput(e);
                if (!isduplicate)
                {
                    DetectForbiddenWord(e);
                }
            }
        }
Ejemplo n.º 3
0
        private void CheckForBanHandler(object sender, Botje.Messaging.Events.PublicMessageEventArgs e)
        {
            List <UserBan> bannedUsers = new List <UserBan>();

            if (e.Message.NewChatMembers != null)
            {
                e.Message.NewChatMembers.ForEach(x => CheckForBan(e.Message.Chat.ID, x, bannedUsers));
            }
            else if (e.Message.From != null)
            {
                CheckForBan(e.Message.Chat.ID, e.Message.From, bannedUsers);
            }

            bannedUsers.ForEach(bu =>
            {
                Client.SendMessageToChat(e.Message.Chat.ID, $"Gebruiker {bu.User.UsernameOrName()} is hier niet welkom. Er is/zijn {bu.Rules.Count} regels die dat zeggen. Ik ban deze gebruiker voor 1 uur.");
                Client.KickChatMember(e.Message.Chat.ID, bu.User.ID, DateTimeOffset.UtcNow + TimeSpan.FromHours(1));
            });
        }
Ejemplo n.º 4
0
        private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e)
        {
            var firstEntity = e.Message?.Entities?.FirstOrDefault();

            if (null != firstEntity && firstEntity.Type == "bot_command" && firstEntity.Offset == 0)
            {
                string myName      = Client.GetMe().Username;
                string commandText = e.Message.Text.Substring(firstEntity.Offset, firstEntity.Length);
                if (commandText.Contains("@") && !commandText.EndsWith($"@{myName}", StringComparison.InvariantCultureIgnoreCase))
                {
                    // not for me
                    _log.Trace($"Got command '{commandText}' but it is not for me.");
                }
                else
                {
                    commandText = commandText.Split("@").First();
                    ProcessCommand(e, commandText);
                }
            }
        }
Ejemplo n.º 5
0
        private void Client_OnPublicMessage(object sender, Botje.Messaging.Events.PublicMessageEventArgs e)
        {
            var info        = Client.GetChat(e.Message.Chat.ID);
            var firstEntity = e.Message?.Entities?.FirstOrDefault();

            if (e.Message.NewChatMembers != null && e.Message.NewChatMembers.Count > 0 && info.PinnedMessage != null && !string.IsNullOrEmpty(info.PinnedMessage.Text))
            {
                string newUsers = string.Join(", ", e.Message.NewChatMembers.Select(x => '@' + x.ShortName()));

                Client.SendMessageToChat(e.Message.Chat.ID, MessageUtils.HtmlEscape(info.PinnedMessage.Text.Replace("$USERS$", newUsers)), "HTML", true, false);

                foreach (var member in e.Message.NewChatMembers)
                {
                    if (string.IsNullOrEmpty(member.Username))
                    {
                        string reply = GetUserSetting(e, "NoUsernameText");
                        if (!string.IsNullOrEmpty(reply))
                        {
                            Client.SendMessageToChat(e.Message.Chat.ID, MessageUtils.HtmlEscape($"{member.ShortName()}: {reply}"), "HTML", true, false);
                        }
                    }
                }
            }
            else if (null != firstEntity && firstEntity.Type == "bot_command" && firstEntity.Offset == 0)
            {
                string myName      = Client.GetMe().Username;
                string commandText = e.Message.Text.Substring(firstEntity.Offset, firstEntity.Length);
                if (commandText.Contains("@") && !commandText.EndsWith($"@{myName}", StringComparison.InvariantCultureIgnoreCase))
                {
                    // not for me
                    _log.Trace($"Got command '{commandText}' but it is not for me.");
                }
                else
                {
                    commandText = commandText.Split("@").First();
                    ProcessCommand(e, commandText);
                }
            }
        }