日刊記録sheetから統計をとる
データの収集
試しに、今日のsheetのタスクを抽出してみる
code:test.ts
import { parseLines } from "../takker99%2Ftakker-scheduler/deps.ts";
import { toTitle } from "../takker99%2Ftakker-scheduler/diary.ts";
import { getPage } from "../scrapbox-userscript-std/rest.ts";
const result = await getPage("takker-memex", toTitle(new Date()));
if (result.ok) {
console.debug(result.value.lines);
.filter((block) => typeof block !== "string")
console.debug(blocks);
}
できたできた
1年分のデータから、「すいみん」だけ取り出す
code:test2.ts
import { parseLines, TaskBlock } from "../takker99%2Ftakker-scheduler/deps.ts";
import { isDiaryPage } from "../takker99%2Ftakker-scheduler/diary.ts";
import { exportPages } from "../scrapbox-userscript-std/rest.ts";
const result = await exportPages("takker-memex", { metadata: false });
if (result.ok) {
const blocks: TaskBlock[] = [];
for (const page of result.value.pages) {
if (!isDiaryPage(page.title)) continue;
for (const block of parseLines(page.lines.slice(1))) {
if (typeof block === "string") continue;
if (block.title.trim() !== "すいみん") continue;
blocks.push(block);
}
}
console.debug(blocks);
}
睡眠データを出力する
code:test3.ts
import { parseLines, TaskBlock } from "../takker99%2Ftakker-scheduler/deps.ts";
import { isDiaryPage } from "../takker99%2Ftakker-scheduler/diary.ts";
import { exportPages } from "../scrapbox-userscript-std/rest.ts";
import Parser from "../papaparse/mod.ts";
await (async () => {
const result = await exportPages("takker-memex", { metadata: false });
if (!result.ok) return;
const blocks: TaskBlock[] = [];
for (const page of result.value.pages) {
if (!isDiaryPage(page.title)) continue;
for (const block of parseLines(page.lines.slice(1))) {
if (typeof block === "string") continue;
if (block.title.trim() !== "すいみん") continue;
blocks.push(block);
}
}
// csvデータを作る
const csv = Parser.unparse(blocks.flatMap(({ title, record }) => {
if(!record.start || !record.end) return [];
return Math.round(record.start.getTime() / 1000), Math.round(record.end.getTime() /1000);
}));
console.debug(csv);
})();
グラフの種類から「ヒストグラム」を選んだだけ
https://docs.google.com/spreadsheets/d/e/2PACX-1vTdKEJegKf8zbtoUT2tGUqtVJHfAuuvSpv4To0FK0N-QHK7_i7qTKrlcWh1NG0bGZm4sr0_41Y_oCo7/pubchart?oid=2005583125&format=image#.png