Web Analytics Made Easy -
StatCounter

メモ・備忘録(設定ファイル・スクリプト類・ブックマーク)

数年後の自分が首を捻らなくて済むようにするために残す、自分で使うためのアプリの設定やスクリプト類のメモ。改変等ご自由に / 内容が古いまま、間違ったままもあるので注意 / 書いている途中や、途中で放置もあり / 対象の仕様変更で動かなくなったもの多々。特に、WorkFlowyを対象として作ったものは全滅。

DraftsだけでDynalist上の日誌に追記したい


注) ここに書いたDynalist APIを使ったInboxへの書き込み方法は、pro版の機能「Capture to inbox」とは全くの別物で無料版でも使える。


2019-10-31

これまでDynalistにログを書くには、
sorashima.hatenablog.com
で作ったiOS/iPadOSショートカットを使ってきた。

しかし、

ディスプレイサイズが5.5インチの機種から4.7インチの機種に変更したため、ショートカットアプリの「入力を要求」アクションで入力している最中の文字が「小さすぎて、読めないっ‼」
まぁ、「読めない」は大袈裟だが、「ブ」なのか「プ」なのかハズキルーペでも使わないと区別がつかない。

上記ショートカットで入力途中に他のアプリへの切り替えを何回かしたら、入力後の処理を一切せずにいきなりショートカットが終了し、苦労して入力した内容が全て消えてしまった。*1

という問題が発覚・発生してしまった。


入力する時の文字サイズを大きくするとなると、一旦Drafts 4に入力するという方法が考えられる。
表示文字サイズの改善だけでなく、行頭や行末にジャンプ、行選択や行削除などの編集を楽にする拡張キーが使えるようにもなる。
そして何より自動保存されるから、入力していた内容が全部消えてしまう悲劇が無いという大きなメリットがある。
そして入力した後は、DynalistのInbox追記APIを叩くショートカットを、Drafts 4から呼び出してDynalistに書き込む訳だ。

ただ以前試したときは、iPhoneのスペックが貧弱だったため、ショートカットアプリを呼び出すのに時間がかかりすぎて実用にならなかった。それが、機種変更でマシンスペックが上がったおかげでようやく実用になりそうだ。

Draftsアプリの最新版は既にバージョン4ではないが、4のままで何不自由なく使えているので、4で進めようと思った。
「新版にアップグレードしたところで、ショートカットアプリも不要になるなんてことないだろうし。」と、思いながらドキュメントを調べてみると、Scriptの部分がかなり拡張されていて直接DynalistのAPIが叩けそうであることがわかった。

iOSが今後14、15、16へとアップデートしていくに連れてまた処理が重くなっていき、Draftsからショートカットを呼び出すことが遅くて実用的にならなくなる日が再度来るであろうことを考えると、そろそろ、ショートカットアプリ無しに書き込める新版Draftsへ乗り換えた方が良いのでは?
そんなことも思い始めながらDrafts 4をApp Storeで探してみたら、なんと⁈既に消えているではないか‼


というわけで、いつまでも4にしがみ付いている訳にもいかなくなりそうなので、Drafts新版のScriptアクションだけで追記できるものを作成してみた。
とりあえず動いた。

一行目がタイトル、二行目以降がノートになるという仕様は変わらないが、操作の上での変更点は、

  • タグ
  • 日付タグ
    • ショートカット版では、午前0時を過ぎて日付が変わってから書き込むときのことも考えて、1工程操作が増えるが、日付をdateピッカーで選ぶようにしていた。
      しかし、日付タグはDynalist上で日付をタップすれば簡単に変えられるので、今回は書き込みした時点の日付を書き込むようにした。
  • DynalistのSecret Token
    • ショートカット版では、他に方法が無いので仕方無しにトークンをショートカット上に直接書き込んで(=ハードコーディングして)いたが、新版DraftsにはCredentialsという認証情報を管理する仕組みがあるので、それを使って記憶させるようにした。
    • 今回作ったアクションを初めて実行すると、トークンの登録画面が表示される。二回目以降の実行では、初回に登録したトークンが読み込まれる。
    • トークンを消したいときは、Draftsの設定画面のCredentialsでDynalistの「Forget」ボタンをタップする。


作ったアクションは、 actions.getdrafts.com

Dynalist APIトークンの取得方法は、wine&roses氏の記事「TextwellからDynalistのInboxにAPI経由で転送するアクション - W&R : Jazzと読書の日々」が参考になる。


また、無料版のDynalistにGyazoの画像を添付するのに役立つ
sorashima.hatenablog.com
を書いた。


また、Gyazoの無料版は個人情報などセンシティブな画像の添付には向かないので、共有先を制限できるGoogleドライブ上の画像の添付に役立つ sorashima.hatenablog.com
を書いた。


変更点・改定

2020-02-29

スクリプトを修正:
送信失敗したときはdraftがInbox内に留まるように変更。

今日はDynalistのサーバーに不具合でもあるだろう。送信しようとしても、タイムアウトになったり、コード520(CloudflareというCDN絡み?)が返ってきて送信できない。
困ったことに送信されていなくても、アクションのAfter successの設定通りにドラフトがArchiveに移動してしまう。
調べてみたところ、context.fail()またはcontext.cancel()(→Context | Drafts Script Reference)でアクションを停止させることができ、それだとAfter successの処理はされないからdraftはInbox内に留まる。
context.fail()を各エラー処理の最後に追加した。

2020-02-07

スクリプトを修正:
DraftsとDynalist サーバー間の通信エラー時の処理の改善。

2019-11-06

スクリプトを修正:
Dynalistへのボスト成功時、都合2回通知が表示されて鬱陶しい。
成功時は通知処理を無しにして、アクション終了時に元々表示されていた通知だけが表示される様にした。

2019-11-04

ここのメモを修正:
表記を「Drafts 5」→「新版」に変えた。

Drafts 4の後続製品ではあるが、Drafts 4をアップデートする形ではなく、別アプリとしてインストールされる「Drafts」は、当初は「Drafts 5」と呼ばれていたが、バージョンアップ途中でバージョンナンバーをつける規則が変わったりなどがあり、現在、App Storeでは「Drafts」のバージョン15.2として公開されている。
(作者がTweetで「Drafts 15.2」と表しているのが余計状況を混乱させている)

「Drafts 5」ではどの製品のことを指すのか分かりづらいので「新版」と書き直した。

ちなみに、URL Schemeは未だにdrafts5://と、かつてのなごりを残している。

2019-11-03

スクリプトを改良:
Dynalistに送信完了した後にアラートを表示していたが、それだと送信の度に「Dismiss」ボタンを押す必要があり煩わしい。
失敗した時だけ「アラート」にして、成功時はボタン押しの必要の無い「通知」へと変更した。


関連

sorashima.hatenablog.com


*1:iOS 13.3ベータ1はバックグラウンド強制終了バグ修正?複数ユーザー報告 - Engadget 日本版

iOS 13.2ではSafariYouTubeExcel等でタスク切り替えから戻ると、アプリが再読込され(強制終了されて再起動している)、Webブラウザのタブや書きかけのメールが消えるとの報告が多数寄せられていました。

これが原因だったかもしれないな。