From dd6b2517535dec4df0f13fffdaa018ada7aade4d Mon Sep 17 00:00:00 2001
From: Faker <Faker@apple.com>
Date: Wed, 4 Jan 2023 20:21:39 +0800
Subject: [PATCH] update

---
 jd_inviteFriendsGift.py |   2 +-
 jd_lzkjInteract.py      |   2 +-
 jd_phoneDiscount.py     | 310 +++++++++++++++++++++++++++++++++-------
 jd_wxBirthGifts.py      |   2 +-
 4 files changed, 265 insertions(+), 51 deletions(-)

diff --git a/jd_inviteFriendsGift.py b/jd_inviteFriendsGift.py
index ca7208f..858b76c 100644
--- a/jd_inviteFriendsGift.py
+++ b/jd_inviteFriendsGift.py
@@ -325,7 +325,7 @@ async def main():
                     except IndexError:
                         pin = f'用户{n}'
                     print(f'******开始【京东账号{n}】{pin} *********\n')
-                    for n, numbers in enumerate(needinviteNum, 1):
+                    for i, numbers in enumerate(needinviteNum, 1):
                         for numbers in needdel:
                             if success >= numbers:
                                 print(numbers)
diff --git a/jd_lzkjInteract.py b/jd_lzkjInteract.py
index d12db48..208a29c 100644
--- a/jd_lzkjInteract.py
+++ b/jd_lzkjInteract.py
@@ -28,7 +28,7 @@ try:
 except ImportError as e:
     print(e)
     if "No module" in str(e):
