mirror of
https://github.com/vastxie/99AI.git
synced 2025-11-08 09:43:44 +08:00
fix: 修复 badWords 文件名大小写问题导致的部署错误
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,4 +3,5 @@ logs
|
||||
pnpm-lock.yaml
|
||||
.env
|
||||
/public/file
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
data
|
||||
100
dist/modules/badWords/badWords.controller.js
vendored
Normal file
100
dist/modules/badWords/badWords.controller.js
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BadWordsController = void 0;
|
||||
const adminAuth_guard_1 = require("../../common/auth/adminAuth.guard");
|
||||
const superAuth_guard_1 = require("../../common/auth/superAuth.guard");
|
||||
const common_1 = require("@nestjs/common");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const badWords_service_1 = require("./badWords.service");
|
||||
const addBadWords_dto_1 = require("./dto/addBadWords.dto");
|
||||
const delBadWords_dto_1 = require("./dto/delBadWords.dto");
|
||||
const queryBadWords_dto_1 = require("./dto/queryBadWords.dto");
|
||||
const queryViolation_dto_1 = require("./dto/queryViolation.dto");
|
||||
const updateBadWords_dto_1 = require("./dto/updateBadWords.dto");
|
||||
let BadWordsController = class BadWordsController {
|
||||
constructor(badWordsService) {
|
||||
this.badWordsService = badWordsService;
|
||||
}
|
||||
queryBadWords(query) {
|
||||
return this.badWordsService.queryBadWords(query);
|
||||
}
|
||||
delBadWords(body) {
|
||||
return this.badWordsService.delBadWords(body);
|
||||
}
|
||||
updateBadWords(body) {
|
||||
return this.badWordsService.updateBadWords(body);
|
||||
}
|
||||
addBadWord(body) {
|
||||
return this.badWordsService.addBadWord(body);
|
||||
}
|
||||
violation(req, query) {
|
||||
return this.badWordsService.violation(req, query);
|
||||
}
|
||||
};
|
||||
__decorate([
|
||||
(0, common_1.Get)('query'),
|
||||
(0, swagger_1.ApiOperation)({ summary: '查询所有敏感词' }),
|
||||
__param(0, (0, common_1.Query)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [queryBadWords_dto_1.QueryBadWordsDto]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], BadWordsController.prototype, "queryBadWords", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('del'),
|
||||
(0, swagger_1.ApiOperation)({ summary: '删除敏感词' }),
|
||||
(0, common_1.UseGuards)(superAuth_guard_1.SuperAuthGuard),
|
||||
(0, swagger_1.ApiBearerAuth)(),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [delBadWords_dto_1.DelBadWordsDto]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], BadWordsController.prototype, "delBadWords", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('update'),
|
||||
(0, swagger_1.ApiOperation)({ summary: '更新敏感词' }),
|
||||
(0, common_1.UseGuards)(superAuth_guard_1.SuperAuthGuard),
|
||||
(0, swagger_1.ApiBearerAuth)(),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [updateBadWords_dto_1.UpdateBadWordsDto]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], BadWordsController.prototype, "updateBadWords", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('add'),
|
||||
(0, swagger_1.ApiOperation)({ summary: '新增敏感词' }),
|
||||
(0, common_1.UseGuards)(superAuth_guard_1.SuperAuthGuard),
|
||||
(0, swagger_1.ApiBearerAuth)(),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [addBadWords_dto_1.AddBadWordDto]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], BadWordsController.prototype, "addBadWord", null);
|
||||
__decorate([
|
||||
(0, common_1.Get)('violation'),
|
||||
(0, swagger_1.ApiOperation)({ summary: '查询违规记录' }),
|
||||
(0, common_1.UseGuards)(adminAuth_guard_1.AdminAuthGuard),
|
||||
(0, swagger_1.ApiBearerAuth)(),
|
||||
__param(0, (0, common_1.Req)()),
|
||||
__param(1, (0, common_1.Query)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [Object, queryViolation_dto_1.QueryViolationDto]),
|
||||
__metadata("design:returntype", void 0)
|
||||
], BadWordsController.prototype, "violation", null);
|
||||
BadWordsController = __decorate([
|
||||
(0, swagger_1.ApiTags)('badWords'),
|
||||
(0, common_1.Controller)('badWords'),
|
||||
__metadata("design:paramtypes", [badWords_service_1.BadWordsService])
|
||||
], BadWordsController);
|
||||
exports.BadWordsController = BadWordsController;
|
||||
32
dist/modules/badWords/badWords.entity.js
vendored
Normal file
32
dist/modules/badWords/badWords.entity.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BadWordsEntity = void 0;
|
||||
const baseEntity_1 = require("../../common/entity/baseEntity");
|
||||
const typeorm_1 = require("typeorm");
|
||||
let BadWordsEntity = class BadWordsEntity extends baseEntity_1.BaseEntity {
|
||||
};
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ length: 20, comment: '敏感词' }),
|
||||
__metadata("design:type", String)
|
||||
], BadWordsEntity.prototype, "word", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ default: 1, comment: '敏感词开启状态' }),
|
||||
__metadata("design:type", Number)
|
||||
], BadWordsEntity.prototype, "status", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ default: 0, comment: '敏感词触发次数' }),
|
||||
__metadata("design:type", Number)
|
||||
], BadWordsEntity.prototype, "count", void 0);
|
||||
BadWordsEntity = __decorate([
|
||||
(0, typeorm_1.Entity)({ name: 'bad_words' })
|
||||
], BadWordsEntity);
|
||||
exports.BadWordsEntity = BadWordsEntity;
|
||||
30
dist/modules/badWords/badWords.module.js
vendored
Normal file
30
dist/modules/badWords/badWords.module.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BadWordsModule = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const typeorm_1 = require("@nestjs/typeorm");
|
||||
const user_entity_1 = require("../user/user.entity");
|
||||
const badWords_controller_1 = require("./badWords.controller");
|
||||
const badWords_entity_1 = require("./badWords.entity");
|
||||
const badWords_service_1 = require("./badWords.service");
|
||||
const violationLog_entity_1 = require("./violationLog.entity");
|
||||
let BadWordsModule = class BadWordsModule {
|
||||
};
|
||||
BadWordsModule = __decorate([
|
||||
(0, common_1.Global)(),
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
typeorm_1.TypeOrmModule.forFeature([badWords_entity_1.BadWordsEntity, violationLog_entity_1.ViolationLogEntity, user_entity_1.UserEntity]),
|
||||
],
|
||||
providers: [badWords_service_1.BadWordsService],
|
||||
controllers: [badWords_controller_1.BadWordsController],
|
||||
exports: [badWords_service_1.BadWordsService],
|
||||
})
|
||||
], BadWordsModule);
|
||||
exports.BadWordsModule = BadWordsModule;
|
||||
208
dist/modules/badWords/badWords.service.js
vendored
Normal file
208
dist/modules/badWords/badWords.service.js
vendored
Normal file
@@ -0,0 +1,208 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BadWordsService = void 0;
|
||||
const utils_1 = require("../../common/utils");
|
||||
const common_1 = require("@nestjs/common");
|
||||
const typeorm_1 = require("@nestjs/typeorm");
|
||||
const axios_1 = require("axios");
|
||||
const typeorm_2 = require("typeorm");
|
||||
const globalConfig_service_1 = require("../globalConfig/globalConfig.service");
|
||||
const user_entity_1 = require("../user/user.entity");
|
||||
const badWords_entity_1 = require("./badWords.entity");
|
||||
const violationLog_entity_1 = require("./violationLog.entity");
|
||||
let BadWordsService = class BadWordsService {
|
||||
constructor(badWordsEntity, violationLogEntity, userEntity, globalConfigService) {
|
||||
this.badWordsEntity = badWordsEntity;
|
||||
this.violationLogEntity = violationLogEntity;
|
||||
this.userEntity = userEntity;
|
||||
this.globalConfigService = globalConfigService;
|
||||
this.badWords = [];
|
||||
}
|
||||
async onModuleInit() {
|
||||
this.loadBadWords();
|
||||
}
|
||||
async customSensitiveWords(content, userId) {
|
||||
const triggeredWords = [];
|
||||
for (let i = 0; i < this.badWords.length; i++) {
|
||||
const word = this.badWords[i];
|
||||
if (content.includes(word)) {
|
||||
triggeredWords.push(word);
|
||||
}
|
||||
}
|
||||
if (triggeredWords.length) {
|
||||
await this.recordUserBadWords(userId, content, triggeredWords, ['自定义'], '自定义检测');
|
||||
}
|
||||
return triggeredWords;
|
||||
}
|
||||
async checkBadWords(content, userId) {
|
||||
const config = await this.globalConfigService.getSensitiveConfig();
|
||||
if (config) {
|
||||
await this.checkBadWordsByConfig(content, config, userId);
|
||||
}
|
||||
return await this.customSensitiveWords(content, userId);
|
||||
}
|
||||
async checkBadWordsByConfig(content, config, userId) {
|
||||
const { useType } = config;
|
||||
useType === 'baidu' &&
|
||||
(await this.baiduCheckBadWords(content, config.baiduTextAccessToken, userId));
|
||||
}
|
||||
extractContent(str) {
|
||||
const pattern = /存在(.*?)不合规/;
|
||||
const match = str.match(pattern);
|
||||
return match ? match[1] : '';
|
||||
}
|
||||
async baiduCheckBadWords(content, accessToken, userId) {
|
||||
if (!accessToken)
|
||||
return;
|
||||
const url = `https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=${accessToken}}`;
|
||||
const headers = {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
Accept: 'application/json',
|
||||
};
|
||||
const response = await axios_1.default.post(url, { text: content }, { headers });
|
||||
const { conclusion, error_code, error_msg, conclusionType, data } = response.data;
|
||||
if (error_code) {
|
||||
console.log('百度文本检测出现错误、请查看配置信息: ', error_msg);
|
||||
}
|
||||
if (conclusionType !== 1) {
|
||||
const types = [
|
||||
...new Set(data.map((item) => this.extractContent(item.msg))),
|
||||
];
|
||||
await this.recordUserBadWords(userId, content, ['***'], types, '百度云检测');
|
||||
const tips = `您提交的信息中包含${types.join(',')}的内容、我们已对您的账户进行标记、请合规使用!`;
|
||||
throw new common_1.HttpException(tips, common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
formarTips(wordList) {
|
||||
const categorys = wordList.map((t) => t.category);
|
||||
const unSet = [...new Set(categorys)];
|
||||
return `您提交的内容中包含${unSet.join(',')}的信息、我们已对您账号进行标记、请合规使用!`;
|
||||
}
|
||||
async loadBadWords() {
|
||||
const data = await this.badWordsEntity.find({
|
||||
where: { status: 1 },
|
||||
select: ['word'],
|
||||
});
|
||||
this.badWords = data.map((t) => t.word);
|
||||
}
|
||||
async queryBadWords(query) {
|
||||
const { page = 1, size = 500, word, status } = query;
|
||||
const where = {};
|
||||
[0, 1, '0', '1'].includes(status) && (where.status = status);
|
||||
word && (where.word = (0, typeorm_2.Like)(`%${word}%`));
|
||||
const [rows, count] = await this.badWordsEntity.findAndCount({
|
||||
where,
|
||||
skip: (page - 1) * size,
|
||||
take: size,
|
||||
order: { id: 'ASC' },
|
||||
});
|
||||
return { rows, count };
|
||||
}
|
||||
async delBadWords(body) {
|
||||
const b = await this.badWordsEntity.findOne({ where: { id: body.id } });
|
||||
if (!b) {
|
||||
throw new common_1.HttpException('敏感词不存在,请检查您的提交信息', common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
const res = await this.badWordsEntity.delete({ id: body.id });
|
||||
if (res.affected > 0) {
|
||||
await this.loadBadWords();
|
||||
return '删除敏感词成功';
|
||||
}
|
||||
else {
|
||||
throw new common_1.HttpException('删除敏感词失败', common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
async updateBadWords(body) {
|
||||
const { id, word, status } = body;
|
||||
const b = await this.badWordsEntity.findOne({ where: { word } });
|
||||
if (b) {
|
||||
throw new common_1.HttpException('敏感词已经存在了、请勿重复添加', common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
const res = await this.badWordsEntity.update({ id }, { word, status });
|
||||
if (res.affected > 0) {
|
||||
await this.loadBadWords();
|
||||
return '更新敏感词成功';
|
||||
}
|
||||
else {
|
||||
throw new common_1.HttpException('更新敏感词失败', common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
async addBadWord(body) {
|
||||
const { word } = body;
|
||||
const b = await this.badWordsEntity.findOne({ where: { word } });
|
||||
if (b) {
|
||||
throw new common_1.HttpException('敏感词已存在,请检查您的提交信息', common_1.HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
await this.badWordsEntity.save({ word });
|
||||
await this.loadBadWords();
|
||||
return '添加敏感词成功';
|
||||
}
|
||||
async recordUserBadWords(userId, content, words, typeCn, typeOriginCn) {
|
||||
const data = {
|
||||
userId,
|
||||
content,
|
||||
words: JSON.stringify(words),
|
||||
typeCn: JSON.stringify(typeCn),
|
||||
typeOriginCn,
|
||||
};
|
||||
try {
|
||||
await this.userEntity
|
||||
.createQueryBuilder()
|
||||
.update(user_entity_1.UserEntity)
|
||||
.set({ violationCount: () => 'violationCount + 1' })
|
||||
.where('id = :userId', { userId })
|
||||
.execute();
|
||||
await this.violationLogEntity.save(data);
|
||||
}
|
||||
catch (error) {
|
||||
console.log('error: ', error);
|
||||
}
|
||||
}
|
||||
async violation(req, query) {
|
||||
const { role } = req.user;
|
||||
const { page = 1, size = 10, userId, typeOriginCn } = query;
|
||||
const where = {};
|
||||
userId && (where['userId'] = userId);
|
||||
typeOriginCn && (where['typeOriginCn'] = typeOriginCn);
|
||||
const [rows, count] = await this.violationLogEntity.findAndCount({
|
||||
where,
|
||||
skip: (page - 1) * size,
|
||||
take: size,
|
||||
order: { id: 'DESC' },
|
||||
});
|
||||
const userIds = [...new Set(rows.map((t) => t.userId))];
|
||||
const usersInfo = await this.userEntity.find({
|
||||
where: { id: (0, typeorm_2.In)(userIds) },
|
||||
select: ['id', 'avatar', 'username', 'email', 'violationCount', 'status'],
|
||||
});
|
||||
rows.forEach((t) => {
|
||||
const user = usersInfo.find((u) => u.id === t.userId) || {};
|
||||
role !== 'super' && (user.email = (0, utils_1.hideString)(user.email));
|
||||
t.userInfo = user;
|
||||
});
|
||||
return { rows, count };
|
||||
}
|
||||
};
|
||||
BadWordsService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, typeorm_1.InjectRepository)(badWords_entity_1.BadWordsEntity)),
|
||||
__param(1, (0, typeorm_1.InjectRepository)(violationLog_entity_1.ViolationLogEntity)),
|
||||
__param(2, (0, typeorm_1.InjectRepository)(user_entity_1.UserEntity)),
|
||||
__metadata("design:paramtypes", [typeorm_2.Repository,
|
||||
typeorm_2.Repository,
|
||||
typeorm_2.Repository,
|
||||
globalConfig_service_1.GlobalConfigService])
|
||||
], BadWordsService);
|
||||
exports.BadWordsService = BadWordsService;
|
||||
20
dist/modules/badWords/dto/addBadWords.dto.js
vendored
Normal file
20
dist/modules/badWords/dto/addBadWords.dto.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AddBadWordDto = void 0;
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class AddBadWordDto {
|
||||
}
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'test', description: '敏感词', required: true }),
|
||||
__metadata("design:type", String)
|
||||
], AddBadWordDto.prototype, "word", void 0);
|
||||
exports.AddBadWordDto = AddBadWordDto;
|
||||
20
dist/modules/badWords/dto/delBadWords.dto.js
vendored
Normal file
20
dist/modules/badWords/dto/delBadWords.dto.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DelBadWordsDto = void 0;
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class DelBadWordsDto {
|
||||
}
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '敏感词id', required: true }),
|
||||
__metadata("design:type", Number)
|
||||
], DelBadWordsDto.prototype, "id", void 0);
|
||||
exports.DelBadWordsDto = DelBadWordsDto;
|
||||
37
dist/modules/badWords/dto/queryBadWords.dto.js
vendored
Normal file
37
dist/modules/badWords/dto/queryBadWords.dto.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.QueryBadWordsDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class QueryBadWordsDto {
|
||||
}
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryBadWordsDto.prototype, "page", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryBadWordsDto.prototype, "size", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'test', description: '敏感词内容', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", String)
|
||||
], QueryBadWordsDto.prototype, "word", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '关键词状态', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryBadWordsDto.prototype, "status", void 0);
|
||||
exports.QueryBadWordsDto = QueryBadWordsDto;
|
||||
37
dist/modules/badWords/dto/queryViolation.dto.js
vendored
Normal file
37
dist/modules/badWords/dto/queryViolation.dto.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.QueryViolationDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class QueryViolationDto {
|
||||
}
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '查询页数', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryViolationDto.prototype, "page", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 10, description: '每页数量', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryViolationDto.prototype, "size", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '用户ID', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], QueryViolationDto.prototype, "userId", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: '百度云检测', description: '检测平台来源', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", String)
|
||||
], QueryViolationDto.prototype, "typeOriginCn", void 0);
|
||||
exports.QueryViolationDto = QueryViolationDto;
|
||||
32
dist/modules/badWords/dto/updateBadWords.dto.js
vendored
Normal file
32
dist/modules/badWords/dto/updateBadWords.dto.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UpdateBadWordsDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class UpdateBadWordsDto {
|
||||
}
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '敏感词id', required: true }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], UpdateBadWordsDto.prototype, "id", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 'test', description: '敏感词内容', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", String)
|
||||
], UpdateBadWordsDto.prototype, "word", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({ example: 1, description: '关键词状态', required: false }),
|
||||
(0, class_validator_1.IsOptional)(),
|
||||
__metadata("design:type", Number)
|
||||
], UpdateBadWordsDto.prototype, "status", void 0);
|
||||
exports.UpdateBadWordsDto = UpdateBadWordsDto;
|
||||
40
dist/modules/badWords/violationLog.entity.js
vendored
Normal file
40
dist/modules/badWords/violationLog.entity.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ViolationLogEntity = void 0;
|
||||
const typeorm_1 = require("typeorm");
|
||||
const baseEntity_1 = require("../../common/entity/baseEntity");
|
||||
let ViolationLogEntity = class ViolationLogEntity extends baseEntity_1.BaseEntity {
|
||||
};
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ comment: '用户id' }),
|
||||
__metadata("design:type", Number)
|
||||
], ViolationLogEntity.prototype, "userId", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ comment: '违规内容', type: 'text' }),
|
||||
__metadata("design:type", String)
|
||||
], ViolationLogEntity.prototype, "content", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ comment: '敏感词', type: 'text' }),
|
||||
__metadata("design:type", String)
|
||||
], ViolationLogEntity.prototype, "words", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ comment: '违规类型' }),
|
||||
__metadata("design:type", String)
|
||||
], ViolationLogEntity.prototype, "typeCn", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ comment: '违规检测失败于哪个平台' }),
|
||||
__metadata("design:type", String)
|
||||
], ViolationLogEntity.prototype, "typeOriginCn", void 0);
|
||||
ViolationLogEntity = __decorate([
|
||||
(0, typeorm_1.Entity)({ name: 'violation_log' })
|
||||
], ViolationLogEntity);
|
||||
exports.ViolationLogEntity = ViolationLogEntity;
|
||||
@@ -31,6 +31,7 @@ services:
|
||||
|
||||
99ai:
|
||||
build: ./
|
||||
# image: vastxie/99ai:latest
|
||||
container_name: 99ai
|
||||
restart: always
|
||||
ports:
|
||||
|
||||
@@ -9,10 +9,8 @@ import { NestFactory } from '@nestjs/core';
|
||||
import * as compression from 'compression';
|
||||
import { randomBytes } from 'crypto';
|
||||
import * as Dotenv from 'dotenv';
|
||||
// import * as express from 'express';
|
||||
import * as xmlBodyParser from 'express-xml-bodyparser';
|
||||
import Redis from 'ioredis';
|
||||
// import { join } from 'path';
|
||||
import { AppModule } from './app.module';
|
||||
Dotenv.config({ path: '.env' });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user