# coding: utf-8
require 'bundler'
Bundler.require
require 'nkf'

FORM_URL    = 'https://order.yodobashi.com/ec/order/private_info/index.do'
ORDER_NO    = 'xxxxxxxxx'
TEL         = 'xxxxxxxxxxx'

CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
ACCESS_TOKEN = 'xxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
ACCESS_TOKEN_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

FORM_NAME = 'b0400X0PrivateInfoDto'
ORDER_NO_NAME = 'orderNo'
AUTH_TYPE_NAME = 'authType'
AUTH_TYPE_OPTION = '電話番号(電話番号は"-"をいれずに入力してください)'
AUTH_KEY_NAME = 'key'

CHECK_TARGET = /メーカへ手配中です/

def submit_form
  agent = Mechanize.new
  agent.get(FORM_URL)

  agent.page.form_with(name: FORM_NAME) do |form|
    form.field_with(name: ORDER_NO_NAME).value = ORDER_NO
    form.field_with(name: AUTH_TYPE_NAME) do |auth_type|
      auth_type.option_with(text: AUTH_TYPE_OPTION).select
    end
    form.field_with(name: AUTH_KEY_NAME).value = TEL
    form.click_button
  end
  NKF.nkf('-w', agent.page.body)
end

def client
  @client ||= Twitter::Client.new(
    consumer_key: CONSUMER_KEY,
    consumer_secret: CONSUMER_SECRET,
    oauth_token: ACCESS_TOKEN,
    oauth_token_secret: ACCESS_TOKEN_SECRET,
  )
end

def notify(text)
  client.direct_message_create(client.verify_credentials.screen_name, "#{ text } #{ Time.now }")
end

if submit_form.match CHECK_TARGET
  notify "まだだね"
else
  notify "きたかも"
end