Beispiel #1
0
        public string BindCommonlyName(string msg, QQ fromQQ) //绑定俗称词库
        {
            bool isHans = EVEUtil.IncludeChinese(msg);

            if (EVEUtil.ParseBindMsg(msg, out var key, out var value))
            {
                if (!this.BindCommonlyAuthorize(fromQQ))
                {
                    return(isHans ? "您没有权限进行该操作" : "You do not have permission to do this.");
                }

                //防注入
                if (!EVEUtil.IsSafeSqlString(key) || !EVEUtil.IsSafeSqlString(value))
                {
                    return(isHans ? $"输入内容不安全: {key} | {value}" : $"Input is not secure: {key} | {value}");
                }

                //执行绑定
                this.MarketDB.AddCommonlyRecord(key, value);
                return(isHans ? "完成" : "Finished");
            }
Beispiel #2
0
        public void AddOrUpdateUSerInfo(long qq_id, string qq_name, long group_id = -1)
        {
            if (!NekoCore.Instance.Config.Users.EnableUserSystem)
            {
                return;
            }
            using (var cmd = new SQLiteCommand())
            {
                cmd.Connection = cn;
#pragma warning disable CA2100 // Review SQL queries for security vulnerabilities
                cmd.CommandText = $"SELECT * FROM user WHERE userid = {qq_id}";
#pragma warning restore CA2100 // Review SQL queries for security vulnerabilities
                var    reader    = cmd.ExecuteReader();
                bool   flag      = false;
                string group_str = "";
                if (reader.Read())
                {
                    //有数据,检查是否需要更新数据
                    if (reader.GetString(1) != qq_name)
                    {
                        flag = true;
                    }

                    //AppData.CQLog.Debug("Users", "解析群组数据");
                    group_str = reader.GetString(2) ?? "";
                    //AppData.CQLog.Debug("Users", "取到group 字符串:", group_str);
                    if (group_id != -1)
                    {
                        if (EVEUtil.TryGetLongListByString(group_str, out var group_list))
                        {
                            if (!group_list.Contains(group_id))
                            {
                                group_list.Add(group_id);
                                group_str = EVEUtil.GetString(group_list);
                                flag      = true;
                            }
                        }
                        else
                        {
                            flag      = true;
                            group_str = group_id.ToString();
                            //AppData.CQLog.Debug("Users", "解析group字符串失败");
                        }
                    }
                }
                else
                {
                    flag      = true;
                    group_str = group_id == -1 ? "" : group_id.ToString();
                }

                reader.Close();

                if (flag)
                {
                    cmd.CommandText = "REPLACE INTO user (userid,name,groups) VALUES(@userid,@name,@groups)";
                    cmd.Parameters.Add("userid", DbType.Int64).Value  = qq_id;
                    cmd.Parameters.Add("name", DbType.String).Value   = qq_name;
                    cmd.Parameters.Add("groups", DbType.String).Value = group_str;
                    cmd.ExecuteNonQuery();
                }
            }
        }