Open1

飲んだ薬の量をLINEのチャットに投稿すると、集計してくれるスクリプト(js)

girafferzgirafferz

投稿

痛み止め1錠
AAA 2錠
BBB 半錠
CCC 1.5錠

などとlineに投稿する

export

LINEのchatをtxt形式でexportしてファイルを開き、ファイル全体をクリップボードにコピー

集計

以下にペーストして実行
薬名は、適宜変更する

以下をbrowserの検証ツールを開くなどして実行

const rawString = `ここにペースト`
const rawData = rawString.split("\n")

function organizeData(data) {
    const organizedData = {};
    let currentKey = '';

    for (let i = 0; i < data.length; i++) {
        const entry = data[i];

        if (entry.match(/^\d{4}\.\d{2}\.\d{2} \w+day$/)) {
            currentKey = entry;
            organizedData[currentKey] = [];
        } else if (currentKey) {
            organizedData[currentKey].push(entry);
        }
    }

    return organizedData;
}

function countOccurrences(organizedData) {
    const counts = {};

    for (const key in organizedData) {
        let count = 0;
        organizedData[key].forEach(entry => {
            const match = entry.match(/薬名.*(\d+(\.\d+)?|半)錠/);
            if (match) {
                count += match[1] === '半' ? 0.5 : parseFloat(match[1]);
            }
        });
        counts[key] = count;
    }

    return counts;
}

const organizedData = organizeData(rawData);
const counts = countOccurrences(organizedData);

console.log(counts);

結果


このように出力