334 lines
13 KiB
Python
334 lines
13 KiB
Python
# Source: https://github.com/xfmeng970526/ql/blob/main/dyjsb.py
|
||
# Raw: https://raw.githubusercontent.com/xfmeng970526/ql/main/dyjsb.py
|
||
# Repo: xfmeng970526/ql
|
||
# Path: dyjsb.py
|
||
# UploadedAt: 2023-09-20T12:13:28+08:00
|
||
# SHA256: dc2d656ed2929b83200d5146d506918b9e802caab9bf01654affd1e94ca61562
|
||
# Category: web版/抓包
|
||
# Evidence: web/H5关键词 + cookie/token/header
|
||
|
||
"""
|
||
cron: * 37 0-23 * * *
|
||
new Env('104-抖音极速版');
|
||
项目名称:抖音极速版
|
||
安卓正常跑,不支持苹果
|
||
改自by Pearson大佬,修复安卓
|
||
开宝箱,宝箱广告,视频广告,走路
|
||
6.13
|
||
url是链接?后面的
|
||
变量名(dyjsb) url#cookie#x-argus#x-ladon
|
||
多账号@
|
||
ua换成自己的
|
||
"""
|
||
ua = "com.ss.android.ugc.aweme.lite/250101 (Linux; U; Android 10; zh_CN_#Hans; LRA-AL00; Build/HONORLRA-AL00;tt-ok/3.12.13.1)"
|
||
|
||
import sys
|
||
import os
|
||
from urllib.parse import unquote
|
||
import time
|
||
import random
|
||
import base64
|
||
import requests
|
||
import json
|
||
import threading
|
||
try:
|
||
from notify import send
|
||
except:
|
||
print("upload notify failed")
|
||
|
||
cookies = os.getenv("dyjsb")
|
||
|
||
log_content = ''
|
||
|
||
class LoggerWriter:
|
||
def __init__(self, level):
|
||
self.level = level
|
||
|
||
def write(self, message):
|
||
global log_content
|
||
self.level.write(message)
|
||
log_content += message
|
||
|
||
def flush(self):
|
||
return None
|
||
|
||
sys.stdout = LoggerWriter(sys.stdout)
|
||
|
||
class DY:
|
||
def __init__(self, cookie):
|
||
self.url = cookie.split("#")[0]
|
||
self.cookie = cookie.split("#")[1]
|
||
self.argus = cookie.split("#")[2]
|
||
self.ladon = cookie.split("#")[3]
|
||
self.nickname = self.get_nickname()
|
||
|
||
def run(self):
|
||
self.get_info()
|
||
self.sign_in()
|
||
time.sleep(1.5)
|
||
self.read()
|
||
time.sleep(1.5)
|
||
self.open_box()
|
||
print(f"•••准备看广告,假装看15s•••")
|
||
time.sleep(random.randint(20, 30))
|
||
self.box_ad()
|
||
self.detail_info()
|
||
time.sleep(random.randint(20, 30))
|
||
self.detail_ad()
|
||
step = self.get_step()
|
||
time.sleep(0.5)
|
||
self.read()
|
||
time.sleep(1.5)
|
||
self.upload_step(step)
|
||
self.step_reward()
|
||
|
||
def sign_in(self):
|
||
try:
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/done/sign_in?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Content-Length': '22',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon,
|
||
'Content-Type': 'text/plain'}
|
||
payload = base64.b64decode("ewogICJpbl9zcF90aW1lIiA6IDAKfQ==")
|
||
response = requests.request("POST", url=url, headers=headers, data=payload)
|
||
qdcg = f"[{self.nickname}]签到成功,获取金币{response.json().get('data').get('amount')}"
|
||
print(qdcg)
|
||
except:
|
||
qdsb = "签到失败,可能今日已签到"
|
||
print(qdsb)
|
||
def get_info(self):
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/page?{self.url}"
|
||
headers = {'Host': 'api5-normal-c-lq.amemv.com',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua}
|
||
response = requests.request("GET", url=url, headers=headers)
|
||
if response.json().get("data").get("is_login"):
|
||
dlcg = f"[{self.nickname}]登录成功\n" f"[{self.nickname}]今日金币{response.json().get('data').get('income_data').get('amount1')}"
|
||
print(dlcg)
|
||
|
||
def get_nickname(self):
|
||
now = str(time.time()).replace(".", "")[:10]
|
||
url = f"https://api5-core-c-lf.amemv.com/aweme/v1/user/profile/self/?{self.url}"
|
||
headers = {'Host': 'api5-normal-c-lq.amemv.com',
|
||
'Content-Type': 'application/json; encoding=utf-8',
|
||
'Accept': 'application/json',
|
||
'tt-request-time': now,
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon,
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua}
|
||
payload = None
|
||
try:
|
||
response = requests.request("GET", url=url, headers=headers, data=payload)
|
||
i = 1
|
||
for cookie in cookies:
|
||
nickname = f"账号{i}"
|
||
# nickname = response.json().get("user").get("nickname")
|
||
return nickname
|
||
except:
|
||
hqyfmsb = "获取用户名失败"
|
||
print(hqyhmsb)
|
||
|
||
def read(self):
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/done/read?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Content-Length': '22',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon,
|
||
'Content-Type': 'text/plain'}
|
||
payload = base64.b64decode("ewogICJpbl9zcF90aW1lIiA6IDAsCiAgInRhc2tfa2V5IiA6ICJyZWFkIgp9")
|
||
response = requests.request("POST", url=url, headers=headers, data=payload)
|
||
if response.json().get("err_tips") == "成功":
|
||
sspjl = f"[{self.nickname}]刷视频奖励--{response.json().get('data').get('score_amount')}"
|
||
print(sspjl)
|
||
|
||
|
||
|
||
def open_box(self):
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/done/treasure_task?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Content-Length': '22',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon,
|
||
'Content-Type': 'text/plain'}
|
||
payload = base64.b64decode("ewogICJpbl9zcF90aW1lIiA6IDAKfQ==")
|
||
response = requests.request("POST", url=url, headers=headers, data=payload)
|
||
if response.json().get("err_tips") == "成功":
|
||
kbxjljb = f"[{self.nickname}]开宝箱奖励金币--{response.json().get('data').get('amount')}"
|
||
print(kbxjljb)
|
||
elif response.json().get("err_no") == 10006:
|
||
cw1 = response.json().get("err_tips")
|
||
print(cw1)
|
||
else:
|
||
kbx = "开宝箱"+response.text
|
||
print(kbx)########
|
||
|
||
def box_ad(self):
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/done/excitation_ad_treasure_box?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon}
|
||
response = requests.request("POST", url=url, headers=headers)
|
||
if response.json().get("err_tips") == "成功":
|
||
kbxgg = f"[{self.nickname}]看宝箱广告--{response.json().get('data').get('amount')}"
|
||
print(kbxgg)
|
||
elif response.json().get("err_no") == 10006:
|
||
cw2 = response.json().get("err_tips")
|
||
print(cw2)
|
||
else:
|
||
bxgg = "宝箱广告"+response.text
|
||
print(bxgg)#########
|
||
|
||
def detail_info(self):
|
||
now = str(time.time()).replace(".", "")[:13]
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/sign_in/detail?{self.url}"
|
||
headers = {'Host': 'api5-normal-c-lq.amemv.com',
|
||
'Content-Type': 'application/json; encoding=utf-8',
|
||
'Accept': 'application/json',
|
||
'tt-request-time': now,
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon,
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua}
|
||
response = requests.request("GET", url=url, headers=headers)
|
||
score_amount = response.json().get("data").get("calendar_reminder_button").get("score_amount")
|
||
if response.json().get("err_tips") == "成功":
|
||
hqggspcg = f"[{self.nickname}]获取广告视频成功,预计获得{score_amount},假装看15秒"
|
||
print(hqggspcg)
|
||
|
||
else:
|
||
hqggsp = "获取广告视频"+response.text
|
||
print(hqggsp)
|
||
def detail_ad(self):
|
||
now = str(time.time()).replace(".", "")[:13]
|
||
url = f"https://api3-normal-c.amemv.com/luckycat/aweme/v1/task/done/excitation_ad?{self.url}"
|
||
headers = {
|
||
'Host': 'api3-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '203100',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon}
|
||
response = requests.request("POST", url=url, headers=headers)
|
||
if response.json().get("err_tips") == "成功":
|
||
kspjljbcg = f"[{self.nickname}]看视频奖励金币成功--{response.json().get('data').get('amount')}"
|
||
print(kspjljbcg)
|
||
else:
|
||
kspjl = "看视频奖励"+response.text
|
||
print(kspjl)
|
||
|
||
def get_step(self):
|
||
now = str(time.time()).replace(".", "")[:13]
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/walk/page?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon}
|
||
response = requests.request("GET", url=url, headers=headers)
|
||
if response.json().get("err_tips") == "成功":
|
||
step = response.json().get("data").get("continue_walk_list")[0].get("step")
|
||
dqbs = f"[{self.nickname}]当前步数{step}"
|
||
print(dqbs)
|
||
return step
|
||
else:
|
||
zlcc = "走路出错"
|
||
print(zlcc)
|
||
|
||
def upload_step(self, steps):
|
||
now = str(time.time()).replace(".", "")[:10]
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/walk/step_submit?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon}
|
||
step = random.randint(steps, steps+1200)
|
||
payload = {"step": step,
|
||
"submit_time": int(now),
|
||
"in_sp_time": 0}
|
||
payload = json.dumps(payload)
|
||
response = requests.request("POST", url=url, headers=headers, data=payload)
|
||
if response.json().get("err_tips") == "成功":
|
||
scbscg = f"[{self.nickname}]上传步数成功,当前步数--{response.json().get('data').get('today_step')}"
|
||
print(scbscg)
|
||
|
||
def step_reward(self):
|
||
now = str(time.time()).replace(".", "")[:13]
|
||
url = f"https://api5-normal-c-lf.amemv.com/luckycat/aweme/v1/task/walk/receive_step_reward?{self.url}"
|
||
headers = {
|
||
'Host': 'api5-normal-c-lf.amemv.com',
|
||
'Connection': 'keep-alive',
|
||
'Accept': 'application/json',
|
||
'Cookie': self.cookie,
|
||
'User-Agent': ua,
|
||
'passport-sdk-version': '5.12.1',
|
||
'X-Argus': self.argus,
|
||
'X-Ladon': self.ladon}
|
||
payload = base64.b64decode("ewogICJpbl9zcF90aW1lIiA6IDAKfQ==")
|
||
response = requests.request("POST", url=url, headers=headers, data=payload)
|
||
if response.json().get("err_tips") == "成功":
|
||
lcbsjlcg = f"[{self.nickname}]领取步数奖励成功--{response.json().get('data').get('reward_amount')}"
|
||
print(lcbsjlcg)
|
||
elif response.json().get("err_no") == 10009:
|
||
cw3 = response.json().get("err_tips")
|
||
print(cw3)
|
||
else:
|
||
xywb = response.text
|
||
print(xywb)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
cookies = cookies.split("@")
|
||
dyjsbghqd = f"抖音极速版共获取到{len(cookies)}个账号,偷撸冲"
|
||
print(dyjsbghqd)
|
||
i = 1
|
||
for cookie in cookies:
|
||
print(f"\n---开始第{i}个账号---")
|
||
i += 1
|
||
DY(cookie).run()
|
||
print("\n随机等待30s进行下一个账号")
|
||
time.sleep(random.randint(30,60))
|
||
|
||
# 在所有账号循环处理完成后,将所有输出内容推送
|
||
if len(cookies) > 0:
|
||
send('抖音极速版', log_content)
|
||
|
||
# 推送消息完成后,立即退出程序
|
||
sys.exit(0)
|