public static AddQueueResponse Unmarshall(UnmarshallerContext _ctx) { AddQueueResponse addQueueResponse = new AddQueueResponse(); addQueueResponse.HttpResponse = _ctx.HttpResponse; addQueueResponse.RequestId = _ctx.StringValue("AddQueue.RequestId"); return(addQueueResponse); }
public override async Task <AddQueueResponse> AddQueueItem(AddQueueRequest request, ServerCallContext context) { AddQueueResponse response = new AddQueueResponse(); QueueItem item = null; switch (request.NewItemCase) { case AddQueueRequest.NewItemOneofCase.Item: item = response.Item = request.Item; break; case AddQueueRequest.NewItemOneofCase.TweetId: ITweet tweet = await TweetAsync.GetTweet(request.TweetId); item = new QueueItem(); item.TweetId = tweet.Id; item.Played = 0; item.User = _dataStore.GetUser(tweet.CreatedBy.Id); item.Created = tweet.CreatedAt .ToUniversalTime() .ToTimestamp(); StringBuilder builder = new StringBuilder("<speak>"); ISet <IUserMentionEntity> users = new HashSet <IUserMentionEntity>(tweet.UserMentions); if (tweet.IsRetweet) { ITweet retweeted = tweet.RetweetedTweet; builder.AppendFormat("I, {0} retweetet {1}:", tweet.CreatedBy.Name, tweet.CreatedBy.Id == retweeted.CreatedBy.Id ? "myself" : retweeted.CreatedBy.Name); builder.Append("<break time=\"500ms\"/>"); builder.Append(retweeted.FullText); foreach (var userMention in retweeted.UserMentions) { users.Add(userMention); } } else if (tweet.QuotedTweet != null) { ITweet quoted = tweet.QuotedTweet; builder.AppendFormat("I, {0} quoted {1}: ", tweet.CreatedBy.Name, tweet.CreatedBy.Id == quoted.CreatedBy.Id ? "myself" : quoted.CreatedBy.Name); builder.Append("<break time=\"500ms\"/>"); builder.Append(quoted.FullText); builder.Append("<break time=\"500ms\"/>"); builder.AppendFormat("My quote on that: {0}", tweet.FullText); foreach (var userMention in quoted.UserMentions) { users.Add(userMention); } } else { builder.AppendFormat("I, {0} tweeted: ", tweet.CreatedBy.Name); builder.Append(tweet.FullText); } builder.Append("<break time=\"1s\"/>"); builder.Append("</speak>"); string text = _urlRegex.Replace(builder.ToString(), ""); if (string.IsNullOrWhiteSpace(text)) { response.IsEmpty = true; break; } foreach (var user in users) { text = text.Replace($"@{user.ScreenName}", user.Name); } item.Ssml = HttpUtility.HtmlDecode(text); item.Content = HttpUtility.HtmlDecode(tweet.FullText); response.Item = item; break; } if (!response.IsEmpty) { _logger.LogInformation("Added Item {0} by {1}", item.TweetId, item.User.Handle); _dataStore.Enqueue(item); } return(response); }
protected internal virtual AddQueueResponse Convert(Amazon.SQS.Model.SendMessageResponse response) { var addQueueResponse = new AddQueueResponse(); if (response.IsSetSendMessageResult()) { var sendMessageResult = response.SendMessageResult; if (sendMessageResult.IsSetMessageId()) { addQueueResponse.MessageId = sendMessageResult.MessageId; } } if (response.IsSetResponseMetadata()) { var metadata = response.ResponseMetadata; if (metadata.IsSetRequestId()) { addQueueResponse.RequestId = metadata.RequestId; } } return addQueueResponse; }