internal bool Groups(TgMessage RawMessage)
        {
            using (var db = new BlacklistDatabaseContext())
            {
                string          groups   = "";
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig.ToList();
                }
                catch (InvalidOperationException)
                {
                    return(false);
                }

                if (groupCfg == null)
                {
                    return(false);
                }
                foreach (GroupCfg cfg in groupCfg)
                {
                    string groupInfo = "無法取得";
                    try
                    {
                        groupInfo = TgApi.getDefaultApiConnection().getChatInfo(cfg.GroupID).result.GetChatTextInfo();
                    }
                    catch
                    {
                    }

                    groups = groups + cfg.GroupID + " : \n" + RAPI.escapeMarkdown(groupInfo) + "\n\n";

                    if (groups.Length > 3072)
                    {
                        TgApi.getDefaultApiConnection()
                        .sendMessage(RawMessage.chat.id, groups, ParseMode: TgApi.PARSEMODE_MARKDOWN);
                        groups = "";
                        Thread.Sleep(3000);
                    }
                }

                if (groups.Length > 0)
                {
                    TgApi.getDefaultApiConnection()
                    .sendMessage(RawMessage.chat.id, groups, ParseMode: TgApi.PARSEMODE_MARKDOWN);
                }

                TgApi.getDefaultApiConnection()
                .sendMessage(RawMessage.chat.id, "Groups 輸出完畢!", RawMessage.message_id);
            }

            return(true);
        }
        internal bool BC(TgMessage RawMessage, string Msg)
        {
            TgApi.getDefaultApiConnection()
            .sendMessage(RawMessage.chat.id, "傳送中.........!", RawMessage.message_id);
            Console.WriteLine("Broadcasting " + Msg + " ......");
            using (var db = new BlacklistDatabaseContext())
            {
                string          groups   = "";
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig.ToList();
                }
                catch (InvalidOperationException)
                {
                    return(false);
                }

                if (groupCfg == null)
                {
                    return(false);
                }
                foreach (GroupCfg cfg in groupCfg)
                {
                    Console.WriteLine("Broadcasting " + Msg + " to group ChatID : " + cfg.GroupID);

                    SendMessageResult result = TgApi.getDefaultApiConnection()
                                               .sendMessage(cfg.GroupID, Msg, ParseMode: TgApi.PARSEMODE_MARKDOWN);

                    if (result.ok)
                    {
                        groups = groups + "\n" + cfg.GroupID + " : 成功";
                    }
                    else
                    {
                        groups = groups + "\n" + cfg.GroupID + " : 失敗";
                    }

                    Thread.Sleep(500);
                }

                TgApi.getDefaultApiConnection()
                .sendMessage(RawMessage.chat.id, "有夠Highㄉ,傳送完畢!" + groups, RawMessage.message_id);
            }

            return(true);
        }
Example #3
0
 internal void CallGroups(BanUser user)
 {
     if (Temp.DisableAdminTools)
     {
         return;
     }
     if (user.Level == 1)
     {
         return;
     }
     using (var db = new BlacklistDatabaseContext())
     {
         List <GroupCfg> groupCfg = null;
         try
         {
             groupCfg = db.GroupConfig
                        .Where(cfg => cfg.SubscribeBanList == 0)
                        .ToList();
         }
         catch (InvalidOperationException)
         {
             return;
         }
         if (groupCfg == null)
         {
             return;
         }
         foreach (GroupCfg cfg in groupCfg)
         {
             var userInChatInfo = TgApi.getDefaultApiConnection().getChatMember(cfg.GroupID, user.UserID);
             if (userInChatInfo.ok)
             {
                 if (userInChatInfo.result.status == "member")
                 {
                     TgApi.getDefaultApiConnection().kickChatMember(cfg.GroupID, user.UserID, GetTime.GetUnixTime() + 86400);
                     TgApi.getDefaultApiConnection().sendMessage(
                         cfg.GroupID,
                         "新的被封禁用户:\n\n" + user.GetBanMessage() + "\n\n由于您订阅了封禁列表,已根据您的设定自动移除。"
                         );
                 }
             }
             Thread.Sleep(3000);
         }
     }
 }
