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 ( )