コード例 #1
0
        public async Task <WebhookResponse> GetExternalNews(GoogleCloudDialogflowV2WebhookRequest intent)
        {
            var    newsSourceRequested = intent.QueryResult.Parameters[newsParameter].ToString();
            string urlToUse            = "";

            urlToUse = BuildUrlToUse(newsSourceRequested, out string readableParameter);
            NewsExtract extracts = await ObtainNewAPIDta(urlToUse);

            if (extracts == null)
            {
                return(new WebhookResponse
                {
                    FulfillmentText = Utilities.ErrorReturnMsg()
                });
            }

            string returnString = ExtractHeadlines(extracts);

            var returnValue = new WebhookResponse
            {
                FulfillmentText = returnString
            };

            // returnValue = ExtractHeadlines(extracts, returnValue);

            return(returnValue);
        }
コード例 #2
0
        /// <summary>
        /// Gets  external news.
        /// </summary>
        /// <param name="newsSource">The news source.</param>
        /// <returns></returns>
        public async Task <string> GetExternalNews(string newsSource)
        {
            var apiKey   = _envHandler.GetApiKey(newsAPIKey);
            var urlToUse = mediaNews.Replace("newsMedia", newsSource.ToLower().Trim())
                           .Replace("API_KEY", apiKey);
            NewsExtract extracts = await ObtainNewAPIDta(urlToUse);

            if (extracts == null)
            {
                return(null);
            }
            return(ExtractHeadlines(extracts));
        }
コード例 #3
0
        private string ExtractHeadlines(NewsExtract extracts)
        {
            var returnMsg = new StringBuilder();

            if (extracts.totalResults == 0 || !extracts.status.Equals("ok"))
            {
                return("Cannot obtain news at this time\n");
            }
            returnMsg.Append("Here are the headlines from " + extracts.articles[0].source.name + ".\n");
            foreach (var article in extracts.articles)
            {
                returnMsg.Append(article.title + ".\n");
            }
            return(returnMsg.ToString());
        }
コード例 #4
0
        /// <summary>
        /// Gets the external news.
        /// </summary>
        /// <param name="parserResult">The parser result.</param>
        /// <returns></returns>
        internal async Task <WebhookResponse> GetExternalNews(JObject parserResult)
        {
            var parameters  = parserResult.SelectToken(ParametersPath);
            var paramValues =
                ((JObject)parameters).ToObject <Dictionary <string, string> >();
            var    newsSourceRequested = paramValues[newsParameter];
            string urlToUse            = "";

            urlToUse = BuildUrlToUse(newsSourceRequested, urlToUse, out string readableParameter);
            NewsExtract extracts = await ObtainNewAPIDta(urlToUse);

            string returnString = ExtractHeadlines(extracts);

            var returnValue = new WebhookResponse
            {
                FulfillmentText = returnString
            };

            returnValue = ExtractHeadlines(extracts, returnValue);

            return(returnValue);
        }
コード例 #5
0
        private WebhookResponse ExtractHeadlines(NewsExtract extracts, WebhookResponse returnValue)
        {
            returnValue = new WebhookResponse();
            var headlines = ExtractHeadlines(extracts);

            headlines += Utilities.EndOfCurrentRequest();
            headlines  = Utilities.ConvertAllToASCII(headlines);
            var textMsg = new Text();

            textMsg.Text_.Add(headlines);
            var simpleResponses = new SimpleResponses();
            var simpleResponse  = Utilities.BuildTextToSpeech(headlines);

            simpleResponses.SimpleResponses_.Add(simpleResponse);
            returnValue.FulfillmentMessages.Add(new Intent.Types.Message {
                SimpleResponses = simpleResponses, Platform = Platform.ActionsOnGoogle
            });
            returnValue.FulfillmentMessages.Add(new Intent.Types.Message {
                Text = textMsg
            });
            return(returnValue);
        }