#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
File: jd_lzkjInteract.py(jd_lzkjInteract邀请有礼)
Author: HarbourJ
Date: 2022/11/24 10:00
TG: https://t.me/HarbourToulu
TgChat: https://t.me/HarbourChat
cron: 1 1 1 1 1 1
new Env('jd_lzkjInteract邀请有礼');
ActivityEntry: https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10006&activityId=1595256546199793665&templateId=20201228083300yqrhyl011&nodeId=101001005&prd=cjwx
Description: 邀请xx人xx豆,自动助力,自动领奖,‼️该活动部分类型 有且仅能领取一次奖励,默认领最高档豆🎁,或者手动领取
            变量:export jd_lzkjInteractId="活动🆔" #活动链接中的activityId参数
                 export jd_lzkjInteractUserId="你的shareUserId邀请码"
"""

import time, requests, sys, re, os, json, random
from datetime import datetime
from urllib.parse import quote_plus, unquote_plus
from functools import partial
from sendNotify import *
print = partial(print, flush=True)
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
try:
    from jd_sign import *
except ImportError as e:
    print(e)
    if "No module" in str(e):
        print("请先运行HarbourJ库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
try:
    from jdCookie import get_cookies
    getCk = get_cookies()
except:
    print("请先下载依赖脚本,\n下载链接: https://raw.githubusercontent.com/HarbourJ/HarbourToulu/main/jdCookie.py")
    sys.exit(3)

redis_url = os.environ.get("redis_url") if os.environ.get("redis_url") else "172.17.0.1"
redis_port = os.environ.get("redis_port") if os.environ.get("redis_port") else "6379"
redis_pwd = os.environ.get("redis_pwd") if os.environ.get("redis_pwd") else ""
activityId = os.environ.get("jd_lzkjInteractId") if os.environ.get("jd_lzkjInteractId") else ""
share_userId = os.environ.get("jd_lzkjInteractUserId") if os.environ.get("jd_lzkjInteractUserId") else ""

if not activityId:
    print("⚠️未发现有效活动变量jd_lzkjInteractId,退出程序!")
    sys.exit()

templateId = "20201228083300yqrhyl011"
activity_url = f"https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10006&activityId={activityId}&shareUserId={share_userId}&templateId={templateId}&nodeId=101001005&prd=null&sid=c77e8b335974724742827d7c42f951cw&un_area=12_1212_11111_22222"
print(f"【🛳活动入口】{activity_url}")

def redis_conn():
    try:
        import redis
        try:
            pool = redis.ConnectionPool(host=redis_url, port=6379, decode_responses=True, socket_connect_timeout=5, password=redis_pwd)
            r = redis.Redis(connection_pool=pool)
            r.get('conn_test')
            print('✅redis连接成功')
            return r
        except:
            print("⚠️redis连接异常")
    except:
        print("⚠️缺少redis依赖,请运行pip3 install redis")
        sys.exit()

def getToken(ck, r=None):
    host = f'{activityUrl.split("com/")[0]}com'
    try:
        # redis缓存Token 活动域名+pt_pin
        pt_pin = unquote_plus(re.compile(r'pt_pin=(.*?);').findall(ck)[0])
    except:
        # redis缓存Token 活动域名+ck前7位(获取pin失败)
        pt_pin = ck[:15]
    try:
        if r is not None:
            Token = r.get(f'{activityUrl.split("https://")[1].split("-")[0]}_{pt_pin}')
            # print("Token过期时间", r.ttl(f'{activityUrl.split("https://")[1].split("-")[0]}_{pt_pin}'))
            if Token is not None:
                print(f"♻️获取缓存Token")
                return Token
            else:
                # print("🈳去设置Token缓存")
                s.headers = {
                    'Connection': 'keep-alive',
                    'Accept-Encoding': 'gzip, deflate, br',
                    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                    'User-Agent': '',
                    'Cookie': ck,
                    'Host': 'api.m.jd.com',
                    'Referer': '',
                    'Accept-Language': 'zh-Hans-CN;q=1 en-CN;q=0.9',
                    'Accept': '*/*'
                }
                sign_txt = sign({"url": f"{host}", "id": ""}, 'isvObfuscator')
                # print(sign_txt)
                f = s.post('https://api.m.jd.com/client.action', verify=False, timeout=30)
                if f.status_code != 200:
                    print(f.status_code)
                    return
                else:
                    if "参数异常" in f.text:
                        return
                Token_new = f.json()['token']
                # print(f"Token->: {Token_new}")
                if r.set(f'{activityUrl.split("https://")[1].split("-")[0]}_{pt_pin}', Token_new, ex=1800):
                    print("✅Token缓存成功")
                else:
                    print("❌Token缓存失败")
                return Token_new
        else:
            s.headers = {
                'Connection': 'keep-alive',
                'Accept-Encoding': 'gzip, deflate, br',
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                'User-Agent': '',
                'Cookie': ck,
                'Host': 'api.m.jd.com',
                'Referer': '',
                'Accept-Language': 'zh-Hans-CN;q=1 en-CN;q=0.9',
                'Accept': '*/*'
            }
            sign_txt = sign({"url": f"{host}", "id": ""}, 'isvObfuscator')
            # print(sign_txt)
            f = s.post('https://api.m.jd.com/client.action', verify=False, timeout=30)
            if f.status_code != 200:
                print(f.status_code)
                return
            else:
                if "参数异常" in f.text:
                    return
            Token = f.json()['token']
            print(f"✅获取实时Token")
            return Token
    except:
        return

def getJdTime():
    jdTime = int(round(time.time() * 1000))
    return jdTime

def randomString(e, flag=False):
    t = "0123456789abcdef"
    if flag: t = t.upper()
    n = [random.choice(t) for _ in range(e)]
    return ''.join(n)

def check(ck):
    try:
        url = 'https://me-api.jd.com/user_new/info/GetJDUserInfoUnion'
        header = {
            "Host": "me-api.jd.com",
            "Accept": "*/*",
            "Connection": "keep-alive",
            "Cookie": ck,
            "User-Agent": ua,
            "Accept-Language": "zh-cn",
            "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&",
            "Accept-Encoding": "gzip, deflate",
        }
        result = requests.get(url=url, headers=header).text
        codestate = json.loads(result)
        if codestate['retcode'] == '1001':
            msg = "当前ck已失效,请检查"
            return {'code': 1001, 'data': msg}
        elif codestate['retcode'] == '0' and 'userInfo' in codestate['data']:
            nickName = codestate['data']['userInfo']['baseInfo']['nickname']
            return {'code': 200, 'name': nickName, 'ck': cookie}
    except Exception as e:
        return {'code': 0, 'data': e}

def getActivity():
    url = activityUrl
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'User-Agent': ua,
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'Connection': 'keep-alive'
    }
    response = requests.request("GET", url, headers=headers)
    if response.status_code != 200:
        print(response.status_code, "⚠️ip疑似黑了,休息一会再来撸~")
        sys.exit()

def getUserInfo(shareUserId):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/user-info/login"
    body = {
        "status": "0",
        "activityId": activityId,
        "source": "01",
        "tokenPin": token,
        "shareUserId": shareUserId
    }
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': '',
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl,
        'Cookie': f'IsvToken={token};'
    }
    response = requests.request("POST", url, headers=headers, data=json.dumps(body))
    if response.status_code == 200:
        res = response.json()
        if res['data']:
            return res['data']
        else:
            print(res)
    else:
        print(response.status_code, "⚠️ip疑似黑了,休息一会再来撸~")
        sys.exit()

def guestMyself(Token, shareUserId):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/task/bargain/guest/myself"
    body = {
        "shareUserId": shareUserId
    }
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    requests.post(url, headers=headers, data=json.dumps(body))

def getMember(Token, shareUserId):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/task/member/getMember"
    body = {
        "shareUserId": shareUserId
    }
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    try:
        res = response.json()
        inviteNum = res['data']['shareUser']
        return inviteNum
    except Exception as e:
        print(str(e))
        return False

def prizeList(Token):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/task/member/prizeList"
    body = {}
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    try:
        return response.json()
    except:
        return False

def joinCheck(Token):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/join/check"
    body = {
        "status": "0"
    }
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    try:
        return response.json()
    except:
        return False

def getUserId(Token):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/task/share/getUserId"
    body = {}
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    try:
        return response.json()['data']['shareUserId']
    except Exception as e:
        print(str(e))

def receiveAcquire(Token, id):
    url = "https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/api/prize/receive/acquire"
    body = {
        "prizeInfoId": id,
        "status": 1
    }
    headers = {
        'Host': 'lzkj-isv.isvjcloud.com',
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
        'Accept-Encoding': 'gzip, deflate, br',
        'token': Token,
        'Content-Type': 'application/json;charset=UTF-8',
        'Origin': 'https://lzkj-isv.isvjcloud.com',
        'User-Agent': ua,
        'Connection': 'keep-alive',
        'Referer': activityUrl
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    try:
        return response.json()['resp_code']
    except:
        print(response.text)
        return False

def bindWithVender(cookie, venderId):
    try:
        s.headers = {
            'Connection': 'keep-alive',
            'Accept-Encoding': 'gzip, deflate, br',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'User-Agent': ua,
            'Cookie': cookie,
            'Host': 'api.m.jd.com',
            'Referer': 'https://shopmember.m.jd.com/',
            'Accept-Language': 'zh-Hans-CN;q=1 en-CN;q=0.9',
            'Accept': '*/*'
        }
        s.params = {
            'appid': 'jd_shop_member',
            'functionId': 'bindWithVender',
            'body': json.dumps({
                'venderId': venderId,
                'shopId': venderId,
                'bindByVerifyCodeFlag': 1
            }, separators=(',', ':'))
        }
        res = s.post('https://api.m.jd.com/', verify=False, timeout=30).json()
        if res['success']:
            return res['message']
    except Exception as e:
        print(e)

def getShopOpenCardInfo(cookie, venderId):
    shopcard_url = f"https://shopmember.m.jd.com/shopcard/?venderId={venderId}&channel=401&returnUrl={quote_plus(activityUrl)}"
    try:
        body = {"venderId": str(venderId), "channel": "8019006"}
        url = f'https://api.m.jd.com/client.action?appid=jd_shop_member&functionId=getShopOpenCardInfo&body={json.dumps(body)}&client=H5&clientVersion=9.2.0&uuid=88888'
        headers = {
            'Host': 'api.m.jd.com',
            'Accept': '*/*',
            'Connection': 'keep-alive',
            'Cookie': cookie,
            'User-Agent': ua,
            'Accept-Language': 'zh-cn',
            'Referer': shopcard_url,
            'Accept-Encoding': 'gzip, deflate'
        }
        response = requests.get(url=url, headers=headers, timeout=5).text
        res = json.loads(response)
        if res['success']:
            venderCardName = res['result']['shopMemberCardInfo']['venderCardName']
            openCardStatus = res['result']['userInfo']['openCardStatus']
            return venderCardName, openCardStatus
        else:
            return False, 1
    except:
        return False, 1


if __name__ == '__main__':
    r = redis_conn()
    try:
        cks = getCk
        if not cks:
            sys.exit()
    except:
        print("未获取到有效COOKIE,退出程序!")
        sys.exit()
    global shareUuid, inviteSuccNum, activityUrl, firstCk, MSG
    inviteSuccNum = 0
    MSG = ''
    title = "🗣消息提醒:lzkjInteract邀请有礼"
    if len(cks) == 1:
        shareUserId = share_userId
        activityUrl = activity_url
    else:
        try:
            shareUserId = remote_redis(f"lzkj_{activityId}", 2)
            activityUrl = f"https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10006&activityId={activityId}&shareUserId={shareUserId}&templateId={templateId}&nodeId=101001005&prd=null&sid=c77e8b335974724742827d7c42f951cw&un_area=12_1212_11111_22222"
        except:
            shareUserId = share_userId
            activityUrl = activity_url
    num = 0
    for cookie in cks[:]:
        num += 1
        if num == 1:
            firstCk = cookie
        if num % 5 == 0:
            print("⏰等待5s,休息一下")
            time.sleep(5)
        global ua, token
        ua = userAgent()
        try:
            pt_pin = re.compile(r'pt_pin=(.*?);').findall(cookie)[0]
            pt_pin = unquote_plus(pt_pin)
        except IndexError:
            pt_pin = f'用户{num}'
        print(f'\n******开始【京东账号{num}】{pt_pin} *********\n')
        print(datetime.now())

        result = check(cookie)
        if result['code'] != 200:
            print(f"⚠️当前CK失效!跳过")
            continue
        token = getToken(cookie, r)
        if token is None:
            if num == 1:
                print(f"⚠️车头获取Token失败,退出本程序!")
                sys.exit()
            print(f"⚠️获取Token失败!⏰等待3s")
            time.sleep(3)
            continue
        time.sleep(0.5)
        getActivity()
        time.sleep(0.5)
        userInfo = getUserInfo(shareUserId)
        if not userInfo:
            if num == 1:
                print('⚠️无法获取userInfo,退出本程序!')
                sys.exit()
            time.sleep(2)
            continue
        shopId = userInfo['shopId']
        Token = userInfo['token']
        shopName = userInfo['shopName']
        actName = userInfo['actName']
        joinCodeInfo = userInfo['joinInfo']['joinCodeInfo']
        customerId = userInfo['customerId']
        time.sleep(0.3)
        guestMyself(Token, shareUserId)
        time.sleep(0.3)

        if num == 1:
            print(f"✅ 开启【{actName}】活动")
            print(f"店铺名称:{shopName} {shopId}")
            MSG += f'✅账号[{pt_pin}] 开启{actName}活动\n📝活动地址 {activityUrl.split("&sid=")[0]}\n'
            if shareUserId:
                print(f"CK1准备助力【{shareUserId}】")
            else:
                print(f"未填写助力码,CK1准备助力💨")
            if joinCodeInfo['joinDes'] != '不是会员无法参加':
                print("已经是会员,助力失败!")
                joinCheck(Token)
                time.sleep(0.2)
                inviteNum = getMember(Token, shareUserId)
                time.sleep(0.2)
                inviteSuccNum = inviteNum  # 接口显示已邀请人数
                print(f"🧑‍🤝‍🧑 CK1已邀请{inviteNum}人\n")
                time.sleep(0.2)
                prizeListResponse = prizeList(Token)
                prizeListRecord = []
                prizeNameList = []
                receiveIndex = 0
                index = 0
                try:
                    for prizeitem in prizeListResponse['data']['prizeInfo']:
                        index += 1
                        print(f"🎁 奖品: {prizeitem['prizeName']}, 助力人数: {prizeitem['days']}, 总数:{prizeitem['allNum']}, 剩余:{prizeitem['leftNum']}, ID: {prizeitem['id']}")
                        prizeNameList.append(f"🎁奖品:{prizeitem['prizeName']},助力人数:{prizeitem['days']},总数:{prizeitem['allNum']},剩余:{prizeitem['leftNum']}\n")
                        if prizeitem['leftNum'] > 0:
                            prizeListRecord.append((prizeitem['prizeName'], prizeitem['days'], prizeitem['id']))
                            if "京豆" in prizeitem['prizeName']:
                                receiveIndex += 1
                    MSG += f"🎁当前活动奖品如下: \n{str(''.join(prizeNameList))}\n"
                    print(f"‼️该活动部分有且仅能领取一次奖励,默认自动领最高档豆🎁,或者手动领取\n")
                except:
                    print('⚠️无法获取奖品列表, 退出本程序!')
                    sys.exit()
                if prizeListRecord == []:
                    print('⚠️无奖品可领, 退出本程序!')
                    sys.exit()
                if receiveIndex < 1:
                    receiveIndex = index
                for prizeinfo in prizeListRecord[receiveIndex-1:receiveIndex]:
                    if inviteSuccNum >= prizeinfo[1]:
                        print(f'已达到领取条件, 开始领取 {prizeinfo[0]}')
                        receive_result = receiveAcquire(Token, prizeinfo[2])
                        if receive_result == 0:
                            print(f'🎉🎉 领取奖励成功')
                            MSG += f"🎉成功领取 {prizeinfo[0]}\n"
                        elif receive_result == 60002:
                            print(f'🎉🎉 奖励已经领取过')
                            MSG += f"🎉已经领取过 {prizeinfo[0]}\n"
                        elif receive_result == 60009:
                            print(f'🎉🎉 奖励已经领取过其他奖励或未达到领取标准建议手动领取!')
                            MSG += f"🎉奖励已经领取过其他奖励或未达到领取标准建议手动领取 {prizeinfo[0]}\n"
                        else:
                            print(f'💥💥 领取奖励失败')
                            MSG += f"💥💥 领取奖励失败 {prizeinfo[0]}\n"
                    time.sleep(1.5)
                if inviteSuccNum >= prizeListRecord[receiveIndex-1][1]:
                    print("奖励已领完")
                    MSG += f"🤖奖励已领完\n"
                    if len(cks) > 1:
                        send(title, MSG)
                    sys.exit()
                actorUuid = getUserId(Token)
                time.sleep(0.3)
                if not actorUuid:
                    if num == 1:
                        print(f'⚠️ 无法获取车头邀请码, 退出本程序!')
                        sys.exit()
                print(f"\n后面账号全部助力 {actorUuid}")
                shareUserId = actorUuid
                activityUrl = f"https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10006&activityId={activityId}&shareUserId={shareUserId}&templateId={templateId}&nodeId=101001005&prd=null&sid=c77e8b335974724742827d7c42f951cw&un_area=12_1212_11111_22222"
                continue
            else:
                inviteSuccNum = 0

        if joinCodeInfo['joinDes'] == '不是会员无法参加':
            print(f"未开卡 现在去开卡")
            open_result = bindWithVender(cookie, shopId)
            if open_result is not None:
                if "火爆" in open_result or "失败" in open_result or "解绑" in open_result:
                    print(f"\t💥💥 {open_result}\n‼️助力失败")
                    continue
                else:
                    print(f"\t🎉🎉 {open_result}")
                    if num != 1:
                        inviteSuccNum += 1
                        print(f"🛳已经邀请{inviteSuccNum}人")
                    time.sleep(0.3)
                    joinCheck(Token)
                    time.sleep(0.3)
                    getMember(Token, shareUserId)
                    time.sleep(0.3)
                    prizeListResponse = prizeList(Token)
                    prizeListRecord = []
                    prizeNameList = []
                    receiveIndex = 0
                    index = 0
                    try:
                        for prizeitem in prizeListResponse['data']['prizeInfo']:
                            index += 1
                            if num == 1:
                                print(f"🎁 奖品: {prizeitem['prizeName']}, 助力人数: {prizeitem['days']}, 总数:{prizeitem['allNum']}, 剩余:{prizeitem['leftNum']}, ID: {prizeitem['id']}")
                                prizeNameList.append(f"🎁奖品:{prizeitem['prizeName']},助力人数:{prizeitem['days']},总数:{prizeitem['allNum']},剩余:{prizeitem['leftNum']}\n")
                            if prizeitem['leftNum'] > 0:
                                prizeListRecord.append((prizeitem['prizeName'], prizeitem['days'], prizeitem['id']))
                                if "京豆" in prizeitem['prizeName']:
                                    receiveIndex += 1
                        if prizeNameList:
                            MSG += f"🎁当前活动奖品如下: \n{str(''.join(prizeNameList))}\n"
                            print(f"‼️该活动部分有且仅能领取一次奖励,默认自动领最高档豆🎁,或者手动领取\n")
                    except:
                        print('⚠️无法获取奖品列表, 退出本程序!')
                        sys.exit()
                    if prizeListRecord == []:
                        print('⚠️无奖品可领, 退出本程序!')
                        sys.exit()
                    for prizeinfo in prizeListRecord[receiveIndex - 1:receiveIndex]:
                        if inviteSuccNum >= prizeinfo[1]:
                            print(f'CK1已达到领取条件, 开始领取 {prizeinfo[0]}')
                            time.sleep(0.2)
                            token = getToken(firstCk, r)
                            time.sleep(0.2)
                            getActivity()
                            time.sleep(0.2)
                            Token0 = getUserInfo(shareUserId)['token']
                            receive_result = receiveAcquire(Token0, prizeinfo[2])
                            if receive_result == 0:
                                print(f'🎉🎉 领取奖励成功')
                                MSG += f"🎉成功领取 {prizeinfo[0]}\n"
                            elif receive_result == 60002:
                                print(f'🎉🎉 奖励已经领取过')
                                MSG += f"🎉已经领取过 {prizeinfo[0]}\n"
                            elif receive_result == 60009:
                                print(f'🎉🎉 奖励已经领取过其他奖励或未达到领取标准建议手动领取!')
                                MSG += f"🎉奖励已经领取过其他奖励或未达到领取标准建议手动领取 {prizeinfo[0]}\n"
                            else:
                                print(f'💥💥 领取奖励失败')
                                MSG += f"💥💥 领取奖励失败 {prizeinfo[0]}\n"
                            time.sleep(1.5)
                    if inviteSuccNum >= prizeListRecord[receiveIndex - 1][1]:
                        print("🤖奖励已领完")
                        MSG += f"🤖奖励已领完\n"
                        if len(cks) > 1:
                            send(title, MSG)
                        sys.exit()
                    time.sleep(0.3)
                    if num == 1:
                        actorUuid = getUserId(Token)
                        if not actorUuid:
                            print(f'⚠️无法获取车头邀请码, 退出本程序!')
                            sys.exit()
                        print(f"后面账号全部助力 {actorUuid}")
                        shareUserId = actorUuid
                        activityUrl = f"https://lzkj-isv.isvjcloud.com/prod/cc/interactsaas/index?activityType=10006&activityId={activityId}&shareUserId={shareUserId}&templateId={templateId}&nodeId=101001005&prd=null&sid=c77e8b335974724742827d7c42f951cw&un_area=12_1212_11111_22222"
        else:
            print(f"⛈已开卡,无法完成助力")

        time.sleep(2)