Read It Lator拡張 †概要 †アドベントカレンダー9日目。そろそろ手の込んだコードを増やしていこうかな。とか。 なんか最近みんなRead It Lator対応しててうらやましいので今日はRead It Lator拡張でも作ってみます。 スクリプト †var endPoint = "https://readitlaterlist.com/v2/add"; var userName = ""; // ユーザ名 var password = ""; // パスワード var apiKey = ""; // APIキー System.addContextMenuHandler('Read it Later', 3, function(id, url){ var resp = Http.sendRequest(url, false); var title = url; if(resp.body.match(/<title>.*?<\/title>/)){ title = RegExp.$1; } var apiUrl = endPoint + "?username=" + userName + "&password=" + password + "&apikey=" + apiKey + "&url=" + encodeURI(url) + "&title=" + title; Http.sendRequest(apiUrl, false); System.showNotice('Added to Read it Later'); }); 解説 †右クリックメニューに'Read it Lator'という項目が追加されます。その中にURLが展開されているので好きなのをつついてRead it Latorするといいと思います。 このスクリプトにはRead it Latorのアカウントが必要なのはもちろんのこと、Read It LatorのAPIキーも必要です。Read It Latorのアプリ登録ページ*1からAPIキーを申請してください。すぐに作ってくれます。 これらの情報をスクリプトの先頭付近に記入して各自使ってください。 addContextMenuHandler?でコンテキストメニューを追加しています。第2引数に3を指定することで、URLを引数として取れるようになります。 引数で受け取ったURLをリクエストし、そのなかからtitleタグを正規表現で抜き出して、あとはRead It LatorのAPIエンドポイントに投げつけるだけ。そんなに複雑なことはしてません。 Http.sendRequestはURLへリクエストを送信し、その結果をオブジェクトで受け取る関数です。 この結果オブジェクトにはヘッダ情報や、ステータスコード、ボディなどが含まれているのでこの結果を使っていろいろできます。 コメントとか † |