Lyne

スクエアエニックスが運営するドラゴンクエスト10のメンバーズサイト「冒険者の広場」をスクレイピングするgemです.

install

内部でphantomjsを使ってスクレイピングするためinstallしてください.

http://phantomjs.org/download.html

# osx
$ brew update && brew install phantomjs

use

$ gem install lyne
gem 'lyne'

optionで渡すcharacter_idはキャラクター選択画面の「このキャラを選択」ボタンのrel属性の値になります。

character_id

require 'lyne'

dqx = Lyne::Account.new(
  account:      'account_name',
  password:     'account_password',
  character_id: 975829418411224
)

chara = dqx.character

Info Class

info = chara.info
info.id   #=> "TV327-610"
info.name #=> "ソプラナ"
# フレンド申請おk
# id name job tribe level next_level gold genki_charge

> info.show_table

+---------+--------+--------------+------+------+--------------+----------+------------+
|ID       |名前    |職業          |種族  |レベル|次のレベルまで|所持金    |元気チャージ|
+---------+--------+--------------+------+------+--------------+----------+------------+
|TV327-610|ソプラナ|バトルマスター|エルフ|80    |              |2,340,609G|209時間     |
+---------+--------+--------------+------+------+--------------+----------+------------+

House Class

house = chara.house
house.city         #=> "アズラン住宅村"
house.area         #=> "おごそかな林道地区"
house.house_number #=> "3849丁目 6番地 (Sサイズ)"
# 遊びにきておk
# city area house_number setting setting_type

> house.show_table

+--------------+------------------+-------------------------+----------------------+------------------------+
|町            |地区              |番地                     |ウェルカム設定        |設定内容                |
+--------------+------------------+-------------------------+----------------------+------------------------+
|アズラン住宅村|おごそかな林道地区|3849丁目6番地(Sサイズ)|ウェルカムハウス設定中|インテリアじまん・その他|
+--------------+------------------+-------------------------+----------------------+------------------------+

キャラチェンジ

chara = dqx.character
chara.change('122233333444') #=> character_idを指定

test

$ cp spec/account.yaml.example spec/account.yaml
# spec/account.yaml
account:
  name:         account_name
  password:     account_password
  character_id: 975829418411224
$ rspec spec/character/info_spec.rb