コード解説
実行スクリプト
まず、端末から実行されるスクリプトの紹介です。
メインスクリプトです。口座情報を取得する際、このスクリプトを実行してください。
このスクリプトの冒頭には、関数の一覧を格納するための配列が定義されており、あとから読み込むファイルに記述されている関数名がそこに追加されていきます。この仕組みによって、口座ごとの関数をプラグイン的に追加する仕組みを実現しています。
その後、ユーザーから入力されたパスワードファイルを復号化し、それを口座情報取得関数に渡して実行結果を得るのがこのスクリプトの役割です。
パスワードファイル作成のためのスクリプトです。
メインスクリプトと同じ仕組みで、口座別関数の名前を取得し、それを呼び出して動きます。
また対応する口座のパスワード取得関数が定義されていなかった場合は、デフォルトのパスワードファイル作成関数を呼び出します。
作成されたパスワードは、opensslの仕組みを使って「aes-256-cbc」モードで暗号化され、カレントディレクトリの「account_passwd」ファイルに保存されます。
ライブラリスクリプト
以下に紹介するのは、上の2つのスクリプトから呼び出されるクラス定義と関数定義のスクリプトです。
このスクリプトは、自作スクリプトを読み込ませるだけのスクリプトです。
これが別に作ってあるのは、上の2つのスクリプトが口座情報取得関数がかかれたスクリプトを読み込んだ順番に、関数名を配列に登録していくため、スクリプトの読み込み順を管理する必要があるからです。
追加口座のスクリプトを作った場合は、このファイルの最後に追加スクリプトの読み込みを追加します。
この一連のスクリプトで使う共通のメソッドを定義したものです。
・Stringsクラスに、opensslを使った暗号・復号の仕組みを追加
・Arrayクラスに、2次元配列を表示させるメソッド(print_table)を追加
・ブラウザから取得したテーブル情報を2次元配列に格納する関数(store_table)
・
makepasswdfile.rbで使うデフォルトのパスワードファイル作成の関数
が定義されています。
このスクリプトが当初から対応していた6つの口座のログイン(login)、情報取得(get)、パスワードファイル作成(make_account)、書式(format)の関数が定義されています。ファイルが長くなったので、書式関数を
lib_a_format.rbで定義し、そのほかを
lib_a_defaultに定義しています。
三井住友VISAカードの口座へのログイン、情報取得、パスワードファイル作成、書式の関数を定義したファイルです。このスクリプトは、上の6つの口座用にスクリプトを完成させたあとに追加で作成したもので、スクリプト全体のプラグインのように働くようになっています。
追加スクリプトを作成した場合は、このスクリプトのように
get_a_info.rbと同じディレクトリに置き、
lib_a_require.rbに「require 'ファイル名'」と追記すれば使えるようになっています。
おまけ
このスクリプトに必要なファイルは以上です。さらに、スクリプトを追加する際、便利なように以下のファイルを追加で収録しています。
アカウント追加を行う際のテンプレートとなるスクリプトです。
どのような動きになるかを見たい場合は、
lib_a_requireにある、「# require '
lib_a_dummy'」のコメントアウトを外して(#を削除)、最初の2つを実行して確認してください。
中身は、関数名以外、UFJ口座用の関数とほぼ同内容になっています。
これは完結したスクリプトではありません。
irbを使って、動作確認する際、必要な変数やライブラリを読み込ませるのを楽にするためのファイルです。
ここに書かれた内容を、irbを実行している端末にコピペして、まとめて実行させる時に使ってください。
スクリプトの紹介は以上です。個々の機能については、リンク先からスクリプトに書いてあるコメントも読んでみてください。
最終更新:2009年12月01日 22:14