null部の部誌

プログラミングの話とか色々。

東京大学OPACのChrome拡張機能を作った(使い方編)※アプデ推奨

はじめに

あなたが東京大学OPACにアカウントを持っていない,かつ持つ予定もない場合はこの記事は役に立ちません。

拡張機能 UT-BetterOPAC

作ったよ!リンクはこちら!

ってしたいところなんですが,Googleに5ドル払うのが面倒(クレカを自由に使えない身分)なので,まだChromeストアで公開はしていません。待ちきれない人はGitHub Releasesに置いておいたので,ut-betteropac-v1.0.1b.crxをダウンロードして使ってください。 github.com

GitHub ReleasesのAtomフィードがあるので使いたい人はどうぞ。

無事Chromeストアに公開されたらまた更新します。

version 1.0bには5分おきにログイン用のタブが増えていくというバグがありました。version 1.0b をインストールした方は,拡張機能を無効化するか,上のリンクからversion 1.0.1bをインストールしてください。
やっぱりChromeストアに置いておかないと,更新が通知されないので良くないですね。早めのリリースを目指します。

機能

大雑把には以下の3つです。

  • 自動ログイン
  • 借りた本を自動延長
  • お気に入りの本の在架状況確認

自動ログイン

手動でログインするときは「OPACのログインボタンをクリック→UTokyo Accountのログイン画面になる→ブラウザがパスワードを自動入力→送信ボタンをクリック→OPACの画面に戻る」という流れなので,これを自動化するスクリプトを書きました。定期的にログイン画面をバックグラウンドで開いて,自動でボタンポチポチをして,終わったら自動でタブを閉じるようにしています。

が,どうもブラウザの自動入力はユーザが画面を開かないとやってくれないらしく,タブがバックグラウンドにいる間は空欄のままっぽいです。かといって勝手にアクティブタブを変えるのは迷惑極まりないので,手動でログイン画面のタブをアクティブにしないとログインできない状況…。なんとか改善できたらします。

なお,一度OPACにログインすれば,スリープやネットワーク切断などがない限り,OPACを閉じていてもログイン状態を保ちます(上の不具合が修正されなくても)。

借りた本を自動延長

返却期限がn日前に迫っている本を自動で貸出延長してくれます。デフォルトでは3日前ですが,拡張機能のページから開けるオプション画面で変更することができます。

お気に入りの本の在架状況確認

これ推し機能です。使って。

MyOPACでは,ユーザーが所属するキャンパスが管理し,かつ在架である図書を予約することができません。じゃあ,「後で借りる」をどう管理すれば良いのか。すぐ借りても良いけれど,10冊が上限だし,すぐに図書館に行けるとは限らない。そこでMyOPACのブックマークです。OPACの詳細画面の右カラムには,その本をMyOPACのブックマークに登録できるボタンがひっそり存在しているんです。

これで読みたい本を管理できます。ここまでは標準MyOPACの機能です。

このChrome拡張機能には,ブックマークに登録された本が指定した図書館に在架かどうか表示できる機能があります。プルダウンメニューから図書館を選択すると,下図のようにその図書館で在架の図書が緑色にハイライトされます。 f:id:pizzacat83:20180818221959p:plain

この画面へのリンクは,MyOPACサービスのプルダウンメニューにちゃっかり入れています。 f:id:pizzacat83:20180818214234p:plain

なお,お気に入り登録した本を削除する機能は未実装なので,実装されるまではMyOPACのブックマーク一覧から編集してください。

スマホ向けブックマークレット

以下,ブラウザのブックマークとMyOPACのブックマークが錯綜するので,冗長ですがいちいち書きます。「お気に入り」は全てMyOPACのものを指し,ブックマークレットはもちろんブラウザのものを指します。

Chrome拡張機能は当然スマートフォンChromeでは使えないので,ブックマークレットを作りました。 スマホ版ではMyOPACのブックマークに登録できないので,それのブックマークレットと,あとお気に入り一覧の画面を出すブックマークレットです。

本当はリンクにしてD&Dで登録できるようにしたかったんですが,なんか色々うまくいかないのでコード貼っときます。

これをスマホのブラウザのブックマークに登録してください(詳しくはググって)。スマホで登録するのはつらいので,パソコン側で登録して同期するのが賢いです。

お気に入り登録のブックマークレットは,OPACの詳細画面(例えば情報 : 東京大学教養学部テキスト / 山口和紀編)でブックマークレットをポチることで登録できます。MyOPACにログインしていないと登録できないので,ご注意ください。

お気に入り一覧のブックマークレットは,MyOPACにログインした状態でOPACのトップページでポチった場合の動作確認をしています。それ以外でうまく作動するかはわかりません。また,パソコン版とスマホ版でOPACのHTMLが若干違っているので,パソコン版のOPACを開いた状態ではうまく情報を取得できません。 読み込みが結構遅いので,表示まで時間がかかりますが,しばらく待つとこんな画面になります。再読み込みで消えるので,その際はまたブックマークレットをポチってください。

両方ともブックマークレットなので,Chrome以外のブラウザでもひょっとしたら動くかもしれません。自己責任で。

今後の展望

非同期処理をほとんどしていないので劇遅なのをなんとかするのと,気が向いたら他の機能も作ってみたいなーっていう感じです。

  • シリーズ予約
  • 予約の予約
  • この本を生協で買うボタン
  • ポップアップ画面の活用
  • お気に入り編集機能
  • お気に入りに既読状況を表示

不具合・要望

あったらTwitterとかGitHubのIssuesとかLINEとかSlackとか適当な連絡手段で教えてください。既知の不具合はGiuHubのIssuesで管理するつもりです。