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); }
/// <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)); }
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()); }
/// <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); }
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); }