Open3
buku と連携するGUIを作りたい
はじめに
スクラップを作るに至った背景たち。
bukuとは
ブックマークコレクター界隈では有名なもののようで、
自分もとりあえず突っ込みまくっている。
ブックマーク数万ぐらい入っていて、もう何が何だか。
読める気配はないし、もう読む気もない。
だが、さらに増えていく。これはもう病的。
いつかキーワードで検索して使う日が来るかも。。。
どこが便利
CLIで愚直にブックマークの管理ができることは前提として、
追加するときにページタイトルを取得してくれるのがありがたい。
検索するときにすごいやりやすくなる。
やりたいこと
bukuは基本的にCLIでの利用を想定したもので、docsもCLI向けのもののみ。
APIを通して外からゴリゴリいじることは想定されてないっぽい。
だが、同梱のbukuserverはflaskでREST API 連携ができるようなので、調べながらいい感じのGUIで見れるようになりたい。
bukuserver の API 拝見
bukuserver で flask routes してみた。
03:51:07 ❯ FLASK_APP=server.py flask routes
Endpoint Methods Rule
--------------------- ----------------- ------------------------------------------------
admin.index GET /
admin.search POST /
admin.static GET /static/admin/<path:filename>
bookmark.action_view POST /bookmark/action/
bookmark.ajax_lookup GET /bookmark/ajax/lookup/
bookmark.ajax_update POST /bookmark/ajax/update/
bookmark.create_view GET, POST /bookmark/new/
bookmark.delete_view POST /bookmark/delete/
bookmark.details_view GET /bookmark/details/
bookmark.edit_view GET, POST /bookmark/edit/
bookmark.export GET /bookmark/export/<export_type>/
bookmark.index_view GET /bookmark/
bookmark_api DELETE, GET, POST /api/bookmarks
bookmark_api DELETE, GET, PUT /api/bookmarks/<int:rec_id>
bookmark_range_api DELETE, GET, PUT /api/bookmarks/<int:starting_id>/<int:ending_id>
bookmark_search_api DELETE, GET /api/bookmarks/search
bookmarklet GET /bookmarklet
bootstrap.static GET /static/bootstrap/<path:filename>
flask-api.static GET /flask-api/static/<path:filename>
get_tiny_url GET /api/bookmarks/<int:rec_id>/tiny
network_handle POST /api/network_handle
refresh_bookmark POST /api/bookmarks/refresh
refresh_bookmark POST /api/bookmarks/<int:rec_id>/refresh
static GET /static/<path:filename>
statistic.index GET, POST /statistic/
tag.action_view POST /tag/action/
tag.ajax_lookup GET /tag/ajax/lookup/
tag.ajax_update POST /tag/ajax/update/
tag.create_view GET, POST /tag/new/
tag.delete_view POST /tag/delete/
tag.details_view GET /tag/details/
tag.edit_view GET, POST /tag/edit/
tag.export GET /tag/export/<export_type>/
tag.index_view GET /tag/
tag_api GET /api/tags
tag_api GET, PUT /api/tags/<tag>
手始めに、add するところから始めたい。
手元に未追加の2000ほどのブックマークがある(白目
まず重要なのは、/api/bookmarks/ の POSTだろうな。
bukuに REST API で add する
例のごとく、bukuserverを経由させる。
curl -X POST -skSL http://localhost:5001/api/bookmarks -d "title=test" -d "url=url"
なんのこたぁなかった。
通常のREST APIの通り、data として渡してあげるだけで通った。
やりやすそうだ。
curl -X POST -skSL http://localhost:5001/api/bookmarks -d "url=https://google.co.jp"
urlのみでも通るし、その場合タイトルは解決してくれる。
やってほしい動きをやってくれていると感じる。
作成者以外のコメントは許可されていません