renderCardHTML writes a self-contained HTML card for the stats.
(w io.Writer, s stats.Stats)
| 64 | |
| 65 | // renderCardHTML writes a self-contained HTML card for the stats. |
| 66 | func renderCardHTML(w io.Writer, s stats.Stats) error { |
| 67 | autoRuns := s.AutoRuns |
| 68 | ownerTicks := s.OwnerTicks |
| 69 | playbookRuns := s.PlaybookRuns |
| 70 | showAutomation := autoRuns+ownerTicks+playbookRuns > 0 |
| 71 | return cardTmpl.Execute(w, cardData{ |
| 72 | Window: s.Window, |
| 73 | LookupsCompact: humanCompact(int64(s.LookupsTotal)), |
| 74 | ContextTokensCompact: humanCompact(s.Savings.ContextTokens), |
| 75 | TokensProcessedCompact: humanCompact(s.Tokens.Total()), |
| 76 | TasksDone: s.TasksDone, |
| 77 | ResumeCount: s.LookupsByKind[stats.LookupResume], |
| 78 | ShowAutomation: showAutomation, |
| 79 | AutomationRuns: autoRuns + ownerTicks + playbookRuns, |
| 80 | AutoRuns: autoRuns, |
| 81 | OwnerTicks: ownerTicks, |
| 82 | PlaybookRuns: playbookRuns, |
| 83 | AutomationDollars: humanInt(int64(s.Savings.AutomationHours * s.DollarPerHour)), |
| 84 | TotalDollars: s.Savings.TotalDollars, |
| 85 | DollarPerHour: s.DollarPerHour, |
| 86 | }) |
| 87 | } |
| 88 | |
| 89 | // writeCard renders the HTML card to a file. |
| 90 | func writeCard(path string, s stats.Stats) error { |