找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 107|回复: 11

SAE监控BuyVM到货email通知(官方API+抓页面)【附源码】

[复制链接]

70

主题

1779

回帖

3790

积分

论坛元老

积分
3790
发表于 2012-3-18 11:56:57 | 显示全部楼层 |阅读模式
本帖最后由 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]复制代码
  • 回复

    使用道具 举报

    312

    主题

    1万

    回帖

    2万

    积分

    论坛元老

    积分
    22908
    发表于 2012-3-18 11:57:07 | 显示全部楼层
    真蛋疼
    回复

    使用道具 举报

    23

    主题

    1481

    回帖

    3057

    积分

    论坛元老

    积分
    3057
    发表于 2012-3-18 11:59:08 | 显示全部楼层
    这个……
    回复

    使用道具 举报

    6

    主题

    508

    回帖

    1046

    积分

    金牌会员

    积分
    1046
    发表于 2012-3-18 11:59:20 | 显示全部楼层
    这就是文艺青年和其余两种青年的明显区别了
    回复

    使用道具 举报

    117

    主题

    1965

    回帖

    4317

    积分

    论坛元老

    积分
    4317
    发表于 2012-3-18 12:13:49 | 显示全部楼层
    真心学习了

    回复

    使用道具 举报

    304

    主题

    3081

    回帖

    7102

    积分

    论坛元老

    积分
    7102
    发表于 2012-3-18 12:18:14 | 显示全部楼层
       真心收藏了。
    回复

    使用道具 举报

    45

    主题

    560

    回帖

    1289

    积分

    金牌会员

    积分
    1289
    发表于 2012-3-18 12:20:18 | 显示全部楼层
    上传代码后访问空白
    回复

    使用道具 举报

    91

    主题

    337

    回帖

    981

    积分

    高级会员

    积分
    981
    发表于 2012-3-18 12:25:22 | 显示全部楼层
    留个记号备用
    回复

    使用道具 举报

    25

    主题

    93

    回帖

    281

    积分

    中级会员

    积分
    281
    发表于 2012-3-18 12:39:22 | 显示全部楼层
    牛人!留个记号备用我用buyvm.co去做这个
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2012-3-18 12:41:28 | 显示全部楼层

    netsky 发表于 2012-3-18 12:20



    上传代码后访问空白

    本来就是没显示的只是后台监控自动发email
    我的演示有只是我加了点东西~
    要测试是不是成功,可以搜索[ol]
  • if($json[$i]->pid == $id && $json[$i]->qty != 0)[/ol]复制代码把!=改为==
    上传,刷新页面,能收到email就是正常了(记得改回来,不然变邮箱轰炸了)
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 15:49 , Processed in 0.020499 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表