|
|
|
import time
|
|
|
|
import sys
|
|
|
|
import os
|
|
|
|
curPath = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
rootPath = os.path.split(curPath)[0]
|
|
|
|
sys.path.append(rootPath)
|
|
|
|
|
|
|
|
from multiprocessing import Process
|
|
|
|
import requests
|
|
|
|
|
|
|
|
from tools import utils
|
|
|
|
from JDMain import JDSecKillSubmit
|
|
|
|
from api_timer import JDTimer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def syncTime():
|
|
|
|
jdTimer = JDTimer()
|
|
|
|
return jdTimer.local_jd_time_diff()
|
|
|
|
|
|
|
|
|
|
|
|
def yuyueSku(sku, ck):
|
|
|
|
jdapi = JDSecKillSubmit(sku, ck)
|
|
|
|
jdapi.appoint_task()
|
|
|
|
|
|
|
|
|
|
|
|
def killSku(sku, ck):
|
|
|
|
jdapi = JDSecKillSubmit(sku, ck)
|
|
|
|
for i in range(5):
|
|
|
|
print('第%d次kill---------------------------->' % i)
|
|
|
|
if jdapi.killSku():
|
|
|
|
break
|
|
|
|
|
|
|
|
def work(killTime, ck):
|
|
|
|
print('ck:', ck)
|
|
|
|
sku = '100012043978'
|
|
|
|
killTimeTs = utils.getTimeStamp(killTime, format='%Y-%m-%d %H:%M:%S.%f')
|
|
|
|
|
|
|
|
syncedTime = False
|
|
|
|
hasYuyue = False
|
|
|
|
|
|
|
|
timeDiff = 0 # 时差
|
|
|
|
|
|
|
|
nowTimeTs = int(time.time() * 1000)
|
|
|
|
killDiff = killTimeTs - nowTimeTs
|
|
|
|
print("时间剩余%s秒" % str(int(killDiff / 1000)))
|
|
|
|
|
|
|
|
while True:
|
|
|
|
nowTimeTs = int(time.time() * 1000)
|
|
|
|
killDiff = killTimeTs - nowTimeTs
|
|
|
|
|
|
|
|
if killDiff < 5 * 60 * 1000 and not syncedTime:
|
|
|
|
syncedTime = True
|
|
|
|
timeDiff = syncTime()
|
|
|
|
print("时差:%s" % str(timeDiff))
|
|
|
|
killTimeTs = killTimeTs + timeDiff
|
|
|
|
elif killDiff < 2 * 60 * 1000 and not hasYuyue:
|
|
|
|
hasYuyue = True
|
|
|
|
yuyueSku(sku=sku, ck=ck)
|
|
|
|
elif killDiff < 0:
|
|
|
|
print("时差:%s" % str(timeDiff))
|
|
|
|
killSku(sku=sku, ck=ck)
|
|
|
|
break
|
|
|
|
time.sleep(0.01)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
|
|
# 抢购时间
|
|
|
|
killTime = '2022-12-06 11:59:59.800'
|
|
|
|
|
|
|
|
# cookie
|
|
|
|
cks = [
|
|
|
|
'pin=jd_750700f5195f0;wskey=AAJhfBLfAEBqephMIivF_qe0wD2ALX3VJxWoA5YIKp3WrFhdrjgPtFy3EQTscDVSM0GZTo3FWki8mlfFfDa5ZBYkK7RpaYl0;whwswswws=JD012145b9L1kYqSIIVh1669867133617042YScLrIw0J2pSV42VSbQzxSFSMO4WNQNG-dzoX0ej9hBIs7LthXd1TlUUURcukNRbUy0TljWfryXK8g540WfOA1h9e9z8~hW9ObQK0NZBV/1xYy9D6vrzuPqkrcWq4AWG3GW2+G9hgqopv50Z1vm2TkVFMqfuvY;unionwsws={"devicefinger":"eidA13888122eas2V6hvBVpKROOoFpvKZGcPpFeocHqYgwWUSHErNoRA\/SNIEL60pkTbum5wPvwz4nt1KXsnsQAMiRK8a59ha4QioKn7vd1BjB7XTBxv","jmafinger":"JD012145b9L1kYqSIIVh1669867133617042YScLrIw0J2pSV42VSbQzxSFSMO4WNQNG-dzoX0ej9hBIs7LthXd1TlUUURcukNRbUy0TljWfryXK8g540WfOA1h9e9z8~hW9ObQK0NZBV\/1xYy9D6vrzuPqkrcWq4AWG3GW2+G9hgqopv50Z1vm2TkVFMqfuvY"};',
|
|
|
|
'pin=jd_4a92ba8a78fc4;wskey=AAJjjq6LAECdB0277RUdMtFp_nlVrVZ9-2qxFkHTlrBRfN1rIJVxHw57k7Z8wLOhPOg97zHD1LeXKlvd1wYdV5KRpZ-nay68;whwswswws=JD012145b90LxtB6wpYp1670296552304054gEHLRaVyPQOncWsG0BE4qfs9IdhaDoxAQmXFgbVMKxtjG3SRYxceSPHcK_4MWunpZOtl2gOd_J9Rk8rPUEagA1s6y1up~aNM8HpcMTEw26Wv4Mmm5-XSO29KbUckNTfFez79ZhogoqbQz0hSdPJymYsYGaojL5K6ylT109w26jBZEVWPzFGhei8vefTLtYgrG5IEKf14-iHygNMGHV48_JAlZ6PaTUfp1yKtWLTW-azHBwuXL1Ng;unionwsws={"devicefinger":"eidAe0b5812186sfe5v04hQDTnyS2tLqsQ92WXub9mb5W9SSEc91xZpb1rMkQVzJLx7bUlVO3RslJBcr2uBsHUm8L9SEbYq5T9U\/O5XOjLXR5F79wV5y","jmafinger":"JD012145b90LxtB6wpYp1670296552304054gEHLRaVyPQOncWsG0BE4qfs9IdhaDoxAQmXFgbVMKxtjG3SRYxceSPHcK_4MWunpZOtl2gOd_J9Rk8rPUEagA1s6y1up~aNM8HpcMTEw26Wv4Mmm5-XSO29KbUckNTfFez79ZhogoqbQz0hSdPJymYsYGaojL5K6ylT109w26jBZEVWPzFGhei8vefTLtYgrG5IEKf14-iHygNMGHV48_JAlZ6PaTUfp1yKtWLTW-azHBwuXL1Ng"};'
|
|
|
|
]
|
|
|
|
|
|
|
|
p = []
|
|
|
|
for i in range(len(cks)):
|
|
|
|
p1 = Process(target=work, args=(killTime, cks[i],))
|
|
|
|
p1.start()
|
|
|
|
p.append(p1)
|
|
|
|
|
|
|
|
for i in range(len(cks)):
|
|
|
|
p[i].join()
|