Spaces:
Running
Running
| import {Controller, Post} from 'simple-ts-express-decorators'; | |
| import multer, {memoryStorage} from 'multer'; | |
| import {Request, Response} from 'express'; | |
| import {NsfwImageClassifier} from 'app/NsfwImageClassifier'; | |
| const upload = multer({storage: memoryStorage()}); | |
| () | |
| export class NsfwController { | |
| classifier: NsfwImageClassifier; | |
| constructor() { | |
| this.classifier = new NsfwImageClassifier(); | |
| } | |
| ('/classify', upload.single('image')) | |
| async classify(request: Request, response: Response) { | |
| if (!request.file) { | |
| return response | |
| .status(410) | |
| .json({error: 'Specify image'}); | |
| } | |
| const data = await this.classifier.classify(request.file.buffer); | |
| return response.json(data); | |
| } | |
| ('/classify-many', upload.array('images', 10)) | |
| async classifyMany(request: Request, response: Response) { | |
| if (!request.files || !request.files.length) { | |
| return response | |
| .status(410) | |
| .json({error: 'Specify images'}); | |
| } | |
| const buffers = (request.files as Express.Multer.File[]).map(file => file.buffer); | |
| const data = await this.classifier.classifyMany(buffers); | |
| return response.json(data); | |
| } | |
| } | |