From f70f409a6078de1a4c337f133759eee17b464506 Mon Sep 17 00:00:00 2001 From: smallfawn <101914820+smallfawn@users.noreply.github.com> Date: Sun, 4 Dec 2022 14:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=A3=E5=91=B3=E7=8E=8B=E7=AD=94=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kww.py | 512 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 512 insertions(+) create mode 100644 kww.py diff --git a/kww.py b/kww.py new file mode 100644 index 0000000..3e1b46b --- /dev/null +++ b/kww.py @@ -0,0 +1,512 @@ +# -*- coding:utf-8 -*- +""" +cron: 0 30 0 * * * +new Env('微信小程序-口味王'); +""" +import time +import os +import re +import hashlib +import json + +try: + import requests +except Exception as e: + print(e, "\n缺少requests 模块,请执行命令安装:python3 -m pip install requests") + exit(3) +''' +版本 v1.0.1 +====================== Cookie 配置=========================== +''' +mycookies = [] +try: + mycookies = os.environ["KWW_COOKIE"].split("&") +except: + print("【提示】请先获取微信小程序[口味王]cookie,环境变量添加 KWW_COOKIE ,如有不懂加群:212796668、681030097、743744614") + exit(3) +''' +====================== 题库 =========================== +''' +ktList = {"1":1,"2":1,"3":1,"4":1,"5":4,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":2,"14":1,"15":2,"16":1,"17":2,"18":2,"19":1,"20":1,"21":4,"22":1,"23":4,"24":1,"25":3,"26":1,"27":4,"28":1,"29":4,"30":4,"31":1,"32":4,"33":1,"34":1,"35":1,"36":1,"37":4,"38":1,"39":3,"40":4,"41":2,"42":1,"43":2,"44":4,"45":4,"46":2,"47":1,"48":1,"49":1,"50":2,"51":4,"52":4,"53":1,"54":3,"55":3,"56":4,"57":4,"58":4,"59":1,"60":4,"61":1,"62":1,"63":1,"64":2,"65":1,"66":3,"67":1,"68":1,"69":4,"70":4,"71":4,"72":1,"73":4,"74":2,"75":4,"76":4,"77":4,"78":1,"79":2,"80":1,"81":2,"82":3,"83":3,"84":4,"85":1,"86":2,"87":3,"88":2,"89":4,"90":2,"91":4,"92":3,"93":4,"94":2,"95":3,"96":2,"97":3,"98":2,"99":4,"100":4,"101":4,"102":3,"103":4,"104":4,"105":4,"106":4} +# ktList = {'1': '正确', +# '2': '正确', +# '3': '正确', +# '4': '正确', +# '5': '以上都是', +# '6': '正确', +# '7': '正确', +# '8': '正确', +# '9': '正确', +# '10': '正确', +# '11': '正确', +# '12': '正确', +# '13': '正确', +# '14': '正确', +# '15': '正确', +# '16': '正确', +# '17': '正确', +# '18': '正确', +# '19': '正确', +# '20': '全国销量领先', +# '21': '以上全是', +# '22': '正确', +# '23': '7', +# '24': '正确', +# '25': '中国海南', +# '26': '正确', +# '27': '22道', +# '28': '正确', +# '29': '以上都是', +# '30': '以上都是', +# '31': '正确', +# '32': '100%', +# '33': '高端槟榔', +# '34': '正确', +# '35': '正确', +# '36': '正确', +# '37': '海南嫩青果', +# '38': '海南嫩青果', +# '39': '嫩青果', +# '40': '嫩青果', +# '41': '海南', +# '42': '正确', +# '43': '全国高端销量领先', +# '44': '以上都是', +# '45': '中国海南', +# '46': '槟榔、椰子、橡胶', +# '47': '正确', +# '48': '正确', +# '49': '正确', +# '50': '槟榔', +# '51': '槟榔', +# '52': '以上都是', +# '53': '槟榔', +# '54': '槟榔树', +# '55': '槟榔树', +# '56': '以上都是', +# '57': '马来西亚', +# '58': '5~6年', +# '59': '槟榔之乡', +# '60': '以上都是', +# '61': '正确', +# '62': '正确', +# '63': '正确', +# '64': '槟榔', +# '65': '槟榔', +# '66': '槟榔树', +# '67': '《采槟榔》', +# '68': '槟榔树', +# '69': '3000年', +# '70': '公元前10,000年', +# '71': '槟榔树', +# '72': '8~10月', +# '73': '',# 口味王首创_____口味槟榔? ##4 +# '74': '错误',#槟榔品牌中,“口味王”槟榔是全国【高端销量领先】吗? '正确', '错误' +# '75': '以上都是',# 口味王”槟榔曾【冠名】哪一年的《湖南卫视春节联欢晚会》 '2017年', '2018年', '2019年', '以上都是' +# '76': '这!就是街舞4',# “口味王”槟榔曾赞助过哪个综艺节目? +# '77': '以上都是',# 口味王”槟榔曾赞助过哪个电视剧? '《将夜2》', '《鬼吹灯之龙岭迷窟》', '《巡回检查组》', '以上都是' +# '78': '《这!就是灌篮3》',# “口味王”槟榔曾【冠名】过哪个综艺节目 '《这!就是灌篮3》', '《这!就是街舞4》', '《欢乐喜剧人5》', '以上都是' +# '79': '', +# '80': '', +# '81': '2002年', #中国男足曾在哪一年进入世界杯决赛圈? '1998年', '2002年', '2006年', '2010年' +# '82': '', +# '83': '西班牙',#2002年韩日世界杯,东道主韩国队淘汰了哪支欧洲劲旅历史性地打入四强? '英格兰', '意大利', '西班牙', '葡萄牙' +# '84': '',# +# '85': '俄罗斯',# 2018年世界杯在哪个国家举办? '俄罗斯', '巴西', '南非', '德国' +# '86': '', +# '87': '南非',#2010年世界杯在哪个国家举办? +# '88': '巴西队',#夺得世界杯次数最多的欧洲球队是哪个队? +# '89': '蓝色',#意大利队的传统球衣是什么颜色? '白色', '绿色', '红色', '蓝色' +# '90': '', +# '91': '荷兰',#无冕之王”是形容哪支球队的? '西班牙', '葡萄牙', '英格兰', '荷兰' +# '92': '', +# '93': '乌拉圭',# 第一届世界杯冠军是谁? '意大利', '智利', '巴西', '乌拉圭' +# '94': '', +# '95': '蹴鞠',#我国古代足球称为什么? +# '96': '', +# '97': '朝鲜',#第一支打入世界杯八强的亚洲球队是哪一队? '韩国', '日本', '朝鲜', '马来西亚' +# '98': '', +# '99': '20亿',#口味王“狂欢世界杯”活动累计派发多少积分? '10亿', '5亿', '15亿', '20亿' +# '100': '', +# '101': '20',#口味王“狂欢世界杯”活动累计派发多少台华为Mate 50 Pro手机? '5', '10', '15', '20' +# '102': '',#口味王“狂欢世界杯”活动从什么时间开始派发华为Mate 50 Pro手机? +# '103': '以上都是',#口味王“狂欢世界杯”有哪些活动?'冠军竞猜', '赛事竞猜', '点球大战', '以上都是' +# '104': '', +# '105': '以上都是',#世界杯期间,口味王在以下哪些城市举办线下活动? 长沙、济南、海口', '武汉、青岛、南宁', '杭州、成都、佛山', '以上都是' +# '106': '', +# '107': '', +# '108': '', +# '109': '', +# '110': '', +# '111': '', +# '112': '', +# '113': '', +# '114': '', +# '115': '', +# '116': '', +# '117': '', +# '118': '', +# '119': '', +# '120': '', +# '121': '', +# '122': '', +# '123': '', +# '124': '', +# '125': '', +# '126': '', +# '127': '', +# '128': '', +# '129': '', +# '130': '', +# '131': '', +# '132': '', +# '133': '', +# '134': '', +# '135': '', +# '136': '', +# '137': '', +# '138': '', +# '139': '', +# '140': '', +# '141': '', +# '142': '', +# '143': '', +# '144': '', +# '145': '', +# '146': '', +# '147': '', +# '148': '', +# '149': '', +# } + +''' +====================== 请求 =========================== +''' + + +def getApiBody(url, json): + headers = { + 'Content-Type': 'application/json', + } + return requests.post(url=url, headers=headers, json=json, timeout=300).json() + + +def getApi(url, headers): + return requests.get(url=url, headers=headers, timeout=300).json() + + +def getApiR(url, headers): + return requests.get(url=url, headers=headers, allow_redirects=False, timeout=300) + + +def getkey(kww): + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + + + response = requests.get('https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/index?opId=202214587511596&dbnewopen&from=login&spm=89420.1.1.1', headers=headers) + if response.status_code == 200: + key1 = re.search(r'key\: \'(\S+)\'', response.text,re.M|re.I) + key = key1.group(1) + # print(key) + return key + else: + print(response.text) + +def haidaostart(kww): + url = "https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/start?__ts__=1668168666619" + payload="opId=202214587511596" + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + result = requests.request("POST", url, headers=headers, data=payload).json() + if result['success'] == True: + hdoder= result['data']['orderNum'] + hdstartid = result['data']['startId'] + return hdoder,hdstartid + else: + print(result['desc']) + return None,None +def haidaogetOrderStatus(kww,hdstartid,hdoder): + url = f"https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/getOrderStatus?__ts__=1668168667092&opId=202214587511596&startId={hdstartid}&orderNum={hdoder}&type=1" + + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + result = requests.request("GET", url, headers=headers).json() + if result['success'] == True: + + print(result['success']) + else: + print(result) + return None +def haidaostartRound(kww,hdstartid,rdinx): + url = "https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/startRound?__ts__=1668168667195" + payload=f"opId=202214587511596&startId={hdstartid}&roundIndex={rdinx}" + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + result = requests.request("POST", url, headers=headers,data=payload).json() + if result['success'] == True: + + print(result['success']) + else: + print(result) + return None +def get_str_md5(content): + m = hashlib.md5(content.encode('utf-8')).hexdigest() + return m +def haidaosubmit(kww,score,hdstartid,totalScore,rdinx,key): + signdata = f"opId=202214587511596&roundIndex={rdinx}&score={score}&startId={hdstartid}&totalScore={totalScore}&key={key}" + sign = get_str_md5(signdata) + url = "https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/submit?__ts__=1668168852399" + payload=f"opId=202214587511596&startId={hdstartid}&score={score}&totalScore={totalScore}&roundIndex={rdinx}&sign={sign}" + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + result = requests.request("POST", url, headers=headers,data=payload).json() + if result['success'] == True: + print("提交OK") + else: + print(result) + return None +def haidaoddrw(kww,hdstartid,rdinx): + url = "https://89420.activity-20.m.duiba.com.cn/aaw/underseaGame/draw?__ts__=1668168861872" + payload=f"opId=202214587511596&startId={hdstartid}&roundIndex={rdinx}" + headers = { + 'Host': '89420.activity-20.m.duiba.com.cn', + 'Content-Type': 'application/x-www-form-urlencoded', + 'Cookie': f'{kww}', + 'Connection': 'keep-alive', + 'Accept': '*/*', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d33) NetType/WIFI Language/zh_CN miniProgram/wxfb0905b0787971ad', + 'Accept-Language': 'zh-CN,zh-Hans;q=0.9', + 'Accept-Encoding': 'gzip, deflate' + } + result = requests.request("POST", url, headers=headers,data=payload).json() + if result['success'] == True: + print(result['data']['desc']) + else: + print(result) + return None + +def getChangeCKUrl(uid): + url = f"https://member.kwwblcj.com/member/api/info/?userKeys=v1.0&pageName=loginFreePlugin&formName=searchForm&uid={uid}&levelCode=1&redirect=https%3A%2F%2F89420.activity-20.m.duiba.com.cn%2Fprojectx%2Fp725daef0%2Findex.html%3FappID%3D89420" + payload={} + headers = { + 'Host': 'member.kwwblcj.com', + 'Connection': 'keep-alive', + 'content-type': 'application/json', + 'Accept-Encoding': 'gzip,deflate', + 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.29(0x18001d34) NetType/WIFI Language/zh_CN', + 'Referer': 'https://servicewechat.com/wxfb0905b0787971ad/29/page-frame.html', + } + response = requests.request("GET", url, headers=headers, data=payload).json() + return response['result'] + +def getCookie(url): + session = requests.Session() + session.get(url) + ckDict = session.cookies.get_dict() + cookie_value = '' + for a,b in ckDict.items(): + cookie_value += a + '=' + b + ';' + return cookie_value + +if __name__ == '__main__': + for i in range(len(mycookies)): + print("用户【" + mycookies[i] + "】") + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + print("【答题任务】") + url = 'https://member.kwwblcj.com/member/api/info/?userKeys=v1.0&pageName=loginFreePlugin&formName=searchForm&uid=' + \ + mycookies[ + i] + '&levelCode=K1&redirect=https%3A%2F%2F89420.activity-20.m.duiba.com.cn%2Fprojectx%2Fp129446ea%2Findex.html%3FappID%3D89420' + res = getApi(url, headers) + cookie = getApiR(res['result'], headers).headers.get('Set-Cookie') + cookieList = cookie.split(";") + cookie_wdata4 = '' + cookie_w_ts = '' + cookie__ac = '' + for ii in range(len(cookieList)): + if cookieList[ii].find('wdata4') != -1: + cookie_wdata4 = cookieList[ii] + if cookieList[ii].find('w_ts') != -1: + cookie_w_ts = cookieList[ii] + if cookieList[ii].find('_ac') != -1: + cookie__ac = cookieList[ii] + + Cookie = cookie_wdata4 + ";" + cookie_w_ts + ";" + cookie__ac + Cookie = Cookie.replace("HttpOnly,", "") + headers = { + 'Cookie': Cookie, + } + res = getApi( + 'https://89420.activity-20.m.duiba.com.cn/projectx/p129446ea/answer/start.do?user_type=0&is_from_share=1&_t=' + str( + time.time()), headers) + startId = str(res['data']) + if startId == 'None': + print("今日已答题") + else: + i = 1 + while i < 6: + i += 1 + url = 'https://89420.activity-20.m.duiba.com.cn/projectx/p129446ea/answer/getQuestion.do?startId=' + startId + '&user_type=0&is_from_share=1&_t=' + str( + time.time()) + res = getApi(url, headers) + print("题目ID:" + res['data']['id'] + " > " + res['data']['content']) + answerList = res['data']['answerList'] + print(str(answerList)) + dt = False + try: + print('提交答案 > 提交值 :' + str(ktList.get(res['data']['id']) + 1)) + url = 'https://89420.activity-20.m.duiba.com.cn/projectx/p129446ea/answer/submit.do?answer=' + str( + ktList.get(res['data']['id'])) + '&startId=' + startId + '&user_type=0&is_from_share=1&_t=' + str(time.time()) + res = getApi(url, headers) + if res['data']['correct']: + print("回答正确" if res['data']['correct'] else "回答错误") + elif res['message'] == '重复提交': + print("已全部答完") + except Exception as e: + print(e, "\n答题异常错误") + continue + # 领取奖励 + url = 'https://89420.activity-20.m.duiba.com.cn/projectx/p129446ea/answer/complete.do?startId=' + startId + '&user_type=0&is_from_share=1&_t=' + str( + time.time()) + res = getApi(url, headers) + print("领取答题奖励") + url = 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=select-member-score&formName=searchForm&memberId=' + \ + mycookies[i] + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + res = getApi(url, headers) + print("\n") + for i in range(len(mycookies)): + print("用户【" + mycookies[i] + "】") + url = 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=select-member-score&formName=searchForm&memberId=' + \ + mycookies[i] + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + res = getApi(url, headers) + print("积分剩余 : " + str(res['rows'][0])) + addJf = int(res['rows'][0]) + print("【每日签到】") + res = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=selectSignInfo&formName=searchForm&memberId=' + + mycookies[i], headers) + propList = res['rows']['data'] + for prop in range(len(propList)): + if propList[prop]['flag'] == "1": + print(propList[prop]['formulaDesc'] + " " + ( + "未签到" if propList[prop]['flag'] == "0" else "已签到") + "签到奖励 " + propList[prop]['paramNo']) + if propList[prop]['flag'] == "0": + json = { + "pageName": "AddSignSvmInfo", + "formName": "addForm", + 'orderNo': propList[prop]['orderNo'], + 'paramNo': propList[prop]['paramNo'], + 'cateId': propList[prop]['cateId'], + 'memberId': mycookies[i], + 'memberName': "JDWXX", + } + jf = getApiBody('https://member.kwwblcj.com/member/api/submit/?userKeys=v1.0', json) + print(jf['msg']) + break + print("【任务】") + res = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=select-task-list&formName=searchForm&memberId=' + + mycookies[i], headers) + propList = res['rows'] + for prop in range(len(propList)): + print(propList[prop]['taskTitle'] + " " + "奖励积分:" + propList[prop]['rewardScore'] + " -> " + ( + "待完成" if propList[prop]['complete'] == '0' else "已完成")) + if propList[prop]['taskTitle'] == "开启签到提醒" and propList[prop]['complete'] == "0": + print("【开启签到提醒】") + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=setOpenSignTaskFlag&formName=addForm&memberId=' + + mycookies[i] + '&userCname=JDWXX&openId=o_V6_5Yo3mET81MVAQw4yYebL3zE', headers) + print('完成' if jf['rows'][0] == 'T' else '失败,去手动完成任务') + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=setOpenSignTaskFlag&formName=addForm&memberId=' + + mycookies[i] + '&userCname=JDWXX&openId=0', headers) + print('完成' if jf['rows'][0] == 'T' else '失败,去手动完成任务') + if propList[prop]['taskTitle'] == "订阅活动通知" and propList[prop]['complete'] == "0": + print("【订阅活动通知】") + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=setOpenSubscribeTaskFlag&formName=addForm&memberId=' + + mycookies[i] + '&userCname=JDWXX&openId=o_V6_5Yo3mET81MVAQw4yYebL3zE', headers) + print('完成' if jf['rows'][0] == 'T' else '失败,去手动完成任务') + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=setOpenSubscribeTaskFlag&formName=addForm&memberId=' + + mycookies[i] + '&userCname=JDWXX&openId=0', headers) + print('完成' if jf['rows'][0] == 'T' else '失败,去手动完成任务') + print("【每日阅读】") + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=setNewsReadTaskFlag&formName=addForm&memberId=' + + mycookies[i] + '&userCname=JDWXX&articleTitle=undefined', headers) + print("阅读日期:" + jf['rows'][0]) + print("【收青果】") + jf = getApi( + 'https://member.kwwblcj.com/member/api/list/?userKeys=v1.0&pageName=activeTaskFlag&formName=editForm&memberId=' + + mycookies[i] + '&userCname=JDWXX', headers) + print("收青果日期:" + jf['rows'][0]) + time.sleep(1) + print("【海岛游乐场】") + url = getChangeCKUrl(mycookies[i]) + ck = getCookie(url) + for x in range(0,3): + key = getkey(ck) + hdoder,hdstartid = haidaostart(ck) + if hdstartid != None and hdoder != None: + haidaogetOrderStatus(ck,hdstartid,hdoder) + haidaostartRound(ck,hdstartid,"1") + time.sleep(60) + haidaosubmit(ck,"5",hdstartid,"5","1",key) + haidaoddrw(ck,hdstartid,"1") + haidaostartRound(ck,hdstartid,"2") + time.sleep(60) + haidaosubmit(ck,"10",hdstartid,"15","2",key) + haidaoddrw(ck,hdstartid,"2") + haidaostartRound(ck,hdstartid,"3") + time.sleep(60) + haidaosubmit(ck,"15",hdstartid,"30","3",key) + haidaoddrw(ck,hdstartid,"3")