Exemplo n.º 1
0
        async Task ReportLikeToAWS(CustomVisionResponse imagePrediction, IEnumerable <string> hashtags)
        {
            var client = new HttpClient();

            var dataProcessingPipeReport = new DataProcessingPipelineReport {
                ImageAnalysis = imagePrediction,
                Username      = Username,
                Timestamp     = DateTime.Now,
                Hashtags      = hashtags,
                Id            = Guid.NewGuid()
            };

            var json = JsonConvert.SerializeObject(dataProcessingPipeReport);

            using (var content = new StringContent(json)) {
                var response = await client.PostAsync(Ec2MasterUrl, content);
            }
        }
Exemplo n.º 2
0
        public void LikeLoop()
        {
            // Run infinite loop
            while (true)
            {
                var all = app.Query(q => q.Class("WKWebView").Css("*"));

                var hashtags = new List <string> ();

                // Search for hashtag
                foreach (var element in all)
                {
                    if (!string.IsNullOrEmpty(element.TextContent) && element.Class == "_ezgzd")
                    {
                        var regex   = new Regex(@"(?<=#)\w+");
                        var matches = regex.Matches(element.TextContent);

                        foreach (Match m in matches)
                        {
                            hashtags.Add(m.Value);
                        }
                    }
                }

                // Search for the like button
                foreach (var element in all)
                {
                    if (element.Class.Contains("coreSpriteHeartOpen"))
                    {
                        // Tap the like button
                        app.TapCoordinates(element.Rect.CenterX, element.Rect.CenterY);

                        // Capture a screenshot
                        var imageFileInfo = app.Screenshot(DateTime.Now.ToString());

                        CustomVisionResponse imagePrediction = null;

                        try {
                            // Analyze the image with Microsoft Custom Vision
                            var predictionRequestTask = MakePredictionRequest(imageFileInfo.FullName);
                            predictionRequestTask.Wait();

                            // Save predictions
                            imagePrediction = predictionRequestTask.Result;
                        } catch (Exception ex) {
                            Console.WriteLine($"Failed to get image ML details: {ex.Message}");
                        } finally {
                            File.Delete(imageFileInfo.FullName);
                        }

                        try {
                            // Report results: hashtags + ML predictions + metadata to AWS
                            ReportLikeToAWS(imagePrediction, hashtags).Wait();
                        } catch (Exception ex) {
                            Console.WriteLine($"Failed to report like to AWS: {ex.Message}");
                        }

                        break;
                    }
                }

                app.ScrollDown();
            }
        }