• #日記
  • #eurekapu-nuxt4
  • #Excel講座
  • #EDINET API
  • #Turso
  • #Cloudflare R2
daily-log

2026年4月9日の開発日記

Excel講座の演習移行とUI改善に大半の時間を投下し、並行してEDINET APIの財務データをTurso DBに流し込む仕組みを一から構築した。セッション12件、コミット数も二桁に届いた。

今日やったこと

1. Excel講座コンテンツ移行(eurekapu-nuxt4)

演習コンポーネント4種(ChatBox、ExcelDownloader、ExerciseRenderer、TheaterViewer exercise対応)を新規作成し、旧演習23件を変換・移行した。演習を関数チャプターから独立させてtocExcelにも登録。Part 2/3/4(わかりやすいExcelの作り方、NG集、命名ルール)もデータファイル→TOC→ページファイルまで一気に通した。

主な成果:

  • 演習Phase 1-4完了(VLOOKUP5件、INDEX-MATCH5件、総合演習4件、実務演習6件ほか)
  • SVGチャート33件を一括生成(配色ルール、数値表示のNG/Good対比など)
  • WordPressのCDN URL → Cloudflare R2に完全移行(MP4 13件、GIF 14件、SVG 35件ほか)
  • Excelショートカット講座を旧59ページ→8ページのMiller Columnに集約して独立移行
  • UIレイアウト改善多数(ChatBoxアバター統合、横並びグリッド、theater-articleモード、ブラウザ履歴連動)

詳細: Excel講座の演習移行・SVG33件一括生成・R2メディア完全移行の作業記録


2. EDINET API + Turso DB構築

EDINET APIで会計ソフトAの財務データを取得し、Turso DB(東京リージョン)に格納するPythonスクリプトを新規作成した。libsqlパッケージの選定で三転四転し、Turso CLIのインストールでもPowerShell→ZIP→WSL→Webダッシュボードと迷走した末に着地。

主な成果:

  • store_to_turso.py 新規作成、冪等なINSERT OR REPLACE方式
  • Embedded Replicaの動作検証(ローカル読み取りμs vs HTTP経由ms)
  • 全6エンドポイントからデータ取得、Chart.jsで36チャートのダッシュボードHTML生成
  • FY2022の販管費急増の原因分析(CM広告40億、M&A、無形資産の積み上がり)

詳細: EDINET APIで取得した財務データをTurso DBに格納するPythonスクリプトを構築した


今日の試行錯誤

#テーマ試したこと結果気づき
1libsqlパッケージ選定libsql-experimentallibsql-clientlibsql成功旧名→新名のリネームでprebuilt wheelが提供されていた
2Turso CLIインストールPowerShellスクリプト → ZIPダウンロード → WSL成功tursodb.exeはDB本体でCLI管理ツールではなかった。Webダッシュボードで全操作可能
3SVGのContent-TypeR2にアップロードしたSVGが表示されない成功Content-Type: image/svg+xmlを明示的に設定する必要があった。CDNキャッシュが古い値を返す問題も
4CSP設定R2画像が読み込まれない成功img-srcにR2ドメインが未登録だった。media-srcには入っていたので動画は通っていた
5theaterスクロールコンテンツが独立スクロール領域に閉じ込められる成功.theater-stageoverflowmax-heightを段階的に除去。3回やり直した
6APIキー更新.envを更新しても403が出続ける成功load_dotenv()がキャッシュした古い値を読んでいた。override=Trueで解決
7Excelショートカット講座の混同Excel基礎講座のショートカットセクションと混同して作業失敗→修正旧プロジェクトでは別URLの独立講座。別セッションに引き継いで再実施

今日の学び

  • Tursoの無料枠は500DB・9GB・月10億行読み取りで、個人プロジェクトにはかなり太い。Auth Tokenなしではアクセスできないセキュリティモデルも堅い
  • R2へのファイルアップロード時はContent-Typeを明示指定しないと、ブラウザがSVGをレンダリングしない
  • CSPのimg-srcmedia-srcは別ディレクティブなので、動画が通っても画像が通るとは限らない
  • load_dotenv()はデフォルトで既存の環境変数を上書きしない。.envを更新したらプロセス再起動が確実

関連記事