private bool ApplyAttributesAndExpandMacros() { bool attributesApplied = _attributes.BindAndApply(); bool macrosExpanded = _macroExpander.ExpandAll(); return(attributesApplied || macrosExpanded); }
private void ReportDetailReport() { const string Separator = "\t"; string path = RemoveInvalidPathChars(MacroExpander.ExpandAll(config.FuhaReports.DetailReportFilePath)); using var writer = new StreamWriter(path, false, reportFileEncoidng); writer.WriteLine(string.Join(Separator, new[] { "順番", "ツイート日時", "ツイートID", "ユーザー名", "@ID", "ツイート内容", })); int rank = 1; collectedTweets.ForEach(t => { writer.WriteLine(string.Join(Separator, new[] { rank.ToString(), t.TweetedAt.ToString("yyyy-MM-dd HH:mm:ss.fff"), t.Id.ToString(), t.UserName, t.FormatedUserScreenName, t.EscapedText, })); rank++; }); }
private void ReportTweetReport() { Tweet?lastBossTweet = GetLastBossTweet(); string path = RemoveInvalidPathChars(MacroExpander.ExpandAll(config.FuhaReports.TweetReportFilePath)); using var writer = new StreamWriter(path, false, reportFileEncoidng); writer.WriteLine("本日のフハツイランキング"); if (lastBossTweet == null) { writer.WriteLine(); writer.WriteLine("ラスボスのツイートが見つからなかった為、集計できませんでした"); return; } bool isFlyingStart = true; int rank = -1; // -1: フライングツイート, 1以降: ツイート順位 collectedTweets.ForEach(t => { // ラスボスアカウントのツイートになったタイミングから順位付け開始 // それより前はフライング扱い if (t.UserScreenName == config.RankingCollection.RankingBaseId) { isFlyingStart = false; rank = 1; return; } var tweet = new FuhaTweet(t, lastBossTweet, rank); writer.WriteLine($"[{tweet.DifferenceFromLastBossTweetFlag}{tweet.DifferenceFromLastBossTweet:mm\\:ss\\.fff}]{tweet.DisplayRank}: {t.UserName}"); if (!isFlyingStart) { rank++; } }); writer.WriteLine(); writer.Write($"[ ]内はラスボスのフリージオがツイートした時間({lastBossTweet.TweetedAt:HH:mm:ss.fff})からの差"); }