imageaudit-20191230/main.tea (301 lines of code) (raw):

/** * */ import Util; import OSS; import OpenPlatform; import OSSUtil; import FileForm; import Number; import OpenApi; import OpenApiUtil; import EndpointUtil; extends OpenApi; init(config: OpenApi.Config){ super(config); @endpointRule = 'regional'; checkConfig(config); @endpoint = getEndpoint('imageaudit', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint); } function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{ if (!Util.empty(endpoint)) { return endpoint; } if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) { return endpointMap[regionId]; } return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix); } model ScanImageRequest { scene?: [ string ](name='Scene', description='1', example='porn'), task?: [ { dataId?: string(name='DataId', example='uuid-xxxx-xxxx-1234'), imageTimeMillisecond?: long(name='ImageTimeMillisecond', example='1'), imageURL?: string(name='ImageURL', example='http://xxx.xxx.com/xxx.jpg'), interval?: int32(name='Interval', example='1'), maxFrames?: int32(name='MaxFrames', example='1'), } ](name='Task', description='1'), } model ScanImageAdvanceRequest { scene?: [ string ](name='Scene', description='1', example='porn'), task?: [ { dataId?: string(name='DataId', example='uuid-xxxx-xxxx-1234'), imageTimeMillisecond?: long(name='ImageTimeMillisecond', example='1'), imageURLObject?: readable(name='ImageURL', example='http://xxx.xxx.com/xxx.jpg'), interval?: int32(name='Interval', example='1'), maxFrames?: int32(name='MaxFrames', example='1'), } ](name='Task', description='1'), } model ScanImageResponseBody = { data?: { results?: [ { dataId?: string(name='DataId', example='uuid-xxxx-xxx-1234'), imageURL?: string(name='ImageURL', example='http://xxx.xxx.xxx/xxx.jpg'), subResults?: [ { frames?: [ { rate?: float(name='Rate', example='89.85'), URL?: string(name='URL', example='http://xxx.xxx.com/xxx-0.jpg'), } ](name='Frames'), hintWordsInfoList?: [ { context?: string(name='Context', example='abc'), } ](name='HintWordsInfoList'), label?: string(name='Label', example='normal'), logoDataList?: [ { height?: float(name='Height', example='106'), name?: string(name='Name', example='abc'), type?: string(name='Type', example='TV'), width?: float(name='Width', example='106'), x?: float(name='X', example='140'), y?: float(name='Y', example='68'), } ](name='LogoDataList'), OCRDataList?: [ string ](name='OCRDataList', description='1'), programCodeDataList?: [ { height?: float(name='Height', example='413.0'), width?: float(name='Width', example='402.0'), x?: float(name='X', example='11.0'), y?: float(name='Y', example='0.0'), } ](name='ProgramCodeDataList'), rate?: float(name='Rate', example='99.91'), scene?: string(name='Scene', example='ad'), sfaceDataList?: [ { faces?: [ { id?: string(name='Id', example='AliFace_0001234'), name?: string(name='Name', example='abc'), rate?: float(name='Rate', example='91.54'), } ](name='Faces'), height?: float(name='Height', example='131'), width?: float(name='Width', example='97'), x?: float(name='X', example='49'), y?: float(name='Y', example='39'), } ](name='SfaceDataList'), suggestion?: string(name='Suggestion', example='block'), } ](name='SubResults'), taskId?: string(name='TaskId', example='img4wlJcb7p4wH4lAP3111111-123456'), } ](name='Results'), }(name='Data'), requestId?: string(name='RequestId', example='69B41AE8-1234-1234-1234-12D395695D2D'), } model ScanImageResponse = { headers: map[string]string(name='headers'), statusCode: int32(name='statusCode'), body: ScanImageResponseBody(name='body'), } async function scanImageWithOptions(request: ScanImageRequest, runtime: Util.RuntimeOptions): ScanImageResponse { Util.validateModel(request); var body : map[string]any = {}; if (!Util.isUnset(request.scene)) { body['Scene'] = request.scene; } if (!Util.isUnset(request.task)) { body['Task'] = request.task; } var req = new OpenApi.OpenApiRequest{ body = OpenApiUtil.parseToMap(body), }; var params = new OpenApi.Params{ action = 'ScanImage', version = '2019-12-30', protocol = 'HTTPS', pathname = '/', method = 'POST', authType = 'AK', style = 'RPC', reqBodyType = 'formData', bodyType = 'json', }; return callApi(params, req, runtime); } async function scanImage(request: ScanImageRequest): ScanImageResponse { var runtime = new Util.RuntimeOptions{}; return scanImageWithOptions(request, runtime); } async function scanImageAdvance(request: ScanImageAdvanceRequest, runtime: Util.RuntimeOptions): ScanImageResponse { // Step 0: init client var accessKeyId = @credential.getAccessKeyId(); var accessKeySecret = @credential.getAccessKeySecret(); var securityToken = @credential.getSecurityToken(); var credentialType = @credential.getType(); var openPlatformEndpoint = @openPlatformEndpoint; if(Util.isUnset(openPlatformEndpoint)) { openPlatformEndpoint ='openplatform.aliyuncs.com'; } if(Util.isUnset(credentialType)) { credentialType ='access_key'; } var authConfig = new OpenApi.Config{ accessKeyId = accessKeyId, accessKeySecret = accessKeySecret, securityToken = securityToken, type = credentialType, endpoint = openPlatformEndpoint, protocol = @protocol, regionId = @regionId, }; var authClient = new OpenPlatform(authConfig); var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{ product = 'imageaudit', regionId = @regionId, }; var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{}; var ossConfig = new OSS.Config{ accessKeySecret = accessKeySecret, type = 'access_key', protocol = @protocol, regionId = @regionId, }; var ossClient : OSS = null; var fileObj = new FileForm.FileField{}; var ossHeader = new OSS.PostObjectRequest.header{}; var uploadRequest = new OSS.PostObjectRequest{}; var ossRuntime = new OSSUtil.RuntimeOptions{}; OpenApiUtil.convert(runtime, ossRuntime); var scanImageReq = new ScanImageRequest{}; OpenApiUtil.convert(request, scanImageReq); if(!Util.isUnset(request.task)) { var i0 : integer = 0; for (var item0 : request.task) { if(!Util.isUnset(item0.imageURLObject)) { authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime); ossConfig.accessKeyId = authResponse.body.accessKeyId; ossConfig.endpoint = OpenApiUtil.getEndpoint(authResponse.body.endpoint, authResponse.body.useAccelerate, @endpointType); ossClient = new OSS(ossConfig); fileObj = new FileForm.FileField{ filename = authResponse.body.objectKey, content = item0.imageURLObject, contentType = '', }; ossHeader = new OSS.PostObjectRequest.header{ accessKeyId = authResponse.body.accessKeyId, policy = authResponse.body.encodedPolicy, signature = authResponse.body.signature, key = authResponse.body.objectKey, file = fileObj, successActionStatus = '201', }; uploadRequest = new OSS.PostObjectRequest{ bucketName = authResponse.body.bucket, header = ossHeader, }; ossClient.postObject(uploadRequest, ossRuntime); var tmp : ScanImageRequest.task = scanImageReq.task[i0]; tmp.imageURL = `http://${authResponse.body.bucket}.${authResponse.body.endpoint}/${authResponse.body.objectKey}`; i0 = Number.ltoi(Number.add(Number.itol(i0), Number.itol(1))); } } } var scanImageResp = scanImageWithOptions(scanImageReq, runtime); return scanImageResp; } model ScanTextRequest { labels?: [ { label?: string(name='Label', example='ad'), } ](name='Labels', description='1'), tasks?: [ { content?: string(name='Content'), } ](name='Tasks', description='1'), } model ScanTextResponseBody = { data?: { elements?: [ { results?: [ { details?: [ { contexts?: [ { context?: string(name='Context'), } ](name='Contexts'), label?: string(name='Label', example='ad'), } ](name='Details'), label?: string(name='Label', example='ad'), rate?: float(name='Rate', example='99.91'), suggestion?: string(name='Suggestion', example='block'), } ](name='Results'), taskId?: string(name='TaskId', example='txt6Vh5Fv0DAFy5hgdVRt3pqf-1s82jj'), } ](name='Elements'), }(name='Data'), requestId?: string(name='RequestId', example='C7CD87E3-57A5-4E2F-8A44-809F3554692C'), } model ScanTextResponse = { headers: map[string]string(name='headers'), statusCode: int32(name='statusCode'), body: ScanTextResponseBody(name='body'), } async function scanTextWithOptions(request: ScanTextRequest, runtime: Util.RuntimeOptions): ScanTextResponse { Util.validateModel(request); var body : map[string]any = {}; if (!Util.isUnset(request.labels)) { body['Labels'] = request.labels; } if (!Util.isUnset(request.tasks)) { body['Tasks'] = request.tasks; } var req = new OpenApi.OpenApiRequest{ body = OpenApiUtil.parseToMap(body), }; var params = new OpenApi.Params{ action = 'ScanText', version = '2019-12-30', protocol = 'HTTPS', pathname = '/', method = 'POST', authType = 'AK', style = 'RPC', reqBodyType = 'formData', bodyType = 'json', }; return callApi(params, req, runtime); } async function scanText(request: ScanTextRequest): ScanTextResponse { var runtime = new Util.RuntimeOptions{}; return scanTextWithOptions(request, runtime); }