小技チョコレート

ちょっとした小技を紹介するだけのブログです。

コマンドプロンプトからDynalistのInboxへ記入するPythonスクリプト

コマンドプロンプトに入力したテキストをDynalistのInboxへ記入するPythonスクリプトを作ったので、コードと使い方を書いておきます。


〈目次〉


機能

必要なもの

Pythonを実行できる必要があります。

複数項目を記入できるタイプ

設定の手順

Dynalistにログインしたうえで、Developer - Dynalistをウェブブラウザで開き、“Your API secret token is: ”の下に表示されている長い文字列をコピーします(下記の画像でボカしている部分です)。*2

f:id:ichbin:20190804143052p:plain

テキストエディタで新しいファイルを作り、下記のコードを記入します。

import sys
import json
import requests

lines = sys.stdin.readlines()

for i, line in enumerate(reversed(lines)):
    line = line.strip("\n")
    dict={'token':'YOUR_SECRET_TOKEN',
    'index':'0',
    'content':line
    }
    response = requests.post('https://dynalist.io/api/v1/inbox/add', json.dumps(dict), headers={'Content-Type': 'application/json'})
    print (response.text)

9行目のYOUR_SECRET_TOKENのところに、上述のコピーした長い文字列をペーストします。

10行目のindexの値はデフォルトで0としていますが、ここには0または-1を入力できます。
0にすると、Terminalに入力したテキストはInboxの先頭の行に記入されます。-1にすると、Inboxの末尾の行に記入されます。
ここでの位置指定は、Dynalistの設定画面での位置指定よりも優先します。

記入し終えたら、このファイルを適当なフォルダに保存します。ファイル名はdynalist.pyのように拡張子を.pyとします。

使い方

Terminalで、上掲のdynalist.pyを保存したフォルダに移動し、python dynalist.pyと実行。

f:id:ichbin:20190804143320p:plain

下の行にカーソルが移るので、Dynalistに記入したい内容を入力します。Enterキーを押すと次の行に移ります。

f:id:ichbin:20190804194532p:plain

最後の行(この例では3行目)に入力し終わったら、改行してからControl+dのキーを押します。Dynalistへの記入が行われます。

Dynalistへの記入が正しく行われれば、{"_code":"Ok","node_id":"**********","index":0}というメッセージが、行数と同じ回数表示されます。これで完了です。

f:id:ichbin:20190804194942p:plain

Dynalistを開くと、このように記入されています。

f:id:ichbin:20190804194652p:plain

1項目(1行)のみ記入できるタイプ

設定の手順

Dynalistにログインしたうえで、Developer - Dynalistをウェブブラウザで開き、“Your API secret token is: ”の下に表示されている長い文字列をコピーします(下記の画像でボカしている部分です)。*3

f:id:ichbin:20190804143052p:plain

テキストエディタで新しいファイルを作り、下記のコードを記入します。

import json
import requests

content=input('>>')
 
dict = {
    'token'  :  'YOUR_SCERET_TOKEN',
    'index'  :  '0',
    'content'  :  content
}

response = requests.post('https://dynalist.io/api/v1/inbox/add', json.dumps(dict), headers={'Content-Type': 'application/json'})

print (response.text)

7行目のYOUR_SECRET_TOKENのところに、上述のコピーした長い文字列をペーストします。

8行目のindexの値はデフォルトで0としていますが、ここには0または-1を入力できます。
0にすると、Terminalに入力したテキストはInboxの先頭の行に記入されます。-1にすると、Inboxの末尾の行に記入されます。
ここでの位置指定は、Dynalistの設定画面での位置指定よりも優先します。

記入し終えたら、このファイルを適当なフォルダに保存します。ファイル名はdynalist.pyのように拡張子を.pyとします。

使い方

Terminalで、上掲のdynalist.pyを保存したフォルダに移動し、python dynalist.pyと実行。

f:id:ichbin:20190804143320p:plain

下の行に>>という記号が表示されるので、そこに続けて、Dynalistに記入したい内容を入力し、Enterキーを押します。

f:id:ichbin:20190804143346p:plain

Dynalistへの記入が正しく行われれば、{"_code":"Ok","node_id":"**********","index":0}というメッセージが表示されます。これで完了です。

f:id:ichbin:20190804143401p:plain

Dynalistを開くと、このように記入されています。

f:id:ichbin:20190804143415p:plain

GUIバージョン

別記事にGUIバージョンもあります。

オプション

入力時にIMEを自動でオンにする(Windowsのみ)

コマンドプロンプトpip install pywinautoと実行して、Pythonのモジュールであるpywinautoをインストールしたうえで、上掲のスクリプトimport requestsの次の行に下記の2行を付け加えます。

import pywinauto
pywinauto.keyboard.send_keys('{VK_KANJI}') #IMEをオンにする

コマンドプロンプトの画面が自動で閉じるのを防ぐ

上掲の{"_code":"Ok","node_id":"**********","index":0}というメッセージが出たか出ていないかをきちんと読む前にコマンドプロンプトの画面が閉じてしまうのを防ぎたい場合は、スクリプトの最後にinput()という行を記入するとよいと思います。これを記入していれば、Enterキーを押すまでは画面が閉じません。

資料

上掲のスクリプトは、こちらに示されている仕様に従って作りました。

*1:Inboxの位置を決める方法についてはこちらをご参照ください。

*2:この文字列を、他人が読める状態にしてはいけません。ですので、この文字列を書き込んだファイルも、他人が読める状態にするべきではありません。

*3:この文字列を、他人が読める状態にしてはいけません。ですので、この文字列を書き込んだファイルも、他人が読める状態にするべきではありません。