- # encoding: utf-8
- #本脚本基于python3+方糖实现enoctus监控+微信推送
- #使用方法:
- #修改 sckey 为你自己的方糖KEY
- #修改 pid 为你想要监控的套餐PID
- #python vps.py
- #香港1G pid=93
- from sys import argv
- from urllib import request,parse
- from os import system
- import datetime
- import time
- #方糖KEY
- sckey="xxx"
- #Enoctus
- enoctus=True
- #香港=93
- enopid93=True
- enopid92=True
- #Kimsufi
- kimsufi=False
- kspid='1801sk902'
- tile=""
- try:
- flag=0
- urlsc='https://sc.ftqq.com/%s.send' % (sckey)
- header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}
- now=datetime.datetime.now()
- now.strftime('%Y-%m-%d %H:%M:%S')
- if enoctus:
- enooktime=datetime.datetime.now()
- enooktime.strftime('%Y-%m-%d %H:%M:%S')
- enooutoftime=datetime.datetime.now()
- enooutoftime.strftime('%Y-%m-%d %H:%M:%S')
- if kimsufi:
- ksurl='https://www.kimsufi.com/en/order/kimsufi.xml?reference=%s' % (kspid)
- ksoktime=datetime.datetime.now()
- ksoktime.strftime('%Y-%m-%d %H:%M:%S')
- ksoutoftime=datetime.datetime.now()
- ksoutoftime.strftime('%Y-%m-%d %H:%M:%S')
- while True:
- if enoctus:
- if enopid93:
- enourl='https://einstein.enoctus.co.uk/cart.php?a=add&pid=93'
- req=request.Request(enourl,headers=header)
- page=request.urlopen(req).read()
- if str(page).find('out of stock')>0:
- if flag>0:
- enooutoftime=datetime.datetime.now()
- tile='[缺货提醒]上轮上货持续时间:%s' % (enooutoftime-enooktime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- request.urlopen(request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)).read()
- flag=0
- now=datetime.datetime.now()
- print('[缺货提醒]本轮缺货持续时间:[%s]10秒后将再次检测' % (now-enooutoftime))
- time.sleep(10)
- else:
- if flag==0:
- enooktime=datetime.datetime.now()
- tile='[上货提醒]上轮缺货持续时间:%s' % (enooktime-enooutoftime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- flag=flag+1
- if flag<2:
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- else:
- now=datetime.datetime.now()
- print('[上货提醒]本轮上货持续时间:%s' % (now-enooktime))
- if enopid92:
- enourl='https://einstein.enoctus.co.uk/cart.php?a=add&pid=92'
- req=request.Request(enourl,headers=header)
- page=request.urlopen(req).read()
- if str(page).find('out of stock')>0:
- if flag>0:
- enooutoftime=datetime.datetime.now()
- tile='[缺货提醒]上轮上货持续时间:%s' % (enooutoftime-enooktime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- request.urlopen(request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)).read()
- flag=0
- now=datetime.datetime.now()
- print('[缺货提醒]本轮缺货持续时间:[%s]10秒后将再次检测' % (now-enooutoftime))
- time.sleep(10)
- else:
- if flag==0:
- enooktime=datetime.datetime.now()
- tile='[上货提醒]上轮缺货持续时间:%s' % (enooktime-enooutoftime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- flag=flag+1
- if flag<2:
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':enourl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- else:
- now=datetime.datetime.now()
- print('[上货提醒]本轮上货持续时间:%s' % (now-enooktime))
- if kimsufi:
- req=request.Request(ksurl,headers=header)
- page=request.urlopen(req).read()
- if str(page).find('this server is being restocked')>0:
- if flag>0:
- ksoutoftime=datetime.datetime.now()
- tile='[缺货提醒]上轮上货持续时间:%s' % (ksoutoftime-ksoktime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':ksurl})
- request.urlopen(request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)).read()
- flag=0
- now=datetime.datetime.now()
- print('[缺货提醒]本轮缺货持续时间:[%s]10秒后将再次检测' % (now-ksoutoftime))
- time.sleep(10)
- else:
- if flag==0:
- ksoktime=datetime.datetime.now()
- tile='[上货提醒]上轮缺货持续时间:%s' % (ksoktime-ksoutoftime)
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':ksurl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- flag=flag+1
- if flag<2:
- print(tile)
- textmod = parse.urlencode({'text':tile,'desp':ksurl})
- req1=request.Request('%s%s%s' % (urlsc,'?',textmod),headers=header)
- page1=request.urlopen(req1).read()
- else:
- now=datetime.datetime.now()
- print('[上货提醒]本轮上货持续时间:%s' % (now-ksoktime))
- except:
- print('脚本异常,退出')
复制代码 |