针对VPS主机商不定期推出一些低价的VPS主机或畅销/促销产品,产品套餐时限有限,极容易断货后再补货,大部份人可能没法及时关注官网,则可能错过优惠产品。
VPS-Inventory-Monitoring,是一个不要钱开源的项目,主要原理是通过Curl 抓取网页源代码来监控目标字段的变化,例如当特定的网页URL中出现了“缺货”、“Out of Stock”等字样,表示该主机套餐有无补货,利用这个原理实时监控VPS主机套餐的库存。本文主要介绍怎么开启TG通知。
本站补货监控地址:buhuo.www.guigege.cn || TG:桂哥网络补货VPS通知
1.github地址
- 项目:https://github.com/546669204/vps-inventory-monitoring
- 感兴趣的可以先star 再 fork备份
2.准备条件/搭建所用环境
虚拟主机或VPS都可,推荐使用VPS虚拟服务器。
1.安装宝塔
2.一键快速安装LNMP环境(这里使用php7.0,mysql5.6)
3.创建一个网站,(租赁域名,https://www.namesilo.com,优惠码guigege,解析域名到vps)
4.进入网站目录,下载https://github.com/546669204/vps-inventory-monitoring/archive/master.zip到目录中,解压,并将网站运行目录设置为public,取消防跨站,网站伪静态配置选择thinkphp,开启SSL。
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安装
- 安装宝塔
- 安装docker管理器,软件商店中安装
- 安装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,"guigege")==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
- TG私聊botfather,输入/newbot ,然后输入BOT昵称,再输入BOT名字,然后就会得到token,类似Use this token to access the HTTP API以后
- 下载推送源码,并修改bot.php文件里面的token为自己bot的token
- 在宝塔上新建网站,绑定域名,并且把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的推送)
也能够手动通过`POSThttp://[domain]/bot.php
method=send&sckey=[XXX]&content=[CONTENT]`
来发送消息
具体的添加监控可以在网页上进行,删除等需要直接区数据库操作。(只有在库存状态改变时候才会进行通知,实验通知可以手动进入数据库将库存修改成0,然后等待监控触发,库存更改,会不会收到通知)
本站补货监控地址:buhuo.www.guigege.cn || TG:桂哥网络补货VPS通知 || VPS交换群
桂¥哥¥网¥络www.guIgeGe.cn