|
本帖最后由 neverno 于 2012-3-18 11:56 编辑
没啥技术含量的蛋疼东西。
buyvm要放货了,tw上@他问了下,15刀、25刀年付都有货。
具体北京时间什么时候?看最后演示的页面有倒计时。
用的是他家官方json API,不是之前这里的直接抓取页面判断,邮件需要SMTP。
最后也附上用直接抓取页面判断的方法,修改一下,能用于监控其它的到货通知,不仅是buyvm
。
SAE专属:http://sae.sina.com.cn
===============================
核心代码(自行修改)
或[ol]fetch('http://www.doesbuyvmhavestock.com/automation.json'); $f->clean(); $json = json_decode($json); $pid = explode(',',$pid); for($i = 0 ; $i setOpt(array( 'from' => $mailfrom )); $mail->setOpt(array( 'to' => $mailto )); $mail->setOpt(array( 'cc' => $mailtocc )); $mail->setOpt(array( 'smtp_host' => $mailsmtp )); $mail->setOpt(array( 'smtp_port' => $mailsmtpport )); $mail->setOpt(array( 'smtp_username' => $mailfrom )); $mail->setOpt(array( 'smtp_password' => $mailpassword )); $mail->setOpt(array( 'subject' => $mailtitle )); $mail->setOpt(array( 'content' => $mailcontent )); $mail->send(); if ( $mail->errno() != 0 ) { $mail->setOpt(array( 'subject' => 'error:'.$mail->errmsg() )); $mail->setOpt(array( 'content' => 'code:'.$mail->errno().'
'.$mail->errmsg() )); $mail->send(); } } function checkstock($id) { global $json; for($i = 0 ; $i pid == $id && $json[$i]->qty != 0){ sendm('BuyVM '.$json[$i]->name.' 有货啦!','还有 '.$json[$i]->qty.' 个,赶紧去抢吧,地址:https://my.frantech.ca/cart.php?a=add&pid='.$json[$i]->pid); break; } } } ?>[/ol]复制代码保存为任意PHP
添加sae计划任务:
config.yaml(自行修改,默认间隔2分钟)[ol]name: {项目名}version: {版本号}cron: - description: {描述} url: {文件路径,如index.php} schedule: every 2 mins, offset 5 timezone: Beijing[/ol]复制代码演示
===================================
抓取页面的方法可用于BuyVM以外的监控[ol]fetch($addr); if ($f->httpCode() == 200) { if (!strpos($content,'Out of Stock')) sendm($mailt,$mailc); } if ($f->errno() != 0) echo $f->errmsg(); $f->clean();?>[/ol]复制代码 |
|