Web Analytics Made Easy -
StatCounter

めモらンだム・ヤード

自分用のアプリ設定やスクリプト類の備忘録・覚え書き(Memorandum) / 作った物のライセンスはCC BY-NC-SAで。 / 内容が古いまま、間違ったまま、書いている途中、途中で放置など、手入れはあまり行き届いていない庭 / 対象の仕様変更で動かなくなったもの多々。WorkFlowy向けは全滅したので削除 / 製作物のインストール及び使用は各自の責任で。使用によって、利用者および第三者に損害が発生したとしても、当方は一切責任を負いかねます

DraftsからDynalistへ、階層構造のある複数のアイテムを送信するDraftsアクション(2022-01-10)


最近の、単一アイテム送信アクション使用上の問題点

これまで、Dynalistにアイテムを一つだけ送信するアクションやショートカットを作って使ってきた。

しかしモバイル通信で特に節約モードにしていると、何度送信してもDynalist上に反映されないという問題が特に最近発生するようになった。

このような状況では、メモを書いた都度送信する使いかたよりも、Draftsにメモをまとめて記入しておき、通信環境が安定したところに移ってからまとめて送信する使いかたの方が向いている。

そのような使い方ができるアクションを作ってみた。


使用例

Dynalistの「Destination A」アイテムに、

このDraftを送信してみる。

アクションを起動すると宛先を聞いてくるので選ぶ。 ここでは、Destination Aを選んだ。

送信された結果。Dynalistでアイテム「Destination A」にズームインしてみた。


初期設定

アクセストークンの登録

このアクションを初めて実行すると、Dynalistのアクセストークンの入力を求められるので入力する。

アクセストークンは、Dynalistの開発者ページから取得できる。


宛先アイテムの設定

inbox以外に、あらかじめ登録しておいたアイテムにも送信できる。

このアクションを初めて起動すると、iCloud DriveDraftsフォルダにDynalistMultiNestBulkSendというフォルダが作られ、そこにdestinations.txtというファイルが作成される。

そのファイルに、宛先のアイテムリンクを、1行につき一個追記する。

より詳細な説明はこちら

アイテム「Destination A」と「Destination B」を宛先として登録してみる。
Destination Aにキャレット(文字カーソル)を置き、下の「Copy Item link」ボタンをタップ。
クリップボードにこのアイテムのリンクがコピーされる。
ファイルアプリで、 iCloud DriveDrafts/DynalistMultiNestBulkSend/destinations.txt(拡張子「.txt」は表示されない)を長押しして、「共有」。
Draftsを選ぶ。
ファイルの内容が表示されるので、「Open」ボタンをタップ。
Draftsアプリが立ち上がるので、先ほどコピーしたアイテムリンクをペーストする。( この例では、Destination AとDestination Bの2つのリンクを書き足した)
「Save to Files」アクションボタンをタップ。
iCloud DriveDrafts/DynalistMultiNestBulkSendで、ファイル名が「destinations」になっていることを確認してから「保存」。
「置き換え」を選ぶ。 iOSのバグか?、古い方のファイルも残ってしまうが構わない。


書式

フリック入力で、なるべく「かな面」で打てる文字だけで書き表せるようにした。
(「アルファベット面」や「数字面」にいちいちシフトするのは煩わしいので。)










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ダイアグラムの記法

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個よりまだこちらの方がメモ・記録用途に向きそう。

©︎ 2022 Sorashima