-        print("请先运行HarbourJ库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
+        print("请先运行Faker库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
 try:
     from jdCookie import get_cookies
     getCk = get_cookies()
diff --git a/jd_phoneDiscount.py b/jd_phoneDiscount.py
index 524a385..aa0e4d2 100644
--- a/jd_phoneDiscount.py
+++ b/jd_phoneDiscount.py
@@ -39,8 +39,8 @@ redis_pwd = os.environ.get("redis_pwd") if os.environ.get("redis_pwd") else ""
 baseInfo = os.environ.get("baseInfo") if os.environ.get("baseInfo") else ""
 
 if not baseInfo:
-    print('未设置export baseInfo="品牌编号",默认运行第二个任务brand_two')
-    baseInfo = "LM6HIKdH%2Cbrand_two"
+    print('未设置export baseInfo="品牌编号",默认运行第九个任务brand_ten')
+    baseInfo = "8AHIKfsi%2Cbrand_ten"
 else:
     if baseInfo == "1":
         baseInfo = "HXu94GdF%2Cbrand_one"
@@ -58,8 +58,13 @@ else:
         baseInfo = "ZRco56US%2Cbrand_seven"
     elif baseInfo == "8":
         baseInfo = "4tqyLzac%2Cbrand_eight"
+    elif baseInfo == "9":
+        baseInfo = "PIZ1W0ap%2Cbrand_nine"
+    elif baseInfo == "10":
+        baseInfo = "8AHIKfsi%2Cbrand_ten"
     else:
-        print('export baseInfo="品牌编号"设置有误,默认运行第二个任务brand_two')
+        print('export baseInfo="品牌编号"设置有误,默认运行第九个任务brand_ten')
+        baseInfo = "8AHIKfsi%2Cbrand_ten"
 appKey = baseInfo.split('%2C')[0]
 brand = baseInfo.split('%2C')[1]
 
@@ -232,7 +237,10 @@ def getUserInfo(authToken):
     try:
         code = res['code']
         is_acvite_complete = res['is_acvite_complete']
-        return code, is_acvite_complete
+        user_click_invite = res['user_click_invite']
+        is_invite_complete = res['is_invite_complete']
+        user_new = res['user_new']
+        return code, is_acvite_complete, user_click_invite, is_invite_complete, user_new
     except:
         print(res)
 
@@ -282,6 +290,145 @@ def inviteFriend(inviter_id, authToken):
     res = response.json()
     return res
 
+def invite(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/burying/stat?action=invite&source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers)
+    res = response.json()
+    return res
+
+def inviteFriendNew(inviter_id, authToken):
+    url = "https://sjtx-dz.isvjcloud.com/phone-discount-api/invite_friend_new?source=test&is_share=1"
+    payload = '{"inviter_id":"' + inviter_id + '","channel":2}'
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers, data=payload)
+    res = response.json()
+    return res
+
+def clickHomeGetPrize(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/burying/stat?action=click_home_get_prize&source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers)
+    res = response.json()
+    return res
+
+def clickEffectGetPrize(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/burying/stat?action=click_effect_get_prize&source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers)
+    res = response.json()
+    return res
+
+def homeSendPrizes(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/phone-discount-api/home_send_prizes?source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers)
+    res = response.json()
+    return res
+
+def clickCouponSenPrize(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/burying/stat?action=click_coupon_send_prize&source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    response = requests.request("POST", url, headers=headers)
+    res = response.json()
+    return res
+
+def userClickInvite(authToken):
+    url = f"https://sjtx-dz.isvjcloud.com/phone-discount-api/user_click_invite?source=test&is_share=1"
+    headers = {
+        'Host': 'sjtx-dz.isvjcloud.com',
+        'Accept': 'application/json, text/plain, */*',
+        'App-Key': appKey,
+        'Authorization': f'Bearer {authToken}',
+        'brand': brand,
+        'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
+        'Accept-Encoding': 'gzip, deflate, br',
+        'Content-Type': 'application/json',
+        'Origin': 'https://sjtx-dz.isvjcloud.com',
+        'User-Agent': ua,
+        'Referer': activityUrl,
+        'Connection': 'keep-alive'
+    }
+    requests.request("POST", url, headers=headers)
+
 def inviteDrawPrize(invite_type, authToken):
     url = "https://sjtx-dz.isvjcloud.com/phone-discount-api/invite_draw_prize?source=test&is_share=1"
     payload = '{"invite_type":' + invite_type + '}'
@@ -313,16 +460,19 @@ if __name__ == '__main__':
     except:
         print("未获取到有效COOKIE,退出程序!")
         sys.exit()
-    global shareUuid, inviteSuccNum, activityUrl, firstCk
+    global shareUuid, inviteSuccNum, activityUrl, firstCk, allCookies
     inviteSuccNum = 0
     try:
         shareUuid = remote_redis(brand, 1)
+        if not shareUuid:
+            shareUuid = "63ad1171068bd98098"
     except:
         shareUuid = "63ad1171068bd98098"
     activityUrl = f"https://sjtx-dz.isvjcloud.com/phone_discount/?invite_id={shareUuid}&source=test&baseInfo={baseInfo}"
+    allCookies = cks
 
     num = 0
-    for cookie in cks[:]:
+    for cookie in allCookies:
         num += 1
         if num == 1:
             firstCk = cookie
@@ -355,8 +505,11 @@ if __name__ == '__main__':
         authToken = getAuth()
         if not authToken:
             if num == 1:
+                print("‼️车头为火爆号,换车头重新运行!")
                 sys.exit()
             else:
+                print("📝移除火爆账号")
+                allCKs.remove()
                 time.sleep(1.5)
                 continue
         time.sleep(0.2)
@@ -368,7 +521,9 @@ if __name__ == '__main__':
                 time.sleep(1.5)
                 continue
         shareUuid1 = userInfo[0]
+        print(f"🤖助力码: {shareUuid1}")
         is_acvite_complete = userInfo[1]
+        user_new = userInfo[4]
         time.sleep(0.2)
         if num == 1:
             inviteSuccNum = len(getFriendList(authToken))
@@ -378,46 +533,43 @@ if __name__ == '__main__':
                     invite_type = i + 1
                     print(f"开始第{invite_type}次抽奖")
                     drawPrize = inviteDrawPrize(str(invite_type), authToken)
-                    if "prize_info" not in drawPrize:
-                        print(drawPrize['message'])
-                    else:
-                        prize_info = f"{drawPrize['prize_info']['user_prize']['prize_name']}{drawPrize['prize_info']['user_prize']['prize_info']['quota']}"
-                        print(f"🎁抽奖获得:{prize_info}")
+                    try:
+                        if "prize_info" not in drawPrize:
+                            print(drawPrize['message'])
+                        else:
+                            prize_info = f"{drawPrize['prize_info']['user_prize']['prize_name']} {drawPrize['prize_info']['user_prize']['prize_info']['quota']}"
+                            print(f"🎁抽奖获得:{prize_info}")
+                    except:
+                        print(f"抽奖结果: {drawPrize}")
                 sys.exit()
         time.sleep(0.2)
-        inviteInfo = inviteFriend(shareUuid, authToken)
-        if "prize_info" not in inviteInfo:
-            print(inviteInfo['message'])
-            if "已达到好友邀请上限" in inviteInfo['message']:
-                if num == 1:
-                    shareUuid = shareUuid1
-                    activityUrl = f"https://sjtx-dz.isvjcloud.com/phone_discount/?invite_id={shareUuid}&source=test&baseInfo={baseInfo}"
-                    print(f"🤖后面的号全部助力: {shareUuid}")
-                    continue
+        if user_new == 1: # 新用户
+            invite(authToken)
+            time.sleep(0.2)
+            inviteNewInfo = inviteFriendNew(shareUuid, authToken)
+            if "prize_info" in inviteNewInfo:
+                prize_info = [f"{x['user_prize']['prize_name']}{x['user_prize']['prize_info']['quota']}个" for x in inviteNewInfo['prize_info']]
+                if prize_info:
+                    print(f"🎁获得{','.join(prize_info)}")
                 else:
-                    token = getToken(firstCk, r)
-                    time.sleep(0.2)
-                    getActivity()
-                    time.sleep(0.2)
-                    authToken0 = getAuth()
-                    time.sleep(0.2)
-                    getUserInfo(authToken0)
-                    time.sleep(0.2)
-                    for i in range(2):
-                        invite_type = i + 1
-                        print(f"开始第{invite_type}次抽奖")
-                        drawPrize0 = inviteDrawPrize(str(invite_type), authToken0)
-                        if "prize_info" not in drawPrize0:
-                            print(drawPrize0['message'])
-                        else:
-                            prize_info = f"{drawPrize0['prize_info']['user_prize']['prize_name']}{drawPrize0['prize_info']['user_prize']['prize_info']['quota']}"
-                            print(f"🎁抽奖获得:{prize_info}")
-                    sys.exit()
-        else:
-            inviteSuccNum += 1
-            print(f"🎉助力成功!已邀请{inviteSuccNum}人")
-            prize_info = [f"{x['user_prize']['prize_name']}{x['user_prize']['prize_info']['quota']}个" for x in inviteInfo['prize_info']]
-            print(f"🎁获得{','.join(prize_info)}")
+                    print("来晚了没水了💨💨💨")
+                inviteSuccNum += 1
+                print(f"🎉助力成功!已邀请{inviteSuccNum}人")
+            else:
+                print(inviteNewInfo['message'])
+                clickHomeGetPrize(authToken)
+                time.sleep(0.2)
+                clickEffectGetPrize(authToken)
+                time.sleep(0.2)
+                homePrizes = homeSendPrizes(authToken)
+                if "prize_info" in homePrizes:
+                    prize_info = [f"{x['user_prize']['prize_name']}{x['user_prize']['prize_info']['quota']}个" for x in homePrizes['prize_info']]
+                    print(f"🎁获得{','.join(prize_info)}")
+                else:
+                    print(homePrizes)
+            time.sleep(0.2)
+            userClickInvite(authToken)
+
             if inviteSuccNum >= 10:
                 token = getToken(firstCk, r)
                 time.sleep(0.2)
@@ -431,12 +583,74 @@ if __name__ == '__main__':
                     invite_type = i + 1
                     print(f"开始第{invite_type}次抽奖")
                     drawPrize0 = inviteDrawPrize(str(invite_type), authToken0)
-                    if "prize_info" not in drawPrize0:
-                        print(drawPrize0['message'])
-                    else:
-                        prize_info = f"{drawPrize0['prize_info']['user_prize']['prize_name']}{drawPrize0['prize_info']['user_prize']['prize_info']['quota']}"
-                        print(f"🎁抽奖获得:{prize_info}")
+                    try:
+                        if "prize_info" not in drawPrize0:
+                            print(drawPrize0['message'])
+                        else:
+                            prize_info = f"{drawPrize0['prize_info']['user_prize']['prize_name']}{drawPrize0['prize_info']['user_prize']['prize_info']['quota']}"
+                            print(f"🎁抽奖获得:{prize_info}")
+                    except:
+                        print(drawPrize0)
                 sys.exit()
+        else:
+            inviteInfo = inviteFriend(shareUuid, authToken)
+            if "prize_info" not in inviteInfo:
+                print(inviteInfo['message'])
+                if "已达到好友邀请上限" in inviteInfo['message']:
+                    if num == 1:
+                        shareUuid = shareUuid1
+                        activityUrl = f"https://sjtx-dz.isvjcloud.com/phone_discount/?invite_id={shareUuid}&source=test&baseInfo={baseInfo}"
+                        print(f"🤖后面的号全部助力: {shareUuid}")
+                        continue
+                    else:
+                        token = getToken(firstCk, r)
+                        time.sleep(0.2)
+                        getActivity()
+                        time.sleep(0.2)
+                        authToken0 = getAuth()
+                        time.sleep(0.2)
+                        getUserInfo(authToken0)
+                        time.sleep(0.2)
+                        for i in range(2):
+                            invite_type = i + 1
+                            print(f"开始第{invite_type}次抽奖")
+                            drawPrize0 = inviteDrawPrize(str(invite_type), authToken0)
+                            try:
+                                if "prize_info" not in drawPrize0:
+                                    print(drawPrize0['message'])
+                                else:
+                                    prize_info = f"{drawPrize0['prize_info']['user_prize']['prize_name']}{drawPrize0['prize_info']['user_prize']['prize_info']['quota']}"
+                                    print(f"🎁抽奖获得:{prize_info}")
+                            except:
+                                print(drawPrize0)
+                        sys.exit()
+            else:
+                inviteSuccNum += 1
+                print(f"🎉助力成功!已邀请{inviteSuccNum}人")
+                prize_info = [f"{x['user_prize']['prize_name']}{x['user_prize']['prize_info']['quota']}个" for x in inviteInfo['prize_info']]
+                print(f"🎁获得{','.join(prize_info)}")
+                if inviteSuccNum >= 10:
+                    token = getToken(firstCk, r)
+                    time.sleep(0.2)
+                    getActivity()
+                    time.sleep(0.2)
+                    authToken0 = getAuth()
+                    time.sleep(0.2)
+                    getUserInfo(authToken0)
+                    time.sleep(0.2)
+                    for i in range(2):
+                        invite_type = i + 1
+                        print(f"开始第{invite_type}次抽奖")
+                        drawPrize0 = inviteDrawPrize(str(invite_type), authToken0)
+                        try:
+                            if "prize_info" not in drawPrize0:
+                                print(drawPrize0['message'])
+                            else:
+                                prize_info = f"{drawPrize0['prize_info']['user_prize']['prize_name']}{drawPrize0['prize_info']['user_prize']['prize_info']['quota']}"
+                                print(f"🎁抽奖获得:{prize_info}")
+                        except:
+                            print(drawPrize0)
+                    sys.exit()
         if num == 1:
             shareUuid = shareUuid1
             activityUrl = f"https://sjtx-dz.isvjcloud.com/phone_discount/?invite_id={shareUuid}&source=test&baseInfo={baseInfo}"
diff --git a/jd_wxBirthGifts.py b/jd_wxBirthGifts.py
index 9e520b2..1bcd735 100644
--- a/jd_wxBirthGifts.py
+++ b/jd_wxBirthGifts.py
@@ -26,7 +26,7 @@ try:
 except ImportError as e:
     print(e)
     if "No module" in str(e):
-        print("请先运行HarbourJ库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
+        print("请先运行Faker库依赖一键安装脚本(jd_check_dependent.py),安装jd_sign.so依赖")
     sys.exit()
 try:
     from jdCookie import get_cookies