宝塔搭建VPS补货监控系统:VPS-Inventory-Monitoring 配置教程 支持微信/TG推送

3,315次阅读
没有评论

针对VPS主机商不定期推出一些廉价的VPS主机或者畅销/促销产品,产品套餐时限有限,极容易断货后再补货,大部分人可能无法及时关注官网,则可能错过优惠产品。

VPS-Inventory-Monitoring,是一个免费开源的项目,主要原理是通过Curl 抓取网页源代码来监控目标字段的变化,例如当特定的网页URL中出现了“缺货”、“Out of Stock”等字样,表示该主机套餐有没有补货,利用这个原理实时监控VPS主机套餐的库存。本文主要介绍如何开启TG通知。

本站补货监控地址:buhuo.maobuni.com || TG:猫不腻补货VPS通知

1.github地址

  1. 项目:https://github.com/546669204/vps-inventory-monitoring
  2. 感兴趣的可以先star 再 fork备份

2.准备条件/搭建所用环境

虚拟主机或者VPS均可,推荐使用VPS虚拟服务器

1.安装宝塔

2.一键快速安装LNMP环境(这里使用php7.0,mysql5.6)

3.创建一个网站,(购买域名,https://www.namesilo.com,优惠码maobuni,解析域名到vps)

4.进入网站目录,下载https://github.com/546669204/vps-inventory-monitoring/archive/master.zip到目录中,解压,并将网站运行目录设置为public,取消防跨站,网站伪静态配置选择thinkphp,开启SSL。

宝塔搭建VPS补货监控系统:VPS-Inventory-Monitoring 配置教程 支持微信/TG推送

5.将根目录下的mysql.sql通过宝塔导入到你的数据库,并且编辑app/database.example.php文件,重命名为database.php,并填写数据库信息,需要填数据库地址,名称,用户,以及密码,端口可不填(默认3306)

6.编辑app/index/config.php文件,修改定时时间、你的域名等,然后打开域名访问即可。

7.最后网站还不能自己定时检测库存,我们需要设置定时检测库存,有2种方法(建议第一种)

方法一、定时任务设置
点击宝塔左侧定时计划,任务类型选择URL访问,时间设置每30分钟,URL:https://你的网站域名/index/index/test

方法二、运行验证程序,间隔时间去app/index/config.php修改
screen -S vpstest //创建screen
cd [网站根目录]
php think VpsTest
CTRL A D //退出screen
然后关闭ssh即可 重新进入查看可使用
screen -r vpstest 

8.访问网站,注册你的帐户,默认为第一个用户,即id为1。拥有管理权限。注册不了的可能是php版本导致,或其他问题,也可以直接去数据库xm_user表修改/添加用户。帐户权限修改在文件app/index/config.php
程序暂时没有删除以及编辑操作,不过我们可以去数据库,通过操作xm_place、xm_company、xm_index进行删除及编辑操作。
如果添加后不会检测,修改数据库xm_index的status为1(1视为通过审核)

3.使用Docker安装

docker安装

  1. 安装宝塔
  2. 安装docker管理器,软件商店中安装
  3. 安装docker-compose

pip install docker-compose
git clone https://github.com/546669204/vps-inventory-monitoring.git
cd vps-inventory-monitoring
docker-compose up -d

  • 访问 ip:7780,网站页面

如有问题,请尝试:docker-compose downdocker-compose builddocker-compose up -d

4.验证函数(检测库存)

验证函数说明

函数说明$curl[“Code”] 返回状态码
$curl[“RequestHeader”] 请求头
$curl[“ResponseHeader”] 返回头
$str 返回源代码
$value[“stock”] 原库存状态

使用示例

 if ($curl["Code"] != 200){ //首先判断状态码
    return false;
}
if (strpos($str,"maobuni")==false){ //检测是否正常打开有无公司名字之类关键词
    return $value["stock"]; //返回原库存状态
}
if (strpos($str,"缺货")!==false){ //检测是否含有缺货关键词
    return false; 
}
return true;    

搬瓦工补货示例

if ($curl["Code"] != 200){ 
    return false;
}
if (strpos($str,"微基")==false){ 
    return $value["stock"];
}
if (strpos($str,"缺货")!==false){ 
    return false; 
}
return true;

if ($curl["Code"] != 200){ 
    return false;
}
if (strpos($str,"Bandwagon")==false){ 
    return $value["stock"];
}
if (strpos($str,"Out of Stock")!==false){ 
    return false; 
}
return true;

if ($curl["Code"] != 200){ 
    return false;
}
if (strpos($str,"GigsGigsCloud")==false){ 
    return $value["stock"];
}
if (strpos($str,"CLOUDLET LAX-V1")==false){ 
    return false; 
}
return true;

5.TG推送机器人

项目地址:https://github.com/546669204/Telegram-Push-Bot

  1. TG私聊 botfather,输入/newbot ,然后输入BOT昵称,再输入BOT名字,然后就会得到token,类似Use this token to access the HTTP API之后
  2. 下载推送源码,并修改bot.php文件里面的token为自己bot的token
  3. 在宝塔上新建网站,绑定域名,并且把bot.php上传到网站根目录,并且用宝塔开启SSL
  • 访问链接:https://api.telegram.org/bot[Token并无需保留括号]/setWebhook?url=https://[你的bot域名,并无需保留括号]/bot.php
    其中[token]修改为自己bot的token,[domian]修改为bot.php所在网站的域名,访问之后得到“{“ok”:true,”result”:true,”description”:”Webhook is already set”}”即成功。
  • VPS-Inventory-Monitoring 默认代码用的作者的TG Bot,因此我们需要把源码的链接替换掉成自己的。请分别打开以下文件,把https://cloud.hcaiyue.top/tgbot.php替换成自己的bot所在域名。
/gotest/config.json
/app/index/model/index.php
/app/index/command/VpsTest.php

邀请自己的bot进入频道,设置为管理员 然后在频道发送 /start 获取 sckey ,填入/app/index/config.php,这样补货后会推送到频道(注册时填写的TGscky是私聊bot获得的,如果你订阅了某个补货条目,那么会收到TGbot的推送)

也可以手动通过`POST http://[domain]/bot.php
method=send&sckey=[XXX]&content=[CONTENT]`
来发送消息

具体的添加监控可以在网页上进行,删除等需要直接区数据库操作。(只有在库存状态改变时候才会进行通知,试验通知可以手动进入数据库将库存修改为0,然后等待监控触发,库存更改,是否收到通知)

本站补货监控地址:buhuo.maobuni.com || TG:猫不腻补货VPS通知 || VPS交流群

正文完
 
评论(没有评论)