Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
郭有超
/
SSdk
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 543bf970
authored
Jan 10, 2020
by
郭有超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug
1 parent
bcde5470
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
192 additions
and
0 deletions
.DS_Store
laya-ssdk-ts.ts/SSdk.ts
.DS_Store
View file @
543bf97
No preview for this file type
laya-ssdk-ts.ts/SSdk.ts
0 → 100644
View file @
543bf97
const
word
:
Array
<
string
>
=
[];
class
SSdk
{
version
:
string
=
"1.0.0"
;
/**@description SDK 名称 */
name
:
string
=
"cocos-creator 敏感词屏蔽SDK"
;
/**@description 是否开启敏感词检测 */
_open_check
:
boolean
=
true
;
/**@description 应用的ID */
_app_id
:
string
=
"test"
;
/**@description 应用的密钥 */
_app_secret
:
string
=
"test"
;
/**@description 敏感词词库 */
_s_content
:
Array
<
string
>
=
[];
/**@description 是否开启log */
_console_log
:
boolean
=
true
;
/**@description 数据校验的md5 */
_s_md5
:
string
=
""
;
/**@description 下载文件失败的重试次数 */
max_retry_count
:
number
=
3
;
/**@description 缓存已经验证过的文本 */
_had_ver
:
any
=
{};
_success
:
Function
=
null
;
_had_find
:
boolean
=
false
;
constructor
()
{
}
/**@description 设置md5 */
public
set_s_md5
(
_s_md5
)
{
this
.
_s_md5
=
_s_md5
;
}
/**@description 设置应用的Secret */
public
set_app_secret
(
_app_secret
)
{
this
.
_app_secret
=
_app_secret
;
}
/**@description 设置应用ID */
public
set_app_id
(
_app_id
)
{
this
.
_app_id
=
_app_id
;
}
/**@description 开启log */
public
close_log
()
{
this
.
_console_log
=
false
;
}
/**@description 打印日志 */
public
_log
(
content
)
{
if
(
this
.
_console_log
)
{
console
.
log
(
content
);
}
}
/**@description 开启敏感词检测 true 开启检车 false 关闭检测 */
public
set_open_check
(
_open_check
)
{
this
.
_open_check
=
_open_check
;
}
http_handeler
(
url
:
string
,
data
:
string
,
method
:
string
,
response_type
:
string
,
headers
:
any
,
success
:
Function
)
{
var
xhr
=
new
Laya
.
HttpRequest
();
xhr
.
http
.
timeout
=
10000
;
this
.
_success
=
success
;
xhr
.
once
(
Laya
.
Event
.
COMPLETE
,
this
,
this
.
completeHandler
);
xhr
.
once
(
Laya
.
Event
.
ERROR
,
this
,
this
.
errorHandler
);
xhr
.
on
(
Laya
.
Event
.
PROGRESS
,
this
,
this
.
processHandler
);
xhr
.
send
(
url
,
data
,
method
,
response_type
,
headers
);
}
completeHandler
(
data
)
{
this
.
_success
&&
this
.
_success
(
data
);
}
errorHandler
(
data
)
{
// console.log("敏感词库的信息 errorHandler", data);
}
private
processHandler
(
data
:
any
):
void
{
// console.log("敏感词库的信息 processHandler", data);
}
public
get
(
url
,
body
,
success
,
fail
)
{
this
.
http_handeler
(
url
,
body
,
"get"
,
"text"
,
""
,
success
);
}
public
post
(
url
:
string
,
body
:
string
,
success
?:
Function
,
fail
?:
Function
)
{
this
.
http_handeler
(
url
,
body
,
"post"
,
"application/json"
,
""
,
success
);
}
/**@description SDK 初始化 传递当前SDK是否开启 请求当下的敏感词库 */
public
init
()
{
this
.
_s_content
=
word
;
this
.
_log
(
"敏感词版本号"
+
this
.
version
+
"敏感词SDK名称 = "
+
this
.
name
);
if
(
this
.
_open_check
)
{
var
data
=
{}
data
[
"app_id"
]
=
this
.
_app_id
;
data
[
"app_secret"
]
=
this
.
_app_secret
;
var
self
=
this
;
this
.
post
(
"https://maple.icesimba.cn/maple/notoken/sensitive/word/download"
,
JSON
.
stringify
(
data
),
(
res
)
=>
{
var
download_data
=
JSON
.
parse
(
res
);
self
.
set_s_md5
(
download_data
.
obj
.
md5
);
self
.
get
(
download_data
.
obj
.
url
,
""
,
function
(
tres
)
{
var
sumtdata
=
"[\""
+
tres
.
replace
(
/
\r\n
/g
,
"\",\""
)
+
"\"]"
;
var
tdata
=
sumtdata
.
replace
(
"\"石国 \""
,
"石国 "
);
// 将敏感词库换成JSON数组
self
.
_s_content
=
JSON
.
parse
(
tdata
);
console
.
log
(
"敏感词库下载成功"
);
},
function
(
res
)
{
// console.log("下载失败的字体", res);
})
},
function
(
res
)
{
// console.log("请求失败", res)
});
}
else
{
this
.
_log
(
"敏感词库初始化失败 需要开启敏感词库"
);
}
}
/**@description 检测敏感词 */
public
check
(
content
:
string
,
replace
:
string
)
{
if
(
!
this
.
_open_check
)
{
return
content
;
}
var
replace_char
=
"*"
;
if
(
replace
)
{
replace_char
=
replace
;
}
if
(
!
content
)
{
this
.
_log
(
"检测内容报错"
);
return
""
;
}
// 判断是否已经缓存过
if
(
this
.
_had_ver
[
content
])
{
return
this
.
_had_ver
[
content
];
}
var
_checked_str
=
this
.
replace_str
(
content
,
replace_char
)
this
.
_had_ver
[
content
]
=
_checked_str
return
_checked_str
;
}
public
had_ss_word
(
content
:
string
,
replace_char
:
string
)
{
this
.
_had_find
=
false
;
var
_checked_str
=
this
.
replace_str
(
content
,
replace_char
);
return
this
.
_had_find
;
}
public
replace_str
(
str
,
replace_char
)
{
var
len
=
str
.
length
;
// 长度从len -> 1;
for
(
var
i
=
len
;
i
>
0
;
--
i
)
{
// 起点从0 -> len-i;
for
(
var
j
=
0
;
j
<=
len
-
i
;
++
j
)
{
var
substr
=
str
.
substr
(
j
,
i
);
var
t_data
=
this
.
_s_content
.
indexOf
(
substr
);
if
(
t_data
!=
-
1
)
{
var
prev
=
str
.
substr
(
0
,
j
);
var
curr
=
replace_char
.
repeat
(
i
);
var
next
=
str
.
substr
(
i
+
j
,
len
-
i
-
j
);
this
.
_had_find
=
true
;
return
this
.
replace_str
(
prev
,
replace_char
)
+
curr
+
this
.
replace_str
(
next
,
replace_char
);
}
}
}
return
str
;
}
}
var
ssdk
=
new
SSdk
();
ssdk
.
set_open_check
(
true
);
ssdk
.
init
();
export
default
ssdk
;
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment