/// <summary> /// TODO /// - やること1 /// - やること2 /// みたいなフォーマットのツイートから、「やること1」「やること2」を取得する /// </summary> private IEnumerable <string> ParseTodoTweet(TweetRequest tweet) { var lines = tweet.Text.Split('\n'); if (lines.Length == 0) { return(new string[0]); } if (!lines[0].ToLower().Contains("todo")) { return(new string[0]); } var todo = new List <string>(); foreach (var line in lines.Skip(1)) { var trim = line.Trim(); if (trim.StartsWith("-")) { todo.Add(line.Trim('-', ' ')); } } return(todo); }
public async Task Run(TweetRequest tweet) { var todos = ParseTodoTweet(tweet).ToArray(); if (todos.Length == 0) { return; } var jstNow = DateTime.UtcNow.AddHours(9); var currentBoard = await GetCurrentBoard(jstNow); await currentBoard.Refresh(); // Progressって名前のリストを取得する。予め用意しておく。 var progressList = currentBoard.Lists .Where(x => x.Name.ToLower() == "progress") .FirstOrDefault(); if (progressList == null) { return; } var cardPrefix = jstNow.ToString("MMdd"); foreach (var todo in todos) { var cardName = $"{cardPrefix} {todo}"; await progressList.Cards.Add(cardName); } }