# 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