Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/ruby
- # coding: utf-8
- print "Content-type: text\n\n";
- require 'nokogiri'
- require 'mechanize'
- require 'pg'
- require 'json'
- require 'net/http'
- require 'uri'
- # your my docomo login id and password
- loginid = ""
- password = ""
- agent = Mechanize.new
- agent.user_agent_alias = 'iPhone'
- agent.follow_meta_refresh = true
- agent.redirect_ok = true
- agent.redirection_limit=10
- agent.get('https://www.mydocomo.com/dcm/dfw/web/portal/pub2/MYDPS-TR0001.do?xcid=MYD_esite_data_traffic_volume_check_from_CRP_MYD_charge') do |page|
- mypage = page.form_with(id: 'DiForm') do |form|
- form.authid = loginid
- form.authpass = password
- end.submit
- doc = Nokogiri::HTML(mypage.content.toutf8)
- pageRedirect01 = agent.get('https://payment2.smt.docomo.ne.jp/smph/charges/gkyap003.srv?Xitraffic=1')
- used = pageRedirect01.content.toutf8.gsub(/(\s)/,"").match(/当月\(.*?年.*?月\)<\/p><pclass="arrange-rboldmb_5">(.+?)GB/)
- allowedPacket = pageRedirect01.content.toutf8.gsub(/(\s)/,"").match(/<br>パケットパック:(.+?)GB<br>/)
- remainedPacket = pageRedirect01.content.toutf8.gsub(/(\s)/,"").match(/前月残りデータ量:(.+?)GB<br>/)
- today = Date.today
- dum = Date.new(2017, today.month, -1)
- enddate = Date.new(today.year, today.month, dum.mday)
- message = "";
- message += "本日:" + today.strftime("%Y/%m/%d") + "\n"
- message += "締日:" + enddate.strftime("%Y/%m/%d") + "\n"
- message += "残り:" + (enddate - today + 1).to_i.to_s + "日" + "\n"
- ave = (used[1].to_f / today.mday.to_f).round(2)
- message += "基本:" + allowedPacket[1].to_f.round(2).to_s + "GB\n"
- message += "繰越:" + remainedPacket[1].to_f.round(2).to_s + "GB\n"
- message += "使用:" + used[1] + "GB" + "\n"
- message += "残り:" + (allowedPacket[1].to_f + remainedPacket[1].to_f - used[1].to_f).to_s + "GB\n"
- message += "平均:" + ave.to_s + "GB" + "\n"
- maxDateThisMonth = dum.mday
- if ave * maxDateThisMonth > (allowedPacket[1].to_f + remainedPacket[1].to_f) then
- willOverDate = ((allowedPacket[1].to_f + remainedPacket[1].to_f) / ave + 1).to_i
- message += "このペースだと" + willOverDate.to_s + "日にオーバーします"
- else
- message += "このペースだと" + ((allowedPacket[1].to_f + remainedPacket[1].to_f) - ave * maxDateThisMonth).round(2).to_s + "GB余ります"
- end
- resultJson = JSON.generate({"message" => message})
- puts resultJson
- url = URI.parse("https://notify-api.line.me/api/notify")
- request = Net::HTTP::Post.new(url)
- request["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
- request.set_form_data(message: message)
- response = Net::HTTP.start(url.hostname, url.port, use_ssl: url.scheme == "https") do |https|
- https.request(request)
- end
- puts response.code
- puts response.body
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement