最近の、単一アイテム送信アクション使用上の問題点
これまで、Dynalistにアイテムを一つだけ送信するアクションやショートカットを作って使ってきた。
しかしモバイル通信で特に節約モードにしていると、何度送信してもDynalist上に反映されないという問題が特に最近発生するようになった。
このような状況では、メモを書いた都度送信する使いかたよりも、Draftsにメモをまとめて記入しておき、通信環境が安定したところに移ってからまとめて送信する使いかたの方が向いている。
そのような使い方ができるアクションを作ってみた。
使用例
初期設定
アクセストークンの登録
このアクションを初めて実行すると、Dynalistのアクセストークンの入力を求められるので入力する。
アクセストークンは、Dynalistの開発者ページから取得できる。
宛先アイテムの設定
inbox以外に、あらかじめ登録しておいたアイテムにも送信できる。
このアクションを初めて起動すると、iCloud DriveのDraftsフォルダにDynalistMultiNestBulkSendというフォルダが作られ、そこにdestinations.txtというファイルが作成される。
そのファイルに、宛先のアイテムリンクを、1行につき一個追記する。
より詳細な説明はこちら
書式
フリック入力で、なるべく「かな面」で打てる文字だけで書き表せるようにした。
(「アルファベット面」や「数字面」にいちいちシフトするのは煩わしいので。)
Draftsアクション
https://actions.getdrafts.com/a/1sq
制限事項
このアクションが使っているDynalistのAPIには、
レート制限ポリシー
このAPIには、1分間に60回の安定した速度でアクセスでき、一度に20件のリクエストがバーストします。 動作の詳細については、レート制限のセクションを参照してください。
上記のレート制限は、リクエスト数に対するものです。 送信できる変更の数には、別のレート制限があります。 500回の変更のバーストで、1分あたり240回の変更の安定した速度で変更を送信できます。
https://apidocs.dynalist.io/#rate-limit-policy-5
という制限がある。
このアクションは同じ階層のアイテムをまとめて送るので、20階層を超えるアウトライン構造を一度に送るようなアブノーマルな使い方をしなければ上の制限には引っかからないだろうが、たとい一階層だけの構造であっても、一度に500を超えるアイテムを送ったりすると、下の制限に引っかかってエラーになるかもしれない。
変更履歴
2022-01-10
複数のアイテムが挿入される位置を、宛先アイテムの先頭(Top)と末尾(End)から選択できるようにした。
2021-12-03
初版
2022-06-26 うまく動かなくなっている可能性
現在はDynalistを使っておらず、このアクションも使っていない。
このアクションスクリプトを作った時点のAPIでは、データは渡した順番とは逆に並べられる。そこで、本来の順番とは逆に並び替えてからAPIに渡している。
しかし、Dynalistのフォーラムで「APIの動きが逆だ」という投稿を見つけた。
Multiple move actions with index -1 get stored in reverse order - ⚙Developers - Dynalist Forum
後方互換の無い変更をされていたら動きに齟齬が生じている。
書式を決めるときに参考にしたもの
プレーンテキストで階層構造を表現するとき、参考になりそうなものに当たってみた。
DynalistのPlain Textエクスポート
をエクスポート。
testの段は必要ないので、各行の頭4文字を削除した。
インデントスタイル=Spaces
第一階層のアイテムをタイトルの途中で 改行する。 そのノート。 ノートはプレーンテキストなので、途中で 1行空けたりできる。 同じく第一階層のアイテム 第二階層のアイテム 同じく第二階層のアイテムだがタイトルの行頭に半角スペース4個 第三階層のアイテム
余分な記号が無いので入力は楽だが、ノート部分とタイトル部分の区別が付かないし、タイトルの行頭にスペース文字があるとインデントの区別も付かない。
意地悪問題のようだが、仕様が破綻していては作り様が無い。
インデントスタイル=Dashes
- 第一階層のアイテムをタイトルの途中で 改行する。 そのノート。 ノートはプレーンテキストなので、途中で 1行空けたりできる。 - 同じく第一階層のアイテム - 第二階層のアイテム - 同じく第二階層のアイテムだがタイトルの行頭に半角スペース4個 - 第三階層のアイテム
タイトルを途中で改行した時に、新しい行は行頭から始まっている。 ノート部分は常にタイトルの第一文字と同じだけ字下げされている。 この違いにより2つは区別される。
タイトルの行頭にスペース文字があってもインデントは正確に表現されている。
Markdown構文としては正しいが、 入れ子構造が一つ深くなる度にbulletの前に半角スペース4文字挿入するのは、清書用途なら構わないが、日々の記録・メモ取り用途向きではない。
PlantUMLのMindMapダイアグラムの記法
Markdown構文はタイトル部分だけでノート部分には対応していない様子なので、対応していそうなMultilinesはOrgMode構文だろうか?
@startmindmap * Class Templates **:Example 1 <code> template <typename T> class cname{ void f1()<U+003B> ... } </code> ; **:Example 2 <code> other template <typename T> class cname{ ... </code> ; @endmindmap
行頭の「*」の数でネスティングの深さを表現する。「:」と「;」でタイトルとノートを合わせたものを囲む。
入れ子構造の表現としては、半角スペース4個よりまだこちらの方がメモ・記録用途に向きそう。