标签: BuyVM

  • 放一个BuyVM库存量监控的Ruby脚本

    脚本主要实现的功能:从BuyVM官网通过API接口获取各种产品库存量信息,如果有某个产品库存量不为0,就通过事先设定好的邮箱地址,发送邮件通知。其实逻辑很简单的,就不多介绍了。程序调用的是官网的JSON API接口,所以也用到了JSON库来进行数据的解析。

    脚本运行的环境:需要装有Ruby,需要装有SendMail组件,另外,需要安装Ruby的JSON库。

    运行此脚本前,可以先测试你的主机是否有Ruby,可以用ruby -v命令,如果提示命令无效,需要先安装Ruby。安装Ruby的方法,仅以Debian系统为例:

    apt-get install ruby irb ri

    如果你的主机或者VPS中,没有JSON库,程序运行出错,可以用下面的方法安装,仅以Debian系统为例:

    apt-get install libjson-ruby

    嗯,环境准备好之后,就可以运行脚本了,来看看我们的脚本:

    #BuyVMStock.rb

    #Written by Timothy 2012.03.29

    #Run it with: ruby BuyVMStock.rb

    require ‘open-uri’

    require ‘json’

    MailTo = “YourMailAddress@gmail.com”

    def SendMailNotify(content)

    pipe = IO.popen(“/usr/sbin/sendmail -t -v”, “w”)

    pipe.puts “To:” + MailTo + “\n”

    pipe.puts “From:BuyVM\n”

    pipe.puts “Subject: BuyVM has stock now!”

    pipe.puts “BuyVM has stock now! \n” + content

    pipe.close_write

    end

    content = JSON.parse(open(“http://www.doesbuyvmhavestock.com/automation.json”).read)

    emailContent = ”

    content.each { |obj|

    if obj[‘qty’] > 0

    emailContent.concat(obj[‘name’] + ” has ” )

    emailContent.concat(obj[‘qty’].to_s() + ” \n”)

    end

    }

    SendMailNotify(emailContent)

    代码很简洁,将里面的变量MailTo,替换为你的邮箱地址即可。运行后,如果官网有剩余库存,你会收到一封邮件。