import
re
import
time
import
datetime
import
random
import
json
import
sys
import
logging
import
requests
print
(sys.stdout.encoding)
print
(time.strftime(
"%Y-%m-%d %H:%M:%S"
, time.localtime()))
import
codecs
A_Token_Header_13400004460
=
'MCBKVVRRV0ZCH0INXVdaIRZSVFM='
A_Token_Header_19965412404
=
'JS9bV1BQV0RLH0INWFUNIUgFVwc='
A_Token_Header_17157725704
=
'JiZAVVZQU0tKH0INWlBdck1UBlA='
A_Token_Header_zxg
=
'PTtWUFdWUkBFHEVZCVcNdUtVWwdc'
Cookie_13400004460
=
'UM_distinctid=16947f46ccd79-0e531e04caae4e8-73275048-4a640-16947f46cce2e2; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216947f46ccd79-0e531e04caae4e8-73275048-4a640-16947f46cce2e2%22%2C%22sp%22%3A%20%7B%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D%2C%22initial_view_time%22%3A%20%221551686237%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24_sessionid%22%3A%20402%2C%22%24_sessionTime%22%3A%201554368804%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201554368804%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=1035459509-1551686237-%7C1554367164; _ga=GA1.2.1747575593.1553400628'
Cookie_19965412404
=
'UM_distinctid=16a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee%22%2C%22%24_sessionid%22%3A%20121%2C%22%24_sessionTime%22%3A%201555477452%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201555477452%2C%22initial_view_time%22%3A%20%221555058837%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=808150895-1555058837-%7C1555475042; _ga=GA1.2.1602188260.1555309467; _gid=GA1.2.58736974.1555309467'
Cookie_17157725704
=
'UM_distinctid=16a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee; cn_1276022107_dplus=%7B%22distinct_id%22%3A%20%2216a10c4e1e8f2-0c66e08b0b85348-7229504a-4a640-16a10c4e1ebee%22%2C%22%24_sessionid%22%3A%20667%2C%22%24_sessionTime%22%3A%201557585874%2C%22%24dp%22%3A%200%2C%22%24_sessionPVTime%22%3A%201557585874%2C%22initial_view_time%22%3A%20%221555058837%22%2C%22initial_referrer%22%3A%20%22%24direct%22%2C%22initial_referrer_domain%22%3A%20%22%24direct%22%2C%22%24recent_outside_referrer%22%3A%20%22%24direct%22%7D; CNZZDATA1276022107=808150895-1555058837-%7C1557583689; _ga=GA1.2.1602188260.1555309467; _gid=GA1.2.1233231256.1557556594'
Cookie_zxg
=
''
UUID_13400004460
=
'472251'
UUID_19965412404
=
'633278'
UUID_17157725704
=
'453689'
UUID_zxg
=
'1457362'
api_
=
'https://king.hddgood.com/king_api/v1/'
king_daily_sign
=
'king/daily_sign'
king_daily_luckydraw
=
'king/daily_luckydraw'
coin_offline_check
=
'coin/offline_check'
coin_lucky_draw
=
'coin/lucky_draw'
api_coin_lucky_extra
=
'coin/lucky_draw_extra'
class
QuXiaoChuUser():
headers
=
{
'Host'
:
'king.hddgood.com'
,
'Accept'
:
'application/json, text/plain, */*'
,
'Accept-Language'
:
'zh-cn'
,
'Origin'
:
'https://king.hddgood.com'
,
'User-Agent'
:
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57/; quxiaochu/ios v1.1.2'
,
'Referer'
:
'https://king.hddgood.com/'
}
data
=
{
'uid'
: '',
'channel'
: '',
'version'
:
'1.1.2'
,
'os'
:
'ios'
,
'web_ver'
:
'20190261'
}
SLEEP
=
0.5
def
__init__(
self
, uid, token_header, cookie):
self
.uid
=
uid
self
.headers
=
dict
(QuXiaoChuUser.headers)
self
.headers[
'A-Token-Header'
]
=
token_header
self
.token_header
=
token_header
self
.headers[
'Cookie'
]
=
cookie
def
zhifubao(
self
):
print
(
"提取到支付宝 {} "
.
format
(
self
.uid))
data
=
self
._uid_data()
data[
'amount'
]
=
'10'
data[
'account'
]
=
'13400004460'
data[
'real_name'
]
=
'xxx'
api
=
self
._genapi(
'king/withdraw'
)
return
self
._post(api,
self
.headers, data)
def
fetch_captcha(
self
, phone):
print
(
"获取验证码 {}"
.
format
(phone))
data
=
{
'acc'
: phone
}
api
=
self
._genapi(
'user/captcha/fetch_captcha'
)
result
=
self
._post(api,
self
.headers, data)
def
userinfo(
self
):
print
(
"获取用户信息 {}"
.
format
(
self
.uid))
data
=
self
.data
data[
'uid'
]
=
self
.uid
api
=
self
._genapi(
'king/userinfo'
)
result
=
self
._post(api,
self
.headers, data)
result
=
json.loads(result)
coin
=
result[
'result'
][
'coin'
]
acc
=
result[
'result'
][
'acc'
]
nick
=
result[
'result'
][
'nick'
]
print
(
'{} - {} - 金币数量:{}'
.
format
(acc, nick, coin))
def
lucky_draw_info(
self
):
print
(
"获取大转盘的次数情况信息 {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(
'coin/lucky_draw_info'
)
return
self
._post(api,
self
.headers, data)
def
king_daily_info(
self
):
print
(
"获取签到情况信息 {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(
'king/daily_info'
)
return
self
._post(api,
self
.headers, data)
def
sign(
self
):
print
(
"sign {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(king_daily_sign)
self
._post(api,
self
.headers, data)
print
(
"收集签到的金币 {}"
.
format
(
self
.uid))
api
=
self
._genapi(king_daily_luckydraw)
return
self
._post(api,
self
.headers, data)
def
offline(
self
):
print
(
"离线金币 {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(coin_offline_check)
return
self
._post(api,
self
.headers, data)
def
coin_lucky(
self
):
print
(
"大转盘Go {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(coin_lucky_draw)
return
self
._post(api,
self
.headers, data)
def
coin_lucky_extra(
self
, index):
print
(
"大转盘Go {} 额外{}"
.
format
(
self
.uid, index))
data
=
self
._uid_data()
data[
'index'
]
=
index
api
=
self
._genapi(api_coin_lucky_extra)
return
self
._post(api,
self
.headers, data)
def
rob_history(
self
):
print
(
"世界抢夺被抢夺记录 {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
data[
'ps'
]
=
'100'
data[
'pn'
]
=
'1'
api
=
self
._genapi(
'rob/history'
)
result
=
self
._post(api,
self
.headers, data)
result
=
json.loads(result)
return
result
def
rob_rob(
self
, target_id, old_id
=
''):
print
(
'抢夺对象 {}'
.
format
(target_id))
data
=
self
._uid_data()
data[
'target'
]
=
target_id
data[
'old_id'
]
=
old_id
data[
'result'
]
=
'true'
api
=
self
._genapi(
'rob/rob'
)
self
._post(api,
self
.headers, data)
def
rob(
self
):
print
(
"世界抢夺 {}"
.
format
(
self
.uid))
data
=
self
._uid_data()
api
=
self
._genapi(
'rob/info'
)
result
=
self
._post(api,
self
.headers, data)
result
=
json.loads(result)
times
=
result[
'result'
][
'times_left'
]
if
times >
0
:
print
(
'还有抢夺机会 {}次'
.
format
(result[
'result'
][
'times_left'
]))
api
=
self
._genapi(
'rob/fetch_target'
)
result
=
self
._post(api,
self
.headers, data)
result
=
json.loads(result)
if
result[
'success'
]
=
=
False
:
return
targets
=
[]
for
person
in
result[
'result'
]:
if
person[
'result'
] !
=
1
and
person[
'balance'
] >
150
:
targets.append(person[
'uid'
])
print
(targets)
c
=
min
(times,
len
(targets))
for
i
in
range
(c):
self
.rob_rob(targets[i])
def
rest_super_brain(
self
):
print
(
"最强大脑 - 共100关 {} "
.
format
(
self
.uid))
data
=
{}
api
=
self
._genapi(
"rest/game_report2?uid="
+
self
.uid
+
r
'¶m={"type":"M","result":true}'
)
return
self
._post(api,
self
.headers, data)
def
rest_pingtu(
self
):
print
(
"六边形拼图 {} "
.
format
(
self
.uid))
data
=
{}
gameid
=
{
"472251"
:
"H5579905"
,
"633278"
:
"H5584802"
,
"453689"
:
"H6273236"
,
}
api
=
self
._genapi(
"rest/game_report2?uid="
+
self
.uid
+
r
'¶m={"type":"H","mode":"endless","gameid":"'
+
gameid[
self
.uid]
+
r
'","data":"ST_Hex_Blocks_Puzzle_FFIGZ_ls_=0,ST_Hex_Blocks_Puzzle_FHPRG_RST_ls_=1555320439.099,ST_Hex_Blocks_Puzzle_FHPRG_ls_=0,ST_Hex_Blocks_Puzzle_HUSD_ls_=0,ST_Hex_Blocks_Puzzle_LC_ls_=5,ST_Hex_Blocks_Puzzle_NM_HNT_ls_=5,ST_Hex_Blocks_Puzzle_TDIFF_ls_=2,ST_Hex_Blocks_Puzzle_THUSD_ls_=0,ST_Hex_Blocks_Puzzle_TLE_ls_=6,ST_Hex_Blocks_Puzzle_TLH_ls_=1,ST_Hex_Blocks_Puzzle_TLM_ls_=2,ST_Hex_Blocks_Puzzle_aUorI_ls_=1,ST_Hex_Blocks_Puzzle_lang_ls_=1,ST_Hex_Blocks_Puzzle_music_is_on_ls_=1,ST_Hex_Blocks_Puzzle_sound_is_on_ls_=1"}'
)
return
self
._post(api,
self
.headers, data)
def
rest_xiaopaoer(
self
, level):
print
(
"小炮儿大作战 - 共50关 {} "
.
format
(
self
.uid))
data
=
{}
api
=
self
._genapi(
"rest/game_report2?uid="
+
self
.uid
+
r
'¶m={"type":"S","mode":"upgrade","level":'
+
str
(level)
+
r
',"score":4000,"result":true}'
)
return
self
._post(api,
self
.headers, data)
def
rest_guodong(
self
, level):
print
(
"果冻消消消 - 共150关 {} "
.
format
(
self
.uid))
data
=
{}
api
=
self
._genapi(
"rest/game_report2?uid="
+
self
.uid
+
r
'¶m={"type":"J","level":'
+
str
(level)
+
r
',"score":100000,"result":true}'
)
return
self
._post(api,
self
.headers, data)
def
rest_archery(
self
, level):
print
(
"拇指射箭 - 共50关 {} "
.
format
(
self
.uid))
data
=
{}
api
=
self
._genapi(
"rest/game_report2?uid="
+
self
.uid
+
r
'¶m={"type":"A","mode":"upgrade","level":'
+
str
(level)
+
r
',"score":17,"result":true'
+
r
',"data":"1,4,10,4,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}'
)
return
self
._post(api,
self
.headers, data)
def
_uid_data(
self
):
return
{
'uid'
:
self
.uid}
@staticmethod
def
_genapi(path):
return
'https://king.hddgood.com/king_api/v1/'
+
path
@staticmethod
def
_post(api, headers, data, p
=
logging.warning):
time.sleep(QuXiaoChuUser.SLEEP)
res
=
requests.post(api, headers
=
headers, data
=
data)
print
(res.url)
result
=
res.text
print
(result)
print
('')
return
result
@staticmethod
def
_need_sign(j):
import
json
d
=
json.loads(j)
if
d[
"code"
]
=
=
"200"
:
result
=
d[
"result"
]
sign
=
result[
"sign"
]
index
=
result[
"hour_index"
]
return
sign[index]
=
=
'0'
else
:
return
True
@staticmethod
def
_need_go(j):
import
json
d
=
json.loads(j)
if
d[
"code"
]
=
=
"200"
:
result
=
d[
"result"
]
total
=
result[
"times_total"
]
left
=
result[
"times_left"
]
extra
=
result[
"extra"
]
need
=
[i
for
i, v
in
enumerate
(
extra)
if
v !
=
1
and
(total
-
left) > (i
+
1
)
*
5
]
return
(left !
=
0
, need)
else
:
return
(
True
, [
0
,
1
,
2
,
3
])
def
rob_back(user: QuXiaoChuUser):
result
=
user.rob_history()
for
item
in
result[
'result'
]:
print
(item[
'robber'
], item[
'id'
])
if
item[
'strike_back'
]
=
=
None
:
user.rob_rob(item[
'robber'
], item[
'id'
])
def
is_phone_ok():
fake
=
QuXiaoChuUser(UUID_17157725704, A_Token_Header_17157725704, Cookie_17157725704)
with
open
(
'/Users/zhoujie/Desktop/phone.text'
) as f:
for
line
in
f:
if
len
(line)
=
=
12
:
fake.fetch_captcha(line)
time.sleep(
3
)
def
hourly_sign(user: QuXiaoChuUser):
result
=
user.king_daily_info()
if
user._need_sign(result):
print
(
'需要签到'
)
user.sign()
else
:
print
(
'不需要签到'
)
def
lucky(user: QuXiaoChuUser):
result
=
user.lucky_draw_info()
result
=
user._need_go(result)
if
result[
0
]:
user.coin_lucky()
else
:
print
(
'没有转盘抽奖机会了'
)
for
index
in
result[
1
]:
user.coin_lucky_extra(index)
def
rest_games(user: QuXiaoChuUser):
pass
return
for
i
in
range
(
1
,
101
):
print
(
'---'
, i)
user.rest_super_brain()
for
level
in
range
(
1
,
51
):
user.rest_xiaopaoer(level)
time.sleep(
1
)
for
level
in
range
(
1
,
51
):
user.rest_archery(level)
time.sleep(
1
)
for
level
in
range
(
1
,
151
):
user.rest_guodong(level)
time.sleep(
1
)
def
auto_fetch_money(user: QuXiaoChuUser):
pass
def
genUsers():
yield
QuXiaoChuUser(UUID_13400004460, A_Token_Header_13400004460, Cookie_13400004460)
yield
QuXiaoChuUser(UUID_19965412404, A_Token_Header_19965412404, Cookie_19965412404)
yield
QuXiaoChuUser(UUID_17157725704, A_Token_Header_17157725704, Cookie_17157725704)
yield
QuXiaoChuUser(UUID_zxg, A_Token_Header_zxg, Cookie_zxg)
if
__name__
=
=
"__main__"
:
for
user
in
genUsers():
print
(
'\033[1;31m---------------------------\033[0m'
)
user.offline()
hourly_sign(user)
lucky(user)
user.rob()
rob_back(user)
rest_games(user)
auto_fetch_money(user)