foboy 发表于 2018-3-15 00:11:09

自动监控hetzner特价独服放货,抢购必备软件

本帖最后由 foboy 于 2018-3-22 20:47 编辑

看到大家关注hetzner的特价机,就来贡献一次吧,代码简陋,各位MJJ别笑。听说很多人下了订单还没付款,也许有人最后决定不买了,库存可能就又有了,还能捡个漏。
运行平台:windows系列。
软件功能:监控hetzner库存,可以设置检测间隔,有低于多少价格的机器时提醒,另外还可以设置CPU癖好。更多的筛选条件也可以实现,但是懒得弄。






因为邮件提醒没用(邮件到达时早就抢光了),所以我取消了邮件功能,只保留蜂鸣器提醒。(2018-03-16 22:38修改)




static/image/filetype/zip.gif

hetzner存货监控.zip
(465.84 KB, 下载次数: 418)

2018-3-16 22:42 上传
点击文件名下载附件



(已经失效,请用下面的)




static/image/filetype/zip.gif

hetzner存货监控-new.zip
(466.62 KB, 下载次数: 328)

2018-3-22 20:47 上传
点击文件名下载附件





抢购姿势:打开电脑,打开本软件, 设置检测间隔为5到10之间的数字,价格低于25.CPU栏如果想要E3的, 就填E3,想要I7的就填i7,哪个都无所谓的就不要填任何内容。然后勾选“蜂鸣器提醒”,点“开始监测”。然后自己打开浏览器,登陆你自己的账号,打开server bidding页面。再然后就该干嘛就干嘛,但不要远离电脑。听到电脑发出“滴滴”声就赶紧刷新服务器页面,然后抢购。实测现在成功率很高。
如果有谁不想人工去下单,可以联系我定做自动下单版本, 价格300¥。但本人是觉得没啥必要,因为不算难抢。

对成品软件不放心的MJJ,可以用下面的源码运行,需要先下载aardio软件(网站aardio.com),
[*]
[*]import win.ui;
[*]/*DSG{{*/
[*]var winform = win.form(cls="335.im";text="主机监控";right=456;bottom=300;border="thin";max=false)
[*]winform.add(
[*]button_r={cls="button";text="开始监测";left=288;top=245;right=420;bottom=279;z=1};
[*]checkbox_beep={cls="checkbox";text="蜂鸣器提醒";left=29;top=203;right=127;bottom=220;checked=1;z=17};
[*]checkbox_log={cls="checkbox";text="显示运行记录";left=139;top=203;right=237;bottom=220;z=18};
[*]edit_cpu={cls="edit";left=97;top=89;right=163;bottom=110;edge=1;z=15};
[*]edit_delay={cls="edit";text="20";left=97;top=62;right=163;bottom=83;edge=1;z=12};
[*]edit_mail={cls="edit";left=97;top=171;right=237;bottom=192;edge=1;z=6};
[*]edit_price={cls="edit";text="25";left=97;top=36;right=163;bottom=57;edge=1;z=4};
[*]groupbox={cls="groupbox";text="设置";left=12;top=10;right=254;bottom=286;edge=1;z=2};
[*]static={cls="static";text="价格小于:";left=29;top=38;right=92;bottom=55;transparent=1;z=3};
[*]static2={cls="static";text="通知邮箱:";left=29;top=174;right=92;bottom=191;transparent=1;z=5};
[*]static3={cls="static";text="当前最低价:";left=271;top=22;right=343;bottom=37;transparent=1;z=7};
[*]static4={cls="static";text="最后检测:";left=271;top=46;right=332;bottom=61;transparent=1;z=9};
[*]static5={cls="static";text="检测间隔:";left=29;top=64;right=92;bottom=81;transparent=1;z=11};
[*]static6={cls="static";text="秒";left=168;top=64;right=197;bottom=81;transparent=1;z=13};
[*]static7={cls="static";text="CPU条件:";left=29;top=93;right=95;bottom=110;transparent=1;z=14};
[*]static8={cls="static";text="说明:CPU条件只填能做出区分的关键字就行,例如:i5、i7、1230等";left=29;top=117;right=239;bottom=160;color=255;transparent=1;z=16};
[*]static_price={cls="static";text="0";left=343;top=22;right=397;bottom=37;transparent=1;z=8};
[*]static_time_last={cls="static";left=333;top=46;right=448;bottom=61;transparent=1;z=10}
[*])
[*]/*}}*/
[*]
[*]import thread.table;
[*]import fsys.config;
[*]config=fsys.config("/config/")
[*]winform.bindConfig( config.winform,{
[*]      edit_mail = "text";
[*]      edit_price = "text";
[*]      edit_cpu = "text";
[*]      edit_delay = "text";
[*]      checkbox_beep = "checked";
[*]} );
[*]
[*]t_d=thread.table("table_name")
[*]t_d.r=0;
[*]
[*]if(_STUDIO_INVOKED || (_ARGV && _ARGV.debug)){
[*]      io.open()
[*]}
[*]
[*]winform.button_r.oncommand = function(id,event){
[*]      if(t_d.r!=1){
[*]                t_d.r=1
[*]                owner.text="停止监测"
[*]      }else {
[*]                t_d.r=0;
[*]                owner.text="开始监测"
[*]      }
[*]      
[*]}
[*]winform.show_price_min=function(data){
[*]      winform.static_price.text=data;
[*]      var now_time=time();
[*]      now_time.format="%H:%M:%S";
[*]      winform.static_time_last.text=tostring(now_time);
[*]}
[*]
[*]
[*]thread.create(
[*]      function( hwnd_m ){
[*]                import win;
[*]                import thread.table;
[*]                import inet.whttp;
[*]                import inet.url;
[*]                import web.json;
[*]               
[*]                t_d=thread.table("table_name");
[*]               
[*]                http=inet.whttp()
[*]                time_pre=0;//最后检测的时间
[*]                time_last_email=0;//最后一次发邮件的时间
[*]                while(win.isWindow(hwnd_m)){
[*]                        sleep(100)
[*]                        if(t_d.r!=1) continue ;
[*]                        if(time.tick()-time_pre>t_d.delay*1000){
[*]                              io.print("checking...",time())
[*]                              time_pre=time.tick();
[*]                              url="https://www.hetzner.com/a_hz_serverboerse/live_data.json?m="++string.concat(tonumber(time()),math.random(100,999))
[*]                              //io.print("url:",url)
[*]                              r=http.get(url)
[*]                              if(!r){
[*]                                        io.print("获取数据出错!")
[*]                                        continue ;
[*]                              }
[*]                              //io.print(r)
[*]                              try{
[*]                                        data=web.json.parse(r);
[*]                              }
[*]                              if(data && #data>1){
[*]                                        io.print("get data success")
[*]                                        price_min=10000;
[*]                                        str_email="";//准备发送的邮件信息,为了避免有多个型号符合要求时会同时发送多封邮件,每次检测到的信息合并发送。
[*]                                        for(k,v in data){
[*]                                                if(v["price"]){
[*]                                                      price=tonumber(v["price"]):-1;
[*]                                                      if(price==-1){
[*]                                                                io.print("价格数据出错:",v["price"],price)
[*]                                                                continue ;
[*]                                                      }
[*]                                                      if(price){
[*]                                                                if(price1){
[*]                                                if(t_d.email && string.find(t_d.email,"\w+@.+") && time.tick()-time_last_email>600000){//10分钟内只发送一次邮件
[*]                                                      time_last_email=time.tick();
[*]                                                      io.print("邮件内容:",str_email)
[*]                                                      //这里取消email提醒了,因为出货后很快就被秒, 邮件到达时早就没货了,还是再本地电脑上开蜂鸣器提醒最合适。
[*]                                                }
[*]                                                //如果需要增加其他的通知接口,可以在下面这行的引号里添加你的url,然后去掉最前面的//取消注释。
[*]                                                //http.get("")
[*]                                        }
[*]                              }else {
[*]                                        io.print("data error!")
[*]                              }
[*]                        }
[*]                }
[*]      },
[*]      winform.hwnd
[*])
[*]
[*]winform.edit_mail.oncommand = function(id,event){
[*]    var email=owner.text;
[*]    if(#email复制代码

阿里嘎多 发表于 2018-3-15 00:12:30

感谢大佬分享

Chappako 发表于 2018-3-15 00:13:56

全球mjj论坛

qccj001 发表于 2018-3-15 00:14:19

感谢分享 楼主好人

nic2013 发表于 2018-3-15 00:17:06

网络一般般,没啥用,刚刚取消了一个22欧,用了几个小时,不知道会不会收费。

vine 发表于 2018-3-15 00:17:45

这是要人手一个hetzner的节奏嘛
static/image/smiley/default/lol.gif

beixiaoqian 发表于 2018-3-15 00:18:19

大佬厉害

Gh0st 发表于 2018-3-15 00:19:06

又骗我去学aardio

foboy 发表于 2018-3-15 00:20:42


nic2013 发表于 2018-3-15 00:17

网络一般般,没啥用,刚刚取消了一个22欧,用了几个小时,不知道会不会收费。 ...
大佬威武,就这么扔掉了别人想念的东西。

hkalvin 发表于 2018-3-15 00:17:00

感谢楼主分享 ,人真好
static/image/smiley/default/shocked.gif
页: [1]
查看完整版本: 自动监控hetzner特价独服放货,抢购必备软件