!7 answer { if "visitors chart" ret makeChart(7); if (match("visitors chart *", s, m) || match("visitors chart * days", s, m)) ret makeChart(m.psi(0)); } html { ret himg(makeChart(7)); } static S makeChart(int days) { days = max(1, days); exceptionToUser { L l = toLinesFullTrim(unSlackSnippet(askSelf("visitors last " + (days+1) + " days"))); new L data; for (S line : l) { O o = safeUnstructure(line); int n = toInt(get(o, "cookies")); data.add(n); } removeLast(data); // drop today's data - it looks bad ret chartBase("Visitors last " + days + " days (= cookies)", 0, data); // base value = 0 } }