node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
123 lines • 4.45 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NIMTool = void 0;
const loader_1 = __importDefault(require("../loader"));
const eventemitter3_1 = require("eventemitter3");
class NIMTool extends eventemitter3_1.EventEmitter {
constructor() {
super();
this.tool = new loader_1.default.NIMTool({ emit: this.emit.bind(this) });
}
/** 注册全局回调 */
initEventHandlers() {
return this.tool.InitEventHandlers();
}
/** 获取SDK里app account对应的app data目录(各个帐号拥有独立的目录,其父目录相同)
* @param app_account APP accountId。如果传入空字符串,则将获取到各个帐号目录的父目录(谨慎删除!)
* @return std::string 返回的目录路径(UTF8)
*/
getUserAppdataDir(appAccount) {
return this.tool.GetUserAppdataDir(appAccount);
}
/** 获取SDK里app account对应的具体类型的app data目录(如图片消息文件存放目录,语音消息文件存放目录等),需要调用nim_free_buf(void *data)释放内存
* @param app_account APP account。如果传入空字符串,则返回结果为空
* @param appdata_type 具体类型的app data。见NIMAppDataType定义
* @return std::string返回的目录路径(目录可能未生成,需要app自行判断是否已生成)
*/
getSpecificAppdataDir(appAccount, appdataType) {
return this.tool.GetSpecificAppdataDir(appAccount, appdataType);
}
/** 获取本地存储路径
* @return std::string 返回的目录路径(UTF8)
*/
getLocalAppdataDir() {
return this.tool.GetLocalAppdataDir();
}
/** 获取安装目录(SDK DLL所在的当前目录)
* @return std::string 返回的目录路径(UTF8)
*/
getCurModuleDir() {
return this.tool.GetCurModuleDir();
}
/** 计算md5
* @param input 需要计算md5的内容
* @return std::string 返回的md5
*/
getMd5(input) {
return this.tool.GetMd5(input);
}
/** 计算文件的md5
* @param file_path 文件完整路径,UTF-8
* @return std::string 返回的md5
*/
getFileMd5(filePath) {
return this.tool.GetFileMd5(filePath);
}
/** 生成UUID
* @return std::string 返回的UUID
*/
getUuid() {
return this.tool.GetUuid();
}
/** 语音转文字
* @param audio_info 语音信息
* @param cb 语音转文字回调
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return boolean 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 403:没有权限
* 414:参数错误
* 500:未知错误
* 6101:语音转码解析失败
* 6102:语音时长过长(超过60s
* 6103:服务不可用
* 6104:audioUrl不合法
* </pre>
*/
getAudioTextAsync(audioInfo, cb, jsonExtension) {
return new Promise((resolve) => {
if (!this.tool.GetAudioTextAsync(audioInfo, (rescode, text) => {
if (cb) {
cb(rescode, text);
}
resolve([rescode, text]);
}, jsonExtension)) {
resolve(null);
}
});
}
/** 客户端本地反垃圾
* @param text 文本内容,UTF-8
* @param replace_str 进行替换的字符串,UTF-8
* @param lib_name 词库名称,UTF-8
* @param callback 回调函数
* @return
* @note
* <pre>
* 回调函数ret
* 1:敏感词已被替换;
* 2:含有敏感词不允许发送;
* 3:需要将内容设置在消息结构的反垃圾字段里,由服务器过滤
* </pre>
*/
filterClientAntispam(text, replaceString, libName, cb) {
return new Promise((resolve) => {
this.tool.FilterClientAntispam(text, replaceString, libName, (ret, rescode, text) => {
if (cb) {
cb(ret, rescode, text);
}
resolve([ret, rescode, text]);
});
});
}
parseStringToJsonObject(jsonString) {
return JSON.parse(jsonString);
}
}
exports.NIMTool = NIMTool;
//# sourceMappingURL=tool.js.map
;