Example #4
0
        internal void CallGroups(int user)
        {
            if (Temp.DisableAdminTools)
            {
                return;
            }
            using (var db = new BlacklistDatabaseContext())
            {
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig.ToList();
                }
                catch (InvalidOperationException)
                {
                    return;
                }

                if (groupCfg == null)
                {
                    return;
                }
                foreach (GroupCfg cfg in groupCfg)
                {
                    var userInChatInfo = TgApi.getDefaultApiConnection().getChatMember(cfg.GroupID, user);

                    if (!userInChatInfo.ok)
                    {
                        TgApi.getDefaultApiConnection().unbanChatMember(cfg.GroupID, user);
                        TgApi.getDefaultApiConnection()
                        .restrictChatMember(cfg.GroupID, user, 0, true, true, true, true);
                    }

                    Thread.Sleep(500);
                }
            }
        }
Example #5
0
        internal void CallGroups(BanUser user)
        {
            if (Config.DisableAdminTools)
            {
                return;
            }
            if (user.Level == 1)
            {
                return;
            }
            using (var db = new BlacklistDatabaseContext())
            {
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig
                               .Where(cfg => cfg.SubscribeBanList == 0)
                               .ToList();
                }
                catch (InvalidOperationException)
                {
                    return;
                }

                if (groupCfg == null)
                {
                    return;
                }

                var random = new Random();
                groupCfg = groupCfg.OrderBy(x => random.Next()).ToList();

                foreach (GroupCfg cfg in groupCfg)
                {
                    var userInChatInfo = TgApi.getDefaultApiConnection().getChatMember(cfg.GroupID, user.UserID);
                    if (userInChatInfo.ok)
                    {
                        if (userInChatInfo.result.status == "member")
                        {
                            try
                            {
                                new Thread(delegate()
                                {
                                    Console.WriteLine("[SubscribeBanList] Ban " + user.UserID +
                                                      " in " + cfg.GroupID);
                                    //TgApi.getDefaultApiConnection().restrictChatMember(
                                    //    cfg.GroupID,
                                    //    user.UserID,
                                    //    GetTime.GetUnixTime() + 10,
                                    //    false);
                                    SendMessageResult result = TgApi.getDefaultApiConnection().sendMessage(
                                        cfg.GroupID,
                                        "使用者 : `" + user.UserID + "`\n" + user.GetBanMessageMarkdown() +
                                        "\n\n由於開啟了 SubscribeBanList ,已嘗試自動移除。",
                                        ParseMode: TgApi.PARSEMODE_MARKDOWN);
                                    Thread.Sleep(5000);
                                    TgApi.getDefaultApiConnection()
                                    .kickChatMember(cfg.GroupID, user.UserID, GetTime.GetUnixTime() + 28800);
                                }).Start();
                            }
                            catch
                            {
                            }
                        }
                    }
                    Thread.Sleep(500);
                }
            }
        }
        internal bool CUP(TgMessage RawMessage)
        {
            TgApi.getDefaultApiConnection()
            .sendMessage(RawMessage.chat.id, "處理中.........!", RawMessage.message_id);
            using (var db = new BlacklistDatabaseContext())
            {
                string          groups   = "";
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig.ToList();
                }
                catch (InvalidOperationException)
                {
                    return(false);
                }

                if (groupCfg == null)
                {
                    return(false);
                }
                foreach (GroupCfg cfg in groupCfg)
                {
                    bool status = false;
                    SendMessageResult result = TgApi.getDefaultApiConnection().sendMessage(
                        cfg.GroupID,
                        "測試訊息(不用理會此訊息)");

                    if (result.ok)
                    {
                        TgApi.getDefaultApiConnection().deleteMessage(cfg.GroupID, result.result.message_id);
                        status = true;
                    }

                    if (status)
                    {
                        groups = groups + cfg.GroupID + " : Bot是聊天成員,略過\n";
                    }
                    else
                    {
                        groups = groups + cfg.GroupID + " : Bot不是聊天成員,";
                        if (Temp.GetDatabaseManager().RemoveGroupCfg(cfg.GroupID))
                        {
                            groups = groups + "移除成功\n";
                        }
                        else
                        {
                            groups = groups + "移除失敗\n";
                        }
                    }
                }

                var charlist = new List <string>();

                for (var i = 0; i < groups.Length; i += 4000)
                {
                    charlist.Add(groups.Substring(i, Math.Min(4000, groups.Length - i)));
                }

                foreach (string msg in charlist)
                {
                    TgApi.getDefaultApiConnection().sendMessage(
                        RawMessage.GetMessageChatInfo().id,
                        msg,
                        RawMessage.message_id,
                        TgApi.PARSEMODE_HTML
                        );
                }
            }

            TgApi.getDefaultApiConnection().sendMessage(
                RawMessage.GetMessageChatInfo().id,
                "CleanUP 執行完畢",
                RawMessage.message_id,
                TgApi.PARSEMODE_HTML
                );
            return(true);
        }
Example #7
0
        internal bool SoamEnable_All(TgMessage RawMessage)
        {
            string enabled               = "";
            string otherMsg              = "";
            string groupChatID           = "";
            int    AdminOnly             = 3;
            int    Blacklist             = 3;
            int    AutoKick              = 3;
            int    AntiHalal             = 3;
            int    AutoDeleteSpamMessage = 3;
            int    AutoDeleteCommand     = 3;
            int    SubscribeBanList      = 3;
            string text = RawMessage.text.ToLower();

            if (text.IndexOf(" adminonly") != -1)
            {
                AdminOnly = 0;
                enabled  += " AdminOnly";
            }

            if (text.IndexOf(" blacklist") != -1)
            {
                Blacklist = 0;
                if (Temp.DisableBanList)
                {
                    otherMsg += "\nBlackList 開啟失敗,目前版本未啟用此功能。。";
                }
                else
                {
                    enabled += " Blacklist";
                }
            }

            if (text.IndexOf(" autokick") != -1)
            {
                AutoKick = 0;
                if (Temp.DisableBanList)
                {
                    otherMsg += "\nAutoKick 開啟失敗,目前版本未啟用此功能。。";
                }
                else
                {
                    enabled += " AutoKick";
                }
            }

            if (text.IndexOf(" antihalal") != -1)
            {
                AntiHalal = 0;
                enabled  += " AntiHalal";
            }

            if (text.IndexOf(" autodeletespammessage") != -1)
            {
                AutoDeleteSpamMessage = 0;
                if (Temp.DisableBanList)
                {
                    otherMsg += "\nAutoDeleteSpamMessage 開啟失敗,目前版本未啟用此功能。。";
                }
                else
                {
                    enabled += " AutoDeleteSpamMessage";
                }
            }

            if (text.IndexOf(" autodeletecommand") != -1)
            {
                AutoDeleteCommand = 0;
                enabled          += " AutoDeleteCommand";
            }

            if (text.IndexOf(" subscribebanlist") != -1)
            {
                SubscribeBanList = 0;
                if (Temp.DisableBanList)
                {
                    otherMsg += "\nSubscribeBanList 開啟失敗,目前版本未啟用此功能。。";
                }
                else
                {
                    enabled += " SubscribeBanList";
                }
                enabled += " SubscribeBanList";
            }

            using (var db = new BlacklistDatabaseContext())
            {
                List <GroupCfg> groupCfg = null;
                try
                {
                    groupCfg = db.GroupConfig.ToList();
                }
                catch (InvalidOperationException)
                {
                    return(false);
                }

                if (groupCfg == null)
                {
                    return(false);
                }
                foreach (GroupCfg cfg in groupCfg)
                {
                    Temp.GetDatabaseManager().SetGroupConfig(
                        cfg.GroupID,
                        AdminOnly,
                        Blacklist,
                        AutoKick,
                        AntiHalal: AntiHalal,
                        AutoDeleteSpamMessage: AutoDeleteSpamMessage,
                        AutoDeleteCommand: AutoDeleteCommand,
                        SubscribeBanList: SubscribeBanList
                        );
                    if (enabled == "")
                    {
                        if (Temp.MainChannelName == null)
                        {
                            enabled = "";
                        }
                        else
                        {
                            enabled = "";
                        }
                    }
                    groupChatID = groupChatID + "\n" + cfg.GroupID;
                }

                TgApi.getDefaultApiConnection().sendMessage(RawMessage.chat.id,
                                                            "有夠Highㄉ,處理完畢! \n\nChat ID : \n" + groupChatID + "\n\n開啟的功能為:\n" + enabled + otherMsg,
                                                            RawMessage.message_id);
            }

            return(true);
        }