public static HttpResponseMessage Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post")] ProcessingRequest request, [Blob("%input-container%/{FileId}")] CloudBlockBlob outBlob, TraceWriter log, [ServiceBus("mytopic", AccessRights.Manage)] out BrokeredMessage topicMessage) { log.Info("(Fun1) Received image for processing..."); AsyncHelper.RunSync(async() => { await outBlob.UploadFromByteArrayAsync(request.Content, 0, request.Content.Length); }); var analysisRequest = new AnalysisReq { BlobRef = outBlob.Name, Width = request.Width, ImageUrl = request.ImageUrl }; topicMessage = new BrokeredMessage(analysisRequest); return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(outBlob.Name) }); }
private async void Analyze(string path, string charset, string sqLanguage, IIssueConsumer consumer) { var request = new AnalysisReq { BaseDir = path, WorkDir = WorkingDirectory, }; request.File.Add(new InputFile { Path = path, Charset = charset, Language = sqLanguage }); // Concurrent requests should not use same directory: var buildWrapperOutDir = CreateTempDirectory(WorkingDirectory); using (var call = daemonClient.Analyze(request)) { try { await ProcessIssues(call, path, consumer); } catch (Exception e) { Debug.WriteLine("Call to client.Analyze failed: {0}", e); } finally { Directory.Delete(buildWrapperOutDir, true); } } }
private async void Analyze(string path, string charset, IIssueConsumer consumer) { var request = new AnalysisReq { BaseDir = path, WorkDir = workingDirectory, }; request.File.Add(new InputFile { Path = path, Charset = charset, }); var channel = new Channel($"{DAEMON_HOST}:{port}", ChannelCredentials.Insecure); var client = new StandaloneSonarLint.StandaloneSonarLintClient(channel); using (var call = client.Analyze(request)) { try { await ProcessIssues(call, path, consumer); } catch (Exception e) { Debug.WriteLine("Call to client.Analyze failed: {0}", e); } } await channel.ShutdownAsync(); }
public static SMSMessage Run( [QueueTrigger("to-admin-notif")] AnalysisReq request, TraceWriter log) { log.Info("(Fun5) Sending SMS..."); var baseUrl = ConfigurationManager.AppSettings["base-url"]; var from = ConfigurationManager.AppSettings["twilio-from-number"]; var to = ConfigurationManager.AppSettings["twilio-to-number"]; return(new SMSMessage { From = from, To = to, Body = @"Psst!! Hey, Content Hero! Someone just uploaded an unappropriated picture to your site. It's up to you now to figure it out which image! :)" }); }
public static async Task <CloudQueueMessage> Run( [ServiceBusTrigger("mytopic", "to-ascii", AccessRights.Manage)] AnalysisReq request, [Blob("%input-container%/{BlobRef}", FileAccess.Read)] Stream inBlob, TraceWriter log) { log.Info("(Fun2) Running image analysis..."); var subscriptionKey = ConfigurationManager.AppSettings["cognitive-services-key"]; var serviceUri = ConfigurationManager.AppSettings["cognitive-services-uri"]; var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = serviceUri }; var result = await client.AnalyzeImageInStreamAsync(inBlob, new[] { VisualFeatureTypes.Categories, VisualFeatureTypes.Color, VisualFeatureTypes.Description, VisualFeatureTypes.Faces, VisualFeatureTypes.ImageType, VisualFeatureTypes.Tags }); var asciiArtRequest = new AsciiArtRequest { BlobRef = request.BlobRef, Width = request.Width, Description = string.Join(",", result.Description.Captions.Select(c => c.Text)), Tags = result.Tags.Select(t => t.Name).ToArray() }; log.Info("(Fun2) Finished image analysis."); return(asciiArtRequest.AsQueueItem()); }
public static async Task <CloudQueueMessage> Run( [ServiceBusTrigger("mytopic", "to-eval", AccessRights.Manage)] AnalysisReq request, [Blob("%input-container%/{BlobRef}", FileAccess.Read)] Stream inBlob, TraceWriter log) { log.Info("(Fun4) Running image approval analysis..."); try { var subscriptionKey = ConfigurationManager.AppSettings["cognitive-services-key"]; var serviceUri = ConfigurationManager.AppSettings["cognitive-services-uri"]; var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = serviceUri }; var result = await client.AnalyzeImageInStreamAsync(inBlob, new[] { VisualFeatureTypes.Adult }); if (result.Adult.IsAdultContent) { log.Warning("(Fun4) Unappropriated content detected. Sending notification..."); return(request.AsQueueItem()); } log.Info("(Fun4) Image approved (no sensitive content)."); } catch (Exception e) { log.Info("Error on Running image approval..." + e.Message); } return(null); }
private void PrepareSonarCFamilyProps(string json, AnalysisReq request, string bwDir) { request.Properties.Add("sonar.cfamily.useCache", bool.FalseString); if (json == null) { return; } if (IsVerbose()) { WritelnToPane("Build wrapper output:" + Environment.NewLine + json); } try { File.WriteAllText(Path.Combine(bwDir, "build-wrapper-dump.json"), json); request.Properties.Add("sonar.cfamily.build-wrapper-output", bwDir); } catch (Exception e) { WritelnToPane("Unable to write build wrapper file in " + bwDir + ": " + e.StackTrace); } }