iOSショートカットを使ってiCloud上に置いたtsv/csvにレコードを追加する

background

2023年から今日に至るまで、Notionで映画鑑賞ログを記録していた。具体的には、Notionを開いてカタカタとログを記入するのではなく、iOSショートカットを使って対話形式でポチポチ入力し、notionAPI経由でnotionDBに書き込むという、(個人的には)めちゃくちゃ便利な使い方をしていた。映画を観終わったあとに、スマホを開いてアイコンをタップするだけで一連のログを送れるという利便性は他で代替することは難しく、Obsidian狂である僕が唯一Notionを捨てられない理由となっていた。

が、今回_debrisを開発したことがきっかけで、色々と視野が開けてきたので、思い切ってチャレンジしてみた。

overview

  • iCloud上に保存されているtsvに対してiOSショートカットから書き込みを行うようにする
    • tsvが個人的に熱いのでDBにtsvを採用しているが、別にcsvでもよい
      • 映画タイトルに,が含まれるものがあるかもしれないので、その点懸念事項
    • 前提としてiOSショートカットはクソでカス
      • 死ぬほど記述しづらい
        • 微妙な日本語で各アクションが定義されているので「思ってたのと違うじゃん」がかなりある
      • 死ぬほど操作しづらい
        • Scratch1のようにビジュアルプログラミングでやりたいことを記述していくんだけど、画面を下にスクロールしたいのにブロックにタッチ判定が入ってしまい並び順が変わってしまうみたいな誤操作をしょっちゅう誘発する
  • iOSショートカットだけでは(僕は)やりたいことが実現できなかった
    • iOSショートカットの思想なのか、削除系操作を一切許容してくれない
    • iOSショートカットで出来ることを大幅に拡張するActions2が必要
      • 神アプリ
      • 余談ではあるがiPhoneのアクションボタンを最大限活用したい場合、本アプリがあると出来ることの幅が広がる
  • 映画ログを1レコードにする部分は既にショートカットで構築済み
  • あとはiCloudに保存されているtsvを読み込み、ヘッダーを削除し、レコードを先頭に書き込み、さらにヘッダーを先頭に書き込んで保存するだけ
    • それだけのことを実現するのに2日かかった

specifications

スクリーンショットを貼ることしかできない僕をお許しください。

映画ログの部分は割愛するとして、ポイントは次の通り。

Actionsの[Filter List]でtsvヘッダー部分を削除

[Keep] items in [List] that [contains] [Text]

上記のものがデフォルトなので、

  • [Keep][Remove]に変更
  • [List]に、読み込んだtsvを割り当てる
    • 厳密にはtsvを改行位置で分割したlistを作成し、そのlistを格納した変数を割り当てる
  • [contains][matches regex](正規表現)に変更
  • [Text]^Title\tを追加
    • tsvヘッダーの最初の単語("Title")を拾うようにしている

入力端末であるiPhoneのiCloud該当フォルダ設定を変える

  • ファイル > icloud > 該当フォルダがあるディレクトリを開く
  • 該当フォルダをロングタップし、表示される設定にあるダウンロード済みを保持を有効にしておく
    • これを有効にしておかないとiphone側がキャッシュしている古いファイル内容を元に上書き処理が走ってしまう
      • つまり、巻き戻る
      • 終わりの始まり
    • Mac側で該当tsvを編集した場合は念のためiphoneで一度tsv開いて最新状態になったことを確認した方がよい

GPT曰く、

ショートカットの最初に追加👇

1. ファイルを取得
2. クイックルック
3. 0.5秒くらい待つ(待機 アクション)

👉 これで
iCloudから最新版を強制ロードさせられることが多い。地味だけど効く。

とのこと。
僕の場合は映画鑑賞ログについてはMac側では編集しないので、ショートカットに安全策は追加しなかった。

memo

  • スマートフォン(iPhone)は日常的に常時持ち歩いている入力デバイスなので活用しない手はない
    • 今回は映画鑑賞ログだったが、色々と応用は利きそう
      • 筋トレログやローカルツイート等
  • 無事、脱notionが実現できそう
    • 本サイトに映画鑑賞ログを移行した
      • ローカルファイルなのでデプロイが必要だが、大した手間ではないので許容範囲
  1. Scratch - Imagine, Program, Share
  2. Actions — Sindre Sorhus
related* created updated category
latest* created updated category