🫥

cloud functionでurlを押した際にscrapboxのページを開いて時刻をbodyに追加して分報を書けるようにするtips

2024/06/15に公開

解説

scrapboxはurlにtitleをつけると新規ページが作成できます。これを利用してcloud functionでリンクを踏むと当日の時刻の記録がされてメモが取れる分報ツールを作成しました。リンクを踏むと、Dateから現在時刻を取得してscrapboxの適切なページへリダイレクトする形になります。メモや記録を取りたいタイミングでリンクを踏むことによって打刻することができ便利です。
h\ttps://scrapbox.io/{projectName}/{title}?body={content}`

実装方法としてはcloud functionの他に静的サーバーにhtmlとjsを配布する方法でも実現することができます。

メモの様子

実装概略

@google-cloud/functions-frameworktypescriptのsetupの環境を整えます。

index.tsを作成し、以下の関数を作成します。

 import {Request, Response} from 'express'; 
 import {format} from 'date-fns';
 
 export const newScrapBox = async (req: Request, res: Response) => {
   // 現在の日付時刻を取得
   const now = new Date();
   const scrapboxProjectName = "あなたのproject nameをいれる"
   
   // +9時間して日本時間に変換
   // ここは汚いのできちんとしたい場合は変換のコードを書くこと
   const japanTime = new Date(now.getTime() + 9 * 60 * 60 * 1000);
   const formattedDate = format(japanTime, 'yyyyMMdd');
   const hashDate = format(japanTime, 'HH:mm:ss');
 
   // リダイレクト先のURLを作成
   const redirectUrl = `https://scrapbox.io/${scrapboxProjectName}/${formattedDate}?body=${hashDate}`;
 
   // リダイレクトを実行
   res.redirect(302, redirectUrl);
 };

cloud functionにデプロイします。

 gcloud functions deploy newScrapBox --trigger-http --runtime=nodejs18

Discussion