超级卵杰的自动脚本(3)签到 抢分 入团 压分功能。

基础已经好了。剩下功能都很简单。数据分析下就行了。

先是签到模块。

判断分钟如果是00 or 30就打出签到两字就行。为防止重复弹幕,所以在签到后加上当前时间。

def sign():
    while 1:
        time = time.strftime('%M', time.localtime())
        if time == '00':
            try:
                dm = '#签到 '+ time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                send_dm(dm)
            except:
                driver.refresh()
        if time == '30':
            try:
                dm = '#签到 '+ time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                send_dm(dm)
            except:
                driver.refresh()
        time.sleep(50)

签到不受弹幕影响,所以添加一个线程给他。

def main():
    init()
    t1 = Thread(target=get_dm)
    t2 = Thread(target=keep_live)
    t3 = Thread(target=sign)
    t1.start()
    t2.start()
    t3.start()
if __name__ == '__main__':
    main()

抢分解决有两个方法,第一用wireshark抓包,知道送礼物发送的数据代码。一收到礼物数据就发送#抢分。(但直播结束时散分无用)

第二,有人弹幕打出#抢分,说明有人送礼物。发送#抢分。

我比较懒(连看直播都懒得打字)所以选择第二种。(有弊端,比如‘wsyjz100’这位仁兄的劣质脚本,不断的打#抢分,导致我的脚本也被带偏,跟这他一起傻瓜式的发#抢分。所以果断屏蔽他)

还有个问题就是频率问题,大家集中发一种弹幕,说明正在干相应的事。但零星的发,就说明是对方延迟问题。可以忽略。所以以10秒内出现弹幕的次数来判断。

def get_dm():
    pattern = re.compile(b'type@=chatmsg/.+?/nn@=(.+?)/txt@=(.+?)/.+?/level@=(.+?)/')
    Grab_points_1 = Grab_points_2 = Grab_points_ALL = frequency =0
    while 1:
        buffer = b''
        while 1:
            recv_data = sk_client.recv(4096)
            buffer += recv_data
            if recv_data.endswith(b'\x00'):
                break
            for nn, txt, level in pattern.findall(buffer):
                min = time.strftime('%M', time.localtime())
                sec = time.strftime('%S', time.localtime())
                try:
                    print("[lv.{:0<2}][{}]: {}".format(level.decode(), nn.decode(), txt.decode().strip()))
           

                    print("[lv.{:0<2}][{}]: {}".format(level.decode(), nn.decode(), txt.decode().strip()))
                    if nn.decode() == 'wsyjz100':
                        continue
                    if '9' in sec: #每10秒清零一次
                        Grab_points_1 = 0
                        Grab_points_2 = 0
                        Grab_points_ALL = 0
                        frequency = 0
                    if '#抢分' in txt.decode().strip():
                        frequency += 1
                        if frequency == 10:
                            for i in range(0, 3):
                                dm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值