Posted at

Etherpad-liteのAPIをPythonで叩く

More than 1 year has passed since last update.


はじめに

 会議の議事録を複数人で同時編集できるツールを探していたらEtherpad-liteにたどり着いた。オープンソース故に社内サーバ上で運用できるのでGoogle Docsと違って社内情報を外部に晒す危険性がない。

 参考: みんなでノートをとったりできる同時編集対応のメモツールをいくつか紹介

 しかしながら素のEtherpad-liteではPadの一覧参照などができなかったりUIがやや無骨だったりとイマイチなので、それなりに使えるものとして運用するためにはAPIを叩くWebサービスを自作する必要がある。

 まずは基本的な操作方法を習得するため、PythonからAPIを叩いてみることにした。


APIの叩き方

 Etherpad-liteのAPIをPythonで叩くためのラッパーはChangaco/python-etherpad_lite

で公開されている。

 本説明におけるフォルダ構成は以下に示すものとする。

root/

etherpad-lite/
APIKEY.txt
:
:
py_api.py

 Etherpad-liteが起動している状態で以下のようにしてAPIを叩くことができる。

 c.api_version = '1.2.13'とあるように、APIのバージョンを明示的に指示してやらないと現時点で公開されている最新のAPIの関数を実行できない。


py_api.py

from etherpad_lite import EtherpadLiteClient

f = open('./etherpad-lite/APIKEY.txt')
apikey = f.readline()
f.close()
c = EtherpadLiteClient(base_params={'apikey': apikey})
c.api_version = '1.2.13'

# padの作成
c.createPad(padID='hoge')

# pad一覧の取得
c.listAllPads()
# => {'padIDs': ['hoge']}

# padの削除
c.deletePad(padID='hoge')



DjangoでWebサービスを作ってみた

 Python Django入門 (1)を参考にしてPadの作成、一覧表示、削除が可能なWebサービスを作ってみた。

 gkmaro634/etherminutes

 2017/04/12時点では実装できなかったがPad内の全文検索、ユーザー認証などの機能拡張にもトライしたい。