.版本 2
.支持库 edroptarget
.支持库 iext
.支持库 EThread
.支持库 spec

.程序集 窗口程序集_窗口1
.程序集变量 集句柄, 整数型
.程序集变量 工作中, 逻辑型
.程序集变量 工作线程池EX, 鱼刺类_线程池Ex

.子程序 _窗口1_创建完毕

' 网络版授权验证 (真, “f28ba622a3ef3abf0a419f5cd6b548396dbcd7bd0d25fc815b6256be1db23421d3a329637cdb54f61e492184d1602670dff739ec7bd2847d67b98f0bff373646”)
未闻花名_皮肤加载 (11, 真, , , , 真, 真, 窗口1.取窗口句柄 ())
.如果真 (信息框 (“此程序仅用于学习、技术交流，请勿用于非法！如出现任何问题后果自负！” ＋ #换行符 ＋ “                                                                                              ”, #确认取消钮, “免责声明！！！”, ) ＝ #取消钮)
    结束 ()
.如果真结束

全目录临时 ＝ 取运行目录 () ＋ “\XYZ\临时”
全目录状态 ＝ 取运行目录 () ＋ “\XYZ\数据状态”
全PIC ＝ 取运行目录 () ＋ “\XYZ\生成订单图片”
.如果真 (文件是否存在 (全目录临时) ＝ 假)
    目录_创建 (全目录临时)
.如果真结束
.如果真 (文件是否存在 (全目录状态) ＝ 假)
    目录_创建 (全目录状态)
.如果真结束
.如果真 (文件是否存在 (全PIC) ＝ 假)
    目录_创建 (全PIC)
.如果真结束


' 组合框1.发送信息 (5889, 6, 0)
拖放对象1.注册拖放控件 (超级列表框1.取窗口句柄 ())
状态条1.置文本 (0, “双击列表指定数据行，查询账号详情....”)
数据写入列表 ()
启动线程 (&商品列表, , )
Gdip开始 ()
连续赋值 (假, 选择框_定时抢购.选中, 选择框_心跳.选中)
组合框1.发送信息 (5889, 7, 0)
组合框1.发送信息 (352, 350, 0)  ' 设置下拉框宽度

.子程序 _超级列表框1_右键单击表项

弹出菜单 (菜单, , )

.子程序 _拖放对象1_得到文件
.参数 接收到的文件路径, 文本型
.局部变量 i, 文本型
.局部变量 第一次分割, 文本型, , "0"
.局部变量 第二次分割, 文本型, , "3"
.局部变量 N, 整数型
.局部变量 索引, 整数型
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 临时数组, 文本型, , "0"
.局部变量 文本数组, 文本型, , "0"

i ＝ 到文本 (读入文件 (接收到的文件路径))
文本数组 ＝ 分割文本 (i, #换行符, )
.计次循环首 (取数组成员数 (文本数组), 计次1)
    系统_处理事件 ()
    索引 ＝ 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (索引, 0, 到文本 (索引 ＋ 1))
    超级列表框1.置标题 (索引, 1, 文本数组 [计次1])
    超级列表框1.置状态图片 (索引, 1)
    系统_处理事件 ()
.计次循环尾 ()
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行
清除数组 (文本数组)

.子程序 _删除当前_被选择
.局部变量 i, 整数型
.局部变量 局_保存文本, 鱼刺类_输出文本
.局部变量 局_保存目录, 文本型

超级列表框1.删除表项 (超级列表框1.现行选中项)
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置状态图片 (i － 1, 1)
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()


.子程序 _删除勾选_被选择
.局部变量 表项数, 整数型
.局部变量 m, 整数型
.局部变量 i, 整数型
.局部变量 局_保存目录, 文本型
.局部变量 局_保存文本, 鱼刺类_输出文本

表项数 ＝ 超级列表框1.取表项数 ()
.计次循环首 (表项数, m)
    系统_处理事件 ()
    .如果真 (超级列表框1.取当前状态图片 (表项数 － m) ＝ 1)
        超级列表框1.删除表项 (表项数 － m)
    .如果真结束

.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置状态图片 (i － 1, 1)
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()


.子程序 _清空CK_被选择
.局部变量 局_保存目录, 文本型

超级列表框1.全部删除 ()
局_保存目录 ＝ 取运行目录 () ＋ “\斗鱼CK\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “斗鱼CK.txt”
删除文件 (局_保存目录)

.子程序 _按钮_刷新商品_被单击

启动线程 (&商品列表, , )

.子程序 商品列表
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 N, 整数型
.局部变量 sGoodsName, 文本型
.局部变量 commodityId, 文本型
.局部变量 列表NUM, 整数型
.局部变量 局_文本, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_Cookie, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 str2, 文本型
.局部变量 局_商品价格, 文本型
.局部变量 局_商品id, 文本型
.局部变量 局_商品名称, 文本型
.局部变量 局_iGoodsId, 文本型
.局部变量 局_商品图片, 文本型
.局部变量 str3, 文本型
.局部变量 jsonstr, 文本型
.局部变量 userid, 文本型
.局部变量 roleid, 文本型
.局部变量 recommend, 文本型
.局部变量 局_商品剩余, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 i, 整数型
.局部变量 局_商品组, 文本型, , "0"
.局部变量 page_begin, 整数型
.局部变量 h, 整数型
.局部变量 局_成员数, 整数型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束


局_Cookie ＝ 局_F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnival/nc/txEmbed/getIframeUrl?actAlias=20251203DSRGL&rid=9263298&token=” ＋ 局_token, , , , , “Host: www.douyu.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “X-Requested-With: XMLHttpRequest” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://www.douyu.com/topic/h5/hpxd01”))
yyjson.清空 ()
yyjson.解析 (str)
txurlH5 ＝ yyjson.取文本 (“data/txurlH5”)
.如果真 (txurlH5 ＝ “”)
    状态条1.置文本 (0, “登录失败：” ＋ str)
    返回 ()
.如果真结束

调试输出 (“txurlH5---”, txurlH5)
局_actId参 ＝ 文本_取右边 (txurlH5, “?”)
' 获取openid
str3 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
调试输出 (str3)
jsonstr ＝ 文本_取出中间文本 (str3, “var info=”, “;”)
.如果真 (jsonstr ＝ “”)
    状态条1.置文本 (0, “获取openid失败：” ＋ str)
    返回 ()
.如果真结束

yyjson.清空 ()
yyjson.解析 (jsonstr)
userid ＝ yyjson.取文本 (“gameOpenId”)
roleid ＝ yyjson.取文本 (“roleId”)
.如果真 (userid ＝ “” 且 roleid ＝ “”)
    状态条1.置文本 (0, “获取openid失败：” ＋ str3)
    返回 ()
.如果真结束

' https://app.daoju.qq.com/act/a20251030cjmshop/index.html?actId=15218&appId=bp_cf&gameId=cjm&livePlatId=douyu&code=1IlzKlwbruO9ebjOCTMocQlxydv5IzacCeDpk3yUsjvt0QUbMHzExlC5jMhW8lRQGvFsfXPSJx00owM96v42O7Jil%2BMIKcriMarxWZSpR1OaS%2F9PuUvjI3vgXOl0psp3vro4FzCBHzSvbPEqNq%2Bb7%2FdhmTudAc3ZDnkHm4tBSpI%3D&timestamp=1767251223&v=2.0&sig=472980670a86722fb1e8a19133e42b13
' 调试输出 (“局_参1---”, 局_actId参)


.如果真 (组合框_取商品模式.现行选中项 ＝ 0)  ' ’全部
    page_begin ＝ 0
    组合框1.清空 ()
    .计次循环首 (2, i)
        str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/v3/recommend_live/common?_service=act.recommend.query&_biz_code=cjm&_app_id=2123&app_id=2123&page_begin=” ＋ 到文本 (page_begin) ＋ “&page_num=” ＋ 到文本 (i) ＋ “&page_size=200&fields=iRelationGoodsid,dtModifyTime,sBuyLimitInfo,sGoodsWaterMark,dtShowBeginTime,dtShowEndTime,iSort,iGoodsId,sGoodsName,iJbPrice,iJbOrgPrice,iJb2Price,iJb2OrgPrice,iPrice,iOrgPrice,sGoodsPic,sGoodsDesc,sPayType,dtBeginTime,dtEndTime,iActionId,sExtShowInfo,sExtInfo,iCategoryId,dtRushBegin,dtRushEnd&actionFields=iActionId,sActionName,dtBeginTime,dtEndTime&order_by=dtShowBeginTime&orderColumnBatch=[{%22key%22:%22iSort%22,%22sort%22:%22desc%22},{%22key%22:%22dtShowBeginTime%22,%22sort%22:%22desc%22},{%22key%22:%22iGoodsId%22,%22sort%22:%22asc%22}]&desc=1&_act_id=44042&actid=44042&excludeFields=iCategoryId_76&userid=” ＋ userid ＋ “&roleid=” ＋ roleid ＋ “&area=1&areaid=1&need_limit=1”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))

        recommend ＝ 文本_取右边 (str2, “var recommend=”)
        .如果真 (recommend ＝ “”)
            状态条1.置文本 (0, “读取商品失败：” ＋ str2)
            返回 ()
        .如果真结束

        yyjson.清空 ()
        yyjson.解析 (recommend)
        状态条1.置文本 (0, “正在刷新列表商品....”)
        局_成员数 ＝ yyjson.取成员数 (“data/client_data/itemsdetail”)
        .计次循环首 (局_成员数, N)
            局_商品名称 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/sGoodsName”)
            局_商品价格 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iPrice”)
            局_iGoodsId ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iGoodsId”)
            局_商品图片 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/sGoodsPic”)
            局_商品剩余 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iGoodsLeft”)
            加入成员 (局_商品组, 局_商品名称 ＋ “一” ＋ 局_商品价格 ＋ “一” ＋ 局_iGoodsId ＋ “一” ＋ 局_商品图片 ＋ “一” ＋ 局_商品剩余)
            系统_处理事件 ()
        .计次循环尾 ()
        _原子赋值 (page_begin, 200)
    .计次循环尾 ()
    .计次循环首 (取数组成员数 (局_商品组), h)
        组合框1.插入项目 (h － 1, 局_商品组 [h], )
    .计次循环尾 ()


.如果真结束
.如果真 (组合框_取商品模式.现行选中项 ＝ 1)  ' '热门
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/v3/recommend_live/common?_service=act.recommend.query&_biz_code=cjm&_app_id=2123&app_id=2123&page_begin=0&page_num=1&page_size=200&fields=iRelationGoodsid,dtModifyTime,sBuyLimitInfo,sGoodsWaterMark,dtShowBeginTime,dtShowEndTime,iSort,iGoodsId,sGoodsName,iJbPrice,iJbOrgPrice,iJb2Price,iJb2OrgPrice,iPrice,iOrgPrice,sGoodsPic,sGoodsDesc,sPayType,dtBeginTime,dtEndTime,iActionId,sExtShowInfo,sExtInfo,iCategoryId,dtRushBegin,dtRushEnd&actionFields=iActionId,sActionName,dtBeginTime,dtEndTime&order_by=dtShowBeginTime&orderColumnBatch=[{%22key%22:%22iSort%22,%22sort%22:%22desc%22},{%22key%22:%22dtShowBeginTime%22,%22sort%22:%22desc%22},{%22key%22:%22iGoodsId%22,%22sort%22:%22asc%22}]&desc=1&_act_id=44042&actid=44042&category=76&userid=” ＋ userid ＋ “&roleid=” ＋ roleid ＋ “&area=1&areaid=1&need_limit=1&isNeedCollect=1”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
    recommend ＝ 文本_取右边 (str2, “var recommend=”)
    .如果真 (recommend ＝ “”)
        状态条1.置文本 (0, “读取商品失败：” ＋ str2)
        返回 ()
    .如果真结束

    yyjson.清空 ()
    yyjson.解析 (recommend)
    组合框1.清空 ()
    状态条1.置文本 (0, “正在刷新列表商品....”)
    .计次循环首 (yyjson.取成员数 (“data/client_data/itemsdetail”), N)
        局_商品名称 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/sGoodsName”)
        局_商品价格 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iPrice”)
        局_iGoodsId ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iGoodsId”)
        局_商品图片 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/sGoodsPic”)
        局_商品剩余 ＝ yyjson.取文本 (“data/client_data/itemsdetail/” ＋ 到文本 (N － 1) ＋ “/iGoodsLeft”)
        组合框1.插入项目 (N － 1, 局_商品名称 ＋ “一” ＋ 局_商品价格 ＋ “一” ＋ 局_iGoodsId ＋ “一” ＋ 局_商品图片 ＋ “一” ＋ 局_商品剩余, )
        系统_处理事件 ()
    .计次循环尾 ()
.如果真结束

状态条1.置文本 (1, “载入商品【” ＋ 到文本 (组合框1.取项目数 ()) ＋ “】个”)
组合框1.现行选中项 ＝ 0
arr0 ＝ 分割文本 (组合框1.取项目文本 (组合框1.现行选中项), “一”, )
.如果真 (取数组成员数 (arr0) ＜ 5)
    编辑框_剩余量.内容 ＝ “NULL”
    返回 ()
.如果真结束

编辑框_剩余量.内容 ＝ arr0 [5]

状态条1.置文本 (0, “列表商品刷新完成”)

.子程序 _获取绑定二维码_被选择

启动线程 (&取APP二维码, , )

.子程序 取APP二维码, , , 安卓APP7.9.2
.局部变量 ctn1, 文本型
.局部变量 返回CK, 文本型
.局部变量 局ID, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 yyjson, json对象
.局部变量 绑定url, 文本型
.局部变量 局_文本, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 绑定游戏昵称, 文本型
.局部变量 局_斗鱼昵称, 文本型
.局部变量 图片句柄, 整数型
.局部变量 局_token, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 res, 文本型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

' ' 我心飞扬865----ojc97176----acf_auth=6a54%2FUwzcCCwyTxcHsebeOkzaW5qv11%2BhsUsj7qcx3tAqzIDUp0A97bdjsSWltrQsSQUw0Ao6y%2Fz0O5VefY6ZWZZNkwcA8DqPqR9ap5RusZVUcA3OCMIYbs; acf_jwt_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJtZDUifQ.eyJ1aWQiOjQ4MTc0MjE2MCwiY3QiOjAsInN1YiI6InN0IiwiYXVkIjpbImR5Iiwibm9uZSJdLCJiaXoiOjEsImx0a2lkIjo0ODkzODE0MCwic3RrIjoiNmRmYjAxMmE2NzdiOTA1ZSIsImV4cCI6MTc0MDU2OTIyNCwiaWF0IjoxNzM5OTY0NDI0LCJrZXkiOiJkeS1qd3QtbWQ1In0.ZjUzNGMyZTdhOTkwNDhhZDZlOTgwMzY5OTc2MmIwZjU; acf_dmjwt_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJtZDUifQ.eyJ1aWQiOjQ4MTc0MjE2MCwiY3QiOjAsInN1YiI6InN0IiwiYXVkIjpbImRtIiwibm9uZSJdLCJiaXoiOjEsImx0a2lkIjo0ODkzODE0MCwic3RrIjoiNmRmYjAxMmE2NzdiOTA1ZSIsImV4cCI6MTc0MDU2OTIyNCwiaWF0IjoxNzM5OTY0NDI0LCJrZXkiOiJkeS1qd3QtbWQ1In0.MmZlZjJiNTZiY2Y0NDY2N2Q5ZWIyMDBjM2IxZjA2OWU; dy_auth=005dgF8Td6gZT5aLGJtN0dGrzyvLnwhN2WlE0kwo78vIJ1jnidFYYzDMhqhj0mP62xKyVJgnUaoiLcR6E9yKaAjpxCuPLTosuGmrph2PSxP4GLIMLXYYuIA; wan_auth37wan=fb8d1222824721GYivbkydjCdsd5zUN5pWVkQgCnC66wqLrEKOaDElk4sH8xM60C767NEMu4jifK2tRTf4u13gZQqIz9vPJt3RwR8xCXpR%2BYkcAtYiE; acf_uid=481742160; acf_username=481742160; acf_nickname=%E6%88%91%E5%BF%83%E9%A3%9E%E6%89%AC865; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favatar_v3%2F202303%2F72b0b60566bd450cbbf6974fa7139e2a_; acf_ct=0; acf_ltkid=48938140; acf_biz=1; acf_stk=6dfb012a677b905e
' 局_斗鱼昵称 ＝ 局_F [1]
局_Cookie ＝ 局_F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
' 调试输出 (“token=” ＋ 局_token ＋ “&uid=” ＋ acf_uid ＋ “&client=mobile&actAlias=20241125NXFQY”)
res ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apiv2.douyucdn.cn/japi/carnivalApi/tencent/roleParam?client_sys=android”, 1, “token=” ＋ 局_token ＋ “&uid=” ＋ acf_uid ＋ “&client=mobile&actAlias=20241125NXFQY”, , , “User-Device: MDExZTUxMzEyYmYxMmY5MmQ3YmY1M2M4MDA3MDcxMTF8djcuOS4y” ＋ #换行符 ＋ “aid: android1” ＋ #换行符 ＋ “User-Agent: android/7.9.2 (android 9; ; M973Q)” ＋ #换行符 ＋ “Accept-Language: zh-CN” ＋ #换行符 ＋ “Content-Type: application/x-www-form-urlencoded” ＋ #换行符 ＋ “Content-Length: 97” ＋ #换行符 ＋ “Host: apiv2.douyucdn.cn” ＋ #换行符 ＋ “Connection: Keep-Alive”))
' ’调试输出 (res)
yyjson.清空 ()
yyjson.解析 (res)
绑定url ＝ yyjson.取文本 (“data/url”)
局_斗鱼昵称 ＝ 编码_URL解码_JS (yyjson.取文本 (“data/queryParams/nickName”), 1)
.如果真 (绑定url ≠ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “绑定二维码已生成”)
    图片框1.图片 ＝ 文本生成二维码图片 (绑定url, , , , , 10)
    状态条1.置文本 (1, “斗鱼名：” ＋ 局_斗鱼昵称)
    绑定游戏昵称 ＝ 检测是否绑定游戏账号 (局_token)
    列表_置游戏昵称 (超级列表框1.现行选中项, 1, 绑定游戏昵称)

    ' 检测账号 (局_Cookie, ctn2)

.如果真结束



.子程序 和平集市登录XX, 逻辑型, , rid=9263298是房间号
.参数 参_token, 文本型
.参数 返回err0, 文本型, 参考
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 txurlH5, 文本型
.局部变量 返回状态码, 整数型

' 460636414_12_db61a0de7b339dcb_1_96359401
.计次循环首 (5, )
    str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnival/nc/txEmbed/getIframeUrl?actAlias=20241125NXFQY&rid=9263298&token=” ＋ 参_token, , , , , “Host: www.douyu.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 9; M973Q Build/PQ3A.190605.02140946; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “X-Requested-With: XMLHttpRequest” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://www.douyu.com/topic/h5/2025hpjs”, , 返回状态码, , , ))
    ' 调试输出 (取程序名称 (1), “=============”, str)
    .如果 (返回状态码 ＝ 200)
        跳出循环 ()

    .否则
        ' 这里再去IP
    .如果结束

.计次循环尾 ()
yyjson.清空 ()
yyjson.解析 (str)
' sAnchorId = 是房间号
txurlH5 ＝ yyjson.取文本 (“data/txurlH5”) ＋ “&sAnchorId=9263298&ch=”
.如果真 (txurlH5 ≠ “”)
    返回err0 ＝ txurlH5
    返回 (真)
.如果真结束

返回err0 ＝ str
返回 (假)

.子程序 检测账号, , , 通过兑换检测账号
.参数 参_cook, 文本型
.参数 参_ctn, 文本型
.局部变量 局_文本, 文本型
.局部变量 ctnEX, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 局_xy, 文本型
.局部变量 商品表, 文本型
.局部变量 商品组, 文本型, , "0"
.局部变量 要兑换的商品名称, 文本型
.局部变量 要兑换的商品价格, 文本型
.局部变量 要兑换的商品ID, 文本型
.局部变量 roleName, 文本型
.局部变量 str2, 文本型
.局部变量 局_bin, 字节集
.局部变量 生成者, 文本型
.局部变量 优化价格, 文本型
.局部变量 areaName, 文本型
.局部变量 platName, 文本型
.局部变量 msg, 文本型

商品表 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
商品组 ＝ 分割文本 (商品表, “一”, )
.如果真 (取数组成员数 (商品组) ＜ 3)
    状态条1.置文本 (0, “商品格式错误x”)
    返回 ()
.如果真结束

' 要兑换的商品名称 ＝ 商品组 [1]
' 要兑换的商品价格 ＝ 商品组 [2]nZALooPn0kZPW&amp;ditchname=pass0&roomId=999
要兑换的商品ID ＝ 商品组 [3]
窗口_置状态信息 (超级列表框1.现行选中项, 2, “检测账号...”)
状态条1.置文本 (0, “正在检测账号-> ”)
str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/wgapi/ordnc/activity/peace/exchange”, 1, “manualID=nZyNEyQwpP6bX&rid=999&commodityID=” ＋ 要兑换的商品ID ＋ “&token%5Berror%5D%5Bcode%5D=-1&token%5Bdata%5D=&ctn=” ＋ 参_ctn, 参_cook ＋ “; acf_ccn=” ＋ 参_ctn, , #常量7, 局_xy))
' 调试输出 (str)
状态条1.置文本 (0, “检测账号：” ＋ str)
.如果真 (寻找文本 (str, “需要开通精英手册”, , 假) ≠ -1 或 寻找文本 (str, “服务器繁忙”, , 假) ≠ -1 或 寻找文本 (str, “不在时间范围内”, , 假) ≠ -1)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “账号有效”)
    ' ’str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnivalApi/tencent/bindInfo?actAlias=20220616CJSZU”, , , 参_cook, , #常量3))
    返回 ()
.如果真结束


' msg ＝ 文本_取出中间文本 (str, “msg” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.' 如果真 (msg ＝ “”)
    ' 窗口_置状态信息 (超级列表框1.现行选中项, 2, “账号异常”)
    ' 返回 ()
.如果真结束

窗口_置状态信息 (超级列表框1.现行选中项, 2, “账号异常”)

.子程序 检测是否绑定游戏账号, 文本型
.参数 参_token, 文本型
.局部变量 str, 文本型
.局部变量 roleName, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnivalApi/v2/tencent/bindInfo?actAlias=20241125NXFQY&token=” ＋ 参_token, , , , , “Host: www.douyu.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 9; M973Q Build/PQ3A.190605.02140946; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://www.douyu.com/topic/h5/2025hpjs”))
状态条1.置文本 (0, “查绑游戏名-> ” ＋ str)
roleName ＝ 文本_取出中间文本 (str, “roleName” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.如果真 (roleName ≠ “”)
    返回 (roleName)
.如果真结束

返回 (“null”)
' {"error":0,"msg":"success","data":{"bindAccount":1,"bindRole":1,"bindAct":1,"needBindRole":null,"txAct":{"txActId":2811,"gameId":"cjm","gameName":"和平精英","bindType":1},"gameAccount":{"bindType":2,"type":"","faceuri":"https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTI4cIOxb4f7vpSkqYCIIvY1EJTgkhS0ZhVzzJSl2LzDpUzVBJKiaDjvuzpdS6cadAvA6bnrYwZ7jlQ/132","nick":"zicoo"},"gameRole":{"roleName":"白菜被拱了呀","areaName":"微信","platName":"安卓(android)","partitionName":""},"isGranted":null,"gameAuthScene":null,"canChangeRole":0,"changeRoleWaitTime":2490528},"redirectUrl":null}

' {"error":0,"msg":"success","data":{"bindAccount":0,"bindRole":0,"bindAct":0,"needBindRole":1,"needBindAct":0,"txAct":{"txActId":9873,"gameId":"cjm","gameName":"和平精英","bindType":0,"channelType":3},"gameAccount":{"bindType":0,"type":"","faceuri":"","nick":""},"gameRole":{"roleName":"","areaName":"","platName":"","partitionName":""},"isGranted":0,"gameAuthScene":null,"privacyAuthScene":"","canChangeRole":null,"changeRoleWaitTime":null,"changeRoleConfig":null},"redirectUrl":null}

.子程序 _阵营预测确认绑定_被选择

启动线程 (&完成阵营预测绑定, , )

.子程序 完成阵营预测绑定
.局部变量 str2, 文本型
.局部变量 cvl_csrf_token, 文本型
.局部变量 局_文本, 文本型
.局部变量 str, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 返回CK, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 绑定游戏昵称, 文本型
.局部变量 msg, 文本型
.局部变量 ctnEX, 文本型
.局部变量 返回游戏name, 文本型
.局部变量 str_0, 文本型
.局部变量 roleName, 文本型
.局部变量 nick, 文本型
.局部变量 areaName, 文本型
.局部变量 platName, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 yyjson, json对象

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
ctnEX ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 5)

局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

局_Cookie ＝ 局_F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apiv2.douyucdn.cn/japi/carnivalApi/v2/tencent/bindInfo?actAlias=20251203VKZBM&client_sys=android”, , , , , “Host: apiv2.douyucdn.cn” ＋ #换行符 ＋ “token: ” ＋ 局_token ＋ #换行符 ＋ “Connection: Keep-Alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36”, , , 真))
yyjson.清空 ()
yyjson.解析 (str)
roleName ＝ yyjson.取文本 (“data/gameRole/roleName”)
nick ＝ yyjson.取文本 (“data/gameAccount/nick”)
areaName ＝ yyjson.取文本 (“data/gameRole/areaName”)
platName ＝ yyjson.取文本 (“data/gameRole/platName”)

标签_状态.标题 ＝ “昵称：” ＋ nick ＋ #换行符 ＋ “游戏名称：” ＋ roleName ＋ #换行符 ＋ “平台：” ＋ areaName ＋ #换行符 ＋ “手机：” ＋ platName


.子程序 精英二维码30
.参数 参_ctn, 文本型
.参数 参_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 str2, 文本型
.局部变量 yyjson, json对象
.局部变量 付款30链接, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/item”, 1, “{” ＋ #引号 ＋ “itemId” ＋ #引号 ＋ “:1,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_ctn ＋ #引号 ＋ “}”, 参_Cookie ＋ “; ” ＋ “acf_ccn=” ＋ 参_ctn, , #常量4))
状态条1.置文本 (0, “取acf_ccn-> ” ＋ str)
.如果真 (寻找文本 (str, “error” ＋ #引号 ＋ “:0”, , 假) ≠ -1)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/pay/getQrCode”, 1, “{” ＋ #引号 ＋ “bizType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “peace” ＋ #引号 ＋ “,” ＋ #引号 ＋ “biz” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “actAlias” ＋ #引号 ＋ “:” ＋ #引号 ＋ “20250213NQCYX” ＋ #引号 ＋ “,” ＋ #引号 ＋ “amount” ＋ #引号 ＋ “:3000,” ＋ #引号 ＋ “roomId” ＋ #引号 ＋ “:9263298},” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_ctn ＋ #引号 ＋ “}”, 参_Cookie ＋ “; ” ＋ “acf_ccn=” ＋ 参_ctn, , #常量4))
    状态条1.置文本 (0, “开通手册-> ” ＋ str2)
    yyjson.清空 ()
    yyjson.解析 (str2)
    付款30链接 ＝ yyjson.取文本 (“data/qr”)
    .如果真 (付款30链接 ≠ “”)
        图片框1.图片 ＝ 文本生成二维码图片 (付款30链接, , , , , 10)
        窗口_置状态信息 (超级列表框1.现行选中项, 2, “宝典二维码已生成”)
        状态条1.置文本 (1, “开通宝典，30元支付宝付款码”)
        ' 标签反馈.标题 ＝ “开通宝典，30元支付宝付款码”
        返回 ()
    .如果真结束

    窗口_置状态信息 (超级列表框1.现行选中项, 2, str2)

.如果真结束


.子程序 _开通精英手册30_被选择

启动线程 (&查积分记录, , )
程序_延时 (2000)
启动线程 (&开通30精英, , )

.子程序 开通30精英
.局部变量 局_文本, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_Cookie, 文本型
.局部变量 ctnEX, 文本型
.局部变量 str, 文本型
.局部变量 str2, 文本型
.局部变量 yyjson, json对象
.局部变量 付款30链接, 文本型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
ctnEX ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 5)
局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

局_Cookie ＝ 局_F [3]

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/item”, 1, “{” ＋ #引号 ＋ “itemId” ＋ #引号 ＋ “:1,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ ctnEX ＋ #引号 ＋ “}”, 局_Cookie ＋ “; ” ＋ “acf_ccn=” ＋ ctnEX, , #常量4))
状态条1.置文本 (0, “取acf_ccn-> ” ＋ str)
.如果真 (寻找文本 (str, “error” ＋ #引号 ＋ “:0”, , 假) ≠ -1)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/pay/getQrCode”, 1, “{” ＋ #引号 ＋ “bizType” ＋ #引号 ＋ “:” ＋ #引号 ＋ “peace” ＋ #引号 ＋ “,” ＋ #引号 ＋ “biz” ＋ #引号 ＋ “:{” ＋ #引号 ＋ “actAlias” ＋ #引号 ＋ “:” ＋ #引号 ＋ “20250213NQCYX” ＋ #引号 ＋ “,” ＋ #引号 ＋ “amount” ＋ #引号 ＋ “:3000,” ＋ #引号 ＋ “roomId” ＋ #引号 ＋ “:9263298},” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ ctnEX ＋ #引号 ＋ “}”, 局_Cookie ＋ “; ” ＋ “acf_ccn=” ＋ ctnEX, , #常量4))
    状态条1.置文本 (0, “开通手册-> ” ＋ str2)
    yyjson.清空 ()
    yyjson.解析 (str2)
    付款30链接 ＝ yyjson.取文本 (“data/qr”)
    ' 输出调试 (“30元支付宝付款码-> ”, 付款30链接)
    .如果真 (付款30链接 ≠ “”)
        图片框1.图片 ＝ 文本生成二维码图片 (付款30链接, , , , , 10)
        窗口_置状态信息 (超级列表框1.现行选中项, 2, “宝典二维码已生成”)
        状态条1.置文本 (1, “开通宝典，30元支付宝付款码”)
        返回 ()
    .如果真结束

    窗口_置状态信息 (超级列表框1.现行选中项, 2, str2)

.如果真结束


.子程序 _查询手册积分_被选择

启动线程 (&查手册积分, , )

.子程序 查手册积分
.局部变量 局_文本, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 ctnEX, 文本型
.局部变量 str, 文本型
.局部变量 userid, 文本型
.局部变量 diff, 文本型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
ctnEX ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 5)

局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

userid ＝ 局_F [2]
局_Cookie ＝ 局_F [3]


str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/credit/diff”, 1, “{” ＋ #引号 ＋ “userId” ＋ #引号 ＋ “:” ＋ #引号 ＋ userid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ ctnEX ＋ #引号 ＋ “}”, 局_Cookie, , #常量5))

' '{"error":0,"msg":"success","data":{"diff":300}
状态条1.置文本 (0, “查积分-> ” ＋ str)
diff ＝ 文本_取出中间文本 (str, “diff” ＋ #引号 ＋ “:”, “}”)
.如果真 (diff ≠ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 5, “积分：” ＋ diff)
    返回 ()
.如果真结束

窗口_置状态信息 (超级列表框1.现行选中项, 5, str)

.子程序 _一键查询点券余额_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查积点券, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 查积点券
.参数 参_索引E, 整数型
.局部变量 局_文本Ck, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 balance, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 yyjson, json对象
.局部变量 gameOpenId, 文本型
.局部变量 roleId, 文本型
.局部变量 str2, 文本型
.局部变量 msg, 文本型
.局部变量 str_x, 文本型
.局部变量 type, 文本型
.局部变量 areaid, 文本型
.局部变量 plat, 文本型

局_文本Ck ＝ 超级列表框1.取标题 (参_索引E, 1)
_F ＝ 分割文本 (局_文本Ck, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (参_索引E, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

全临界.进入 ()
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全临界.退出 ()
.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (参_索引E, 2, 返回txurlH5)
    返回 ()
.如果真结束

全临界.进入 ()
局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
全临界.退出 ()

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
' 调试输出 (str)
yyjson.清空 ()
yyjson.解析 (文本_取出中间文本 (str, “var info=”, “;”))
gameOpenId ＝ yyjson.取文本 (“gameOpenId”)
roleId ＝ yyjson.取文本 (“roleId”)
plat ＝ yyjson.取文本 (“platId”)
type ＝ yyjson.取文本 (“type”)
areaid ＝ 选择 (type ＝ “wx”, “1”, “2”)

.如果真 (gameOpenId ≠ “” 且 roleId ≠ “”)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live/?_jsvar=banlanceInfo&_service=pay.midas.dq.get.ttpp&_app_id=2123&acctype=ttpp&areaid=” ＋ areaid ＋ “&eventid=&interwork=0&openid=” ＋ gameOpenId ＋ “&openkey=openkey&partition=0&pay_token=&plat=” ＋ plat ＋ “&plat_pc=0&roleid=” ＋ roleId ＋ “&_biz_code=cjm&_act_id=44042&_time=” ＋ 时间_取现行时间戳 () ＋ “&_sid=6”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
    ' 调试输出 (str2)
    状态条1.置文本 (0, “余额：” ＋ str2)
    yyjson.清空 ()
    yyjson.解析 (文本_取出中间文本 (str2, “var banlanceInfo=”, “;”))
    balance ＝ yyjson.取文本 (“balance”)

    窗口_置状态信息 (参_索引E, 2, “点券：” ＋ 选择 (balance ≠ “”, balance, “null”))
    返回 ()
.如果真结束

msg ＝ 文本_取出中间文本 (str, “msg” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.如果真 (msg ＝ “”)
    msg ＝ str
.如果真结束

窗口_置状态信息 (参_索引E, 2, msg)


.子程序 查积分记录, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_文本, 文本型
.局部变量 uid, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 ctnEX, 文本型
.局部变量 str, 文本型
.局部变量 balance, 文本型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
ctnEX ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 5)

局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 (“NULL”)
.如果真结束

uid ＝ 局_F [2]
局_Cookie ＝ 局_F [3]

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/credit/balance”, 1, “{” ＋ #引号 ＋ “uid” ＋ #引号 ＋ “:” ＋ #引号 ＋ uid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ ctnEX ＋ #引号 ＋ “}”, 局_Cookie, , #常量6))
balance ＝ 文本_取出中间文本 (str, “balance” ＋ #引号 ＋ “:”, “,”)
状态条1.置文本 (0, “积分记录-> ” ＋ str)

.如果真 (balance ≠ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “记录积分：” ＋ balance)
    返回 (balance)
.如果真结束

窗口_置状态信息 (超级列表框1.现行选中项, 2, “NULL”)
返回 (“NULL”)

.子程序 _购买商品_被选择

启动线程 (&APP购买, , )

.子程序 APP购买
.局部变量 局_文本Ck, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_Cookie, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 str1, 文本型
.局部变量 yyjson, json对象
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 商品组, 文本型, , "0"
.局部变量 要兑换的商品名称, 文本型
.局部变量 要兑换的商品价格, 文本型
.局部变量 要兑换的商品propid, 文本型
.局部变量 局_商品图片, 文本型
.局部变量 局_商品图片time, 文本型
.局部变量 appext, 文本型
.局部变量 purl, 文本型
.局部变量 str2, 文本型
.局部变量 局_bin, 字节集
.局部变量 局_账号用户名, 文本型
.局部变量 优化价格, 文本型
.局部变量 游戏昵称, 文本型
.局部变量 msg, 文本型

窗口_置状态信息 (超级列表框1.现行选中项, 2, “正在购买：” ＋ 要兑换的商品名称)

商品组 ＝ 分割文本 (组合框1.取项目文本 (组合框1.现行选中项), “一”, )
.如果真 (取数组成员数 (商品组) ＜ 4)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “商品格式错误x”)
    返回 ()
.如果真结束

要兑换的商品名称 ＝ 商品组 [1]
要兑换的商品价格 ＝ 商品组 [2]
要兑换的商品propid ＝ 商品组 [3]
局_商品图片 ＝ 文本_取出中间文本 (商品组 [4], “square/”, “.jpg”)
局_商品图片time ＝ 文本_取右边 (商品组 [4], “_t=”)

局_文本Ck ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
_F ＝ 分割文本 (局_文本Ck, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

全登录临界.进入 ()
局_账号用户名 ＝ _F [1]
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全登录临界.退出 ()
.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, 返回txurlH5)
    返回 ()
.如果真结束

局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
' APP购买商品
' purl ＝ “https://apps.game.qq.com/daoju/igw/livebuy/?_service=buy.plug.svr.web&_plug_id=7200&_jsvar=buyInfo&acctype=livelink&_app_id=2123&iActionId=44042&propid=” ＋ 要兑换的商品propid ＋ “&paytype=1&source=9263298&sAnchorId=9263298&attach={%22ch%22:%220%22}&apptype=3&_biz_code=cjm&_act_id=44042&sLiveUserInfo={%22sAnchorId%22:%229263298%22,%22sVideoId%22:0}&” ＋ 局_actId参 ＋ “&appext=%7B%22user_price%22:” ＋ 要兑换的商品价格 ＋ “,%22sGoodsPic%22:%22” ＋ 局_商品图片 ＋ “%22,%22paytype%22:1%7D&_sid=8&set=8”

.如果 (组合框2.现行选中项 ＝ 0)
    purl ＝ “https://apps.game.qq.com/daoju/igw/livebuy/?_service=buy.plug.svr.web&_plug_id=7200&_jsvar=buyInfo&acctype=livelink&_app_id=2123&iActionId=44042&propid=” ＋ 要兑换的商品propid ＋ “&paytype=1&source=9263298&sAnchorId=9263298&attach={%22ch%22:%220%22}&apptype=3&_biz_code=cjm&_act_id=44042&sLiveUserInfo={%22sAnchorId%22:%229263298%22,%22sVideoId%22:0}&” ＋ 局_actId参 ＋ “&appext=%7B%22user_price%22:” ＋ 要兑换的商品价格 ＋ “,%22sGoodsPic%22:%22” ＋ 局_商品图片 ＋ “%22,%22paytype%22:1%7D&_sid=8&set=8”

.否则
    purl ＝ “https://apps.game.qq.com/daoju/igw/livebuy/?_service=buy.plug.svr.web&_plug_id=7200&_jsvar=buyInfo&acctype=livelink&_app_id=2123&iActionId=44042&propid=” ＋ 要兑换的商品propid ＋ “&paytype=5&source=9263298&sAnchorId=9263298&attach={%22ch%22:%220%22}&apptype=3&_biz_code=cjm&_act_id=44042&sLiveUserInfo={%22sAnchorId%22:%229263298%22,%22sVideoId%22:0}&” ＋ 局_actId参 ＋ “&appext=%7B%22user_price%22:” ＋ 要兑换的商品价格 ＋ “,%22sGoodsPic%22:%22” ＋ 局_商品图片 ＋ “%22,%22paytype%22:5%7D&_sid=8&set=8”
.如果结束


str1 ＝ 编码_Utf8到Ansi (网页_访问_对象 (purl, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?1” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”, , , 真, , ))
状态条1.置文本 (0, “购买：” ＋ str1)
' 调试输出 (“APP购买商品--”, str1)
' 购买成功返回：'var buyInfo={"act_amount":800,"event_id":"DJC-CJM-0101113752-nazUnu-44042-007277","iPayType":"1","msg":"ok","newBalance":170,"ret":"0","sSerialNum":"CJM-20260101113752036-860804563","serial":"CJM-20260101113752036-860804563","serverTime":1767238672,"span":"0-4","trace_id":"070c4fd9ac0e50ad80ca64b83e8df299","ts":"1767238672"};

.如果真 (寻找文本 (str1, “msg” ＋ #引号 ＋ “:” ＋ #引号 ＋ “ok” ＋ #引号, , 假) ≠ -1)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “购买成功：” ＋ 要兑换的商品名称)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))

    状态条1.置文本 (0, “查询：” ＋ str1)
    ' 返回： var info={"area":1,"code":{"userid":"12353341"},"event_id":"DJC-CJM-0101111544-XPqqUw-44042-936077","gameOpenId":"osewR0kigZPfAHU-hL9PNVhhsqMk","openIdType":"openid","partition":0,"platId":1,"roleId":"3667375425","roleName":"小竖林里吃过亏","type":"wx"};

    游戏昵称 ＝ 文本_取出中间文本 (str2, “roleName” ＋ #引号 ＋ “:” ＋ #引号, #引号)
    优化价格 ＝ 到文本 (到整数 (要兑换的商品价格) ÷ 10)
    保存日志2 (时间_到文本 (取现行时间 (), 1) ＋ “ ” ＋ 局_账号用户名 ＋ “----” ＋ 游戏昵称 ＋ “----” ＋ 要兑换的商品名称 ＋ “----” ＋ 优化价格)
    局_bin ＝ 文转图片P (要兑换的商品名称 ＋ “ ” ＋ #换行符 ＋ 时间_格式化 (取现行时间 (), “yyyy年MM月dd日”, “ hh:mm:ss”, 真) ＋ #换行符 ＋ “兑换账号：” ＋ 游戏昵称 ＋ “(” ＋ 局_账号用户名 ＋ “)”)
    剪辑板_置图片 (局_bin)
    提示框 (“兑换成功,图片已复制”, , , , 1000)
    返回 ()
.如果真结束


msg ＝ 文本_取出中间文本 (str1, “msg” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.如果真 (msg ＝ “”)
    msg ＝ str1
.如果真结束

窗口_置状态信息 (超级列表框1.现行选中项, 2, msg)

.子程序 登录和平集市, 逻辑型, , rid=9263298是房间号
.参数 参_token, 文本型
.参数 返回txurlH5, 文本型, 参考
.局部变量 str, 文本型
.局部变量 局_文本, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_账号用户名, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 yyjson, json对象
.局部变量 txurlH5, 文本型

.计次循环首 (2, )
    str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnival/nc/txEmbed/getIframeUrl?actAlias=20251203DSRGL&rid=9263298&token=” ＋ 参_token, , , , , “Host: www.douyu.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “X-Requested-With: XMLHttpRequest” ＋ #换行符 ＋ “Sec-Fetch-Site: same-origin” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://www.douyu.com/topic/h5/hpxd01”))
    yyjson.清空 ()
    yyjson.解析 (str)
    txurlH5 ＝ yyjson.取文本 (“data/txurlH5”)
    .如果真 (txurlH5 ≠ “”)
        返回txurlH5 ＝ txurlH5
        返回 (真)
    .如果真结束

.计次循环尾 ()
返回txurlH5 ＝ “登录失败：” ＋ str
返回 (假)

.子程序 和平集市_查询购买记录
.局部变量 purl, 文本型
.局部变量 str, 文本型

purl ＝ “https://apps.game.qq.com/daoju/igw/live/?_service=order.list&_biz_code=cjm&_app_id=2123&hist=0&ps=10&pn=1&stat_set=&act_set=34278&_jsvar=oResult&set=3&actId=9873&appId=bp_cf&gameId=cjm&livePlatId=douyu&code=1IlzKlwbruO9ebjOCTMocQlxydv5IzacCeDpk3yUsjvt0QUbMHzExlC5jMhW8lRQGvFsfXPSJx00owM96v42O7Jil%2BMIKcriMarxWZSpR1PoFewIld5lClXmHQQRIVzjJIGIJYmIWatvhzWlPvUwa%2FdhmTudAc3ZDnkHm4tBSpI%3D&timestamp=1740455023&v=2.0&sig=a5e5b31b8138ea1ebf36eacbe5cd8981&acctype=livelink”

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (purl, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”, , , 真, , ))


' 返回: var oResult={"data":{"cnt":1,"list":[{"bizName":"和平精英","del":"0","dtBuyTime":"2025-02-25 11:43:50","dtCancelTime":"0000-00-00 00:00:00","dtPayTime":"2025-02-25 11:43:50","iActionId":"34278","iAppId":"2123","iCJiFenActId":"0","iCJiFenAmount":"0","iChannel":"2123090001","iCoin1Amount":"0","iCouponAmount":"0","iDianQuanAmount":"2500","iFreeDqAmount":"380","iPayAmount":"0","iPlugId":"7200","iPrice":"2880","iRefund":"0","iRewardAmount":"0","iStatus":"3","iTicketAmount":"0","iValidSeconds":"3600","iWalletAmount":"0","iZoneId":"1","lBuyUin":"*","lGetUin":"*","lPayUin":"*","lRoleId":"3667****25","sActionDesc":"2025和平集市","sAppExt":"%7B%22user_price%22:2880,%22sGoodsPic%22:%22https://ossweb-img.qq.com/images/daoju/app/cjm/square/N-cjm-1-111591-107302-s50250.jpg?_t=1737518412%22,%22paytype%22:1%7D","sAttach":"{\"linksee_info\":{\"sLinkSeeId\":\"0\",\"sLinkSeeAct\":\"\"}}","sAwardInfo":"","sBizCode":"cjm","sBuyUid":"6jq4n9ae4965ea6dcf0eb0ff****7f","sCallbackData":"","sCoupon":"","sEventId":"DJC-CJM-0225114350-Zvpgof-34278-337967","sGetUid":"osewR0kigZPfAHU-hL9PNV****Mk","sGoodsInfo":"{\"award\":0,\"iRet\":0,\"iTotalNum\":1,\"isFree\":0,\"isFreeJf\":0,\"isWhiteOpenid\":0,\"list\":[{\"acctype\":\"livelink\",\"bPresale\":\"0\",\"iAmsItemType\":\"3\",\"iAmsType\":\"1\",\"iAutoItemId\":\"107303\",\"iAutoTypeId\":\"111591\",\"iBuyType\":\"0\",\"iCategoryId\":\"428\",\"iDayType\":\"\",\"iGoodsId\":\"1018679\",\"iGoodsPayAmount\":2880,\"iGoodsUnitPayAmount\":2880,\"iInfoId\":\"\",\"iIsUseTGPC\":\"1\",\"iOrgPrice\":2880,\"iPacketNum\":\"1\",\"iPartition\":0,\"iPlatId\":1,\"iPlugSvr\":1,\"iPrice\":2880,\"iQuantity\":1,\"iRelationGoodsId\":\"50250\",\"iSendDst\":\"0\",\"iSendType\":\"-1\",\"iSeqId\":\"1018679\",\"iShowNum\":\"1\",\"iSubCategoryId\":\"0\",\"iTemplId\":\"107303\",\"iUidType\":\"0\",\"iZoneId\":1,\"idipData\":{},\"lRoleId\":\"3667375425\",\"mrmsParams\":{\"sLinkSeeAct\":\"\",\"sLinkSeeId\":\"0\",\"sMailContent\":\"%E8%83%8C%E5%8C%85%E6%8C%82%E4%BB%B6-%E9%A3%8E%E6%9A%B4%E6%97%B6%E4%BB%A3%E5%8F%91%E8%B4%A7%E9%80%9A%E7%9F%A5\",\"sMailTitle\":\"2025%E5%92%8C%E5%B9%B3%E9%9B%86%E5%B8%82%E5%8F%91%E8%B4%A7%E9%80%9A%E7%9F%A5\"},\"sAmsActId\":\"699836\",\"sAmsBiz\":\"cjm\",\"sAmsModId\":\"665628\",\"sCharacNo\":\"3667****25\",\"sDayType\":\"永久\",\"sGoodsName\":\"背包挂件-风暴时代\",\"sGoodsPic\":\"https://ossweb-img.qq.com/images/daoju/app/cjm/square/N-cjm-1-111591-107302-s50250.jpg?_t=1737518412\",\"sItemId\":\"802433\",\"sItemValue\":\"2880\",\"sMrmsGid\":\"3727933\",\"sMrmsGiftId\":\"IEGAMS-699836-665628\",\"sMrmsPid\":\"6086990\",\"sPacketName\":\"背包挂件-风暴时代\",\"sPayType\":1}],\"merge\":\"0\",\"origin\":\"xn\",\"sMsg\":\"ok\",\"sUserIp\":\"123.130.221.161\"}","sLimitKey":"","sPayData":"","sPayType":"","sPayTypeChannel":"qpqb,tenpay,quick,bank,weixinpay","sPayUid":"6jq4n9ae4965ea6dcf0eb0ff****7f","sPortalSerialNo":"CJM-20250225114350369-490304391","sRemark":"","sRoleName":"小竖林里吃过亏","sSerialNum":"CJM-20250225114350369-490304391","sSource":"9263298","sUserInfo":"{\"appid\":\"wxc4c0253df149f02d\",\"ip\":\"123.130.221.161\",\"level\":1,\"partition\":0,\"plat\":1,\"platid\":1,\"roleid\":\"3667****25\",\"sVideoId\":\"\",\"uid\":\"6jq4n9ae4965ea6dcf0eb0ff****7f\",\"uin\":\"\",\"zone\":1}","sZoneDesc":""}]},"event_id":"DJC-CJM-0225120604-1hVoRY-499-501489","msg":"ok","ret":"0","span":"0-2","trace_id":"3ef384337e70607235a99f877b594767","ts":"1740456364"};

.子程序 查积分记录EX, 文本型
.参数 参_uid, 文本型
.参数 参_CK, 文本型
.参数 参_ctnEX, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_文本, 文本型
.局部变量 str, 文本型
.局部变量 balance, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/credit/balance”, 1, “{” ＋ #引号 ＋ “uid” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_uid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_ctnEX ＋ #引号 ＋ “}”, 参_CK, , #常量6))
balance ＝ 文本_取出中间文本 (str, “balance” ＋ #引号 ＋ “:”, “,”)
状态条1.置文本 (0, “积分记录-> ” ＋ str)
返回 (balance)

.子程序 _图片框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

.如果真 (图片框1.图片 ＝ {  })
    提示框 (“请先生成后，再复制二维码”, , , , 1000)
    返回 ()
.如果真结束

剪辑板_置图片 (图片框1.图片)
' 剪辑板_置图片 (图片_后台截图 (图片框4.取窗口句柄 ()))
提示框 (“二维码已复制”, , , , 1000)

.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

启动线程 (&子程序标签更新, , )

.子程序 子程序标签更新
.局部变量 局_文本Ck, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_Cookie, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 str, 文本型
.局部变量 游戏昵称, 文本型
.局部变量 局_账号用户名, 文本型
.局部变量 type, 文本型
.局部变量 局_平台, 文本型
.局部变量 gameOpenId, 文本型
.局部变量 str2, 文本型
.局部变量 yyjson, json对象
.局部变量 roleId, 文本型
.局部变量 balance, 文本型

局_文本Ck ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
_F ＝ 分割文本 (局_文本Ck, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

全登录临界.进入 ()
局_账号用户名 ＝ _F [1]
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全登录临界.退出 ()
.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, 返回txurlH5)
    返回 ()
.如果真结束

局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
' 'var oResult={"area":1,"code":{"userid":"6jq4n9ae4965ea6dcf0eb0ffdd767f"},"gameOpenId":"osewR0kigZPfAHU-hL9PNVhhsqMk","openIdType":"openid","partition":0,"platId":1,"roleId":"3667375425","roleName":"小竖林里吃过亏","type":"wx"};
yyjson.清空 ()
yyjson.解析 (文本_取出中间文本 (str, “var info=”, “;”))
游戏昵称 ＝ yyjson.取文本 (“roleName”)
type ＝ yyjson.取文本 (“type”)
gameOpenId ＝ yyjson.取文本 (“gameOpenId”)
roleId ＝ yyjson.取文本 (“roleId”)
.如果 (type ≠ “” 或 gameOpenId ≠ “” 且 roleId ≠ “”)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live/?_jsvar=banlanceInfo&_service=pay.midas.dq.get.ttpp&_app_id=2123&acctype=ttpp&areaid=1&eventid=&interwork=0&openid=” ＋ gameOpenId ＋ “&openkey=openkey&partition=0&pay_token=&plat=1&plat_pc=0&roleid=” ＋ roleId ＋ “&_biz_code=cjm&_act_id=44042&_time=” ＋ 时间_取现行时间戳 () ＋ “&_sid=6”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))



    调试输出 (“查询余额：”, str2)
    状态条1.置文本 (0, “余额：” ＋ str2)
    yyjson.清空 ()
    yyjson.解析 (文本_取出中间文本 (str2, “var banlanceInfo=”, “;”))
    balance ＝ yyjson.取文本 (“balance”)
    局_平台 ＝ 选择 (type ＝ “wx”, “微信”, “QQ”)

.否则
    局_平台 ＝ “null”
.如果结束

标签_昵称.标题 ＝ “账号：” ＋ 局_账号用户名 ＋ “<->” ＋ “余额：” ＋ 选择 (balance ≠ “”, balance, “null”)
标签_状态.标题 ＝ “昵称：” ＋ 局_账号用户名 ＋ #换行符 ＋ “游戏名称：” ＋ 选择 (游戏昵称 ≠ “”, 游戏昵称, “null”) ＋ #换行符 ＋ “平台：” ＋ 局_平台
超级列表框1.置标题 (超级列表框1.现行选中项, 2, 游戏昵称)

.子程序 _标签_状态_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

剪辑板_置图片 (快照 (标签_状态.取窗口句柄 (), , ))
提示框 (“图片已复制”, , , , 1000)

.子程序 _窗口1_可否被关闭, 逻辑型

.如果 (信息框 (“确定要退出程序吗?”, #信息图标 ＋ #确认钮 ＋ #取消钮, , ) ＝ #确认钮)
    返回 (真)
.否则
    返回 (假)
.如果结束


.子程序 _窗口1_将被销毁

Gdip结束 ()
数据写出列表 ()

.子程序 子程序处理余额, 整数型
.参数 参_数据, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 N, 整数型

局_F ＝ 分割文本 (参_数据, “----”, )
.如果真 (取数组成员数 (局_F) ＝ 4)
    返回 (到整数 (局_F [4]))
.如果真结束

返回 (0)

.子程序 _按钮_统计_被单击
.局部变量 str, 文本型
.局部变量 局_日志路径, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 P, 整数型
.局部变量 局_返回余额, 整数型
.局部变量 局_NUM, 整数型

局_日志路径 ＝ 取运行目录 () ＋ “\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换日志.log”
str ＝ 编码_Utf8到Ansi (读入文件 (局_日志路径))
局_F ＝ 分割文本 (str, #换行符, )
.计次循环首 (取数组成员数 (局_F), P)
    局_返回余额 ＝ 子程序处理余额 (局_F [P])
    _原子运算 (局_NUM, 局_返回余额)
    系统_处理事件 ()
.计次循环尾 ()
保存日志2 (#换行符 ＋ #换行符 ＋ “*************************************************今日统计总金额：” ＋ 到文本 (局_NUM) ＋ #换行符 ＋ #换行符)
信息框 (时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “统计总金额：” ＋ 到文本 (局_NUM), 0, , )


.子程序 _读取Cookie_被选择
.局部变量 局_保存目录, 文本型
.局部变量 局_文本数据, 文本型
.局部变量 局_文本数组, 文本型, , "0"
.局部变量 局_索引, 整数型
.局部变量 P, 整数型
.局部变量 N, 整数型
.局部变量 局_3, 文本型, , "0"

局_保存目录 ＝ 取运行目录 () ＋ “\斗鱼CK\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “斗鱼CK.txt”
.如果真 (文件是否存在 (局_保存目录) ＝ 假)
    提示框 (“Cookie文件不存在！” ＋ #换行符 ＋ 局_保存目录, , , , 2000)
    返回 ()
.如果真结束


局_文本数据 ＝ 到文本 (读入文件 (局_保存目录))
局_文本数组 ＝ 分割文本 (局_文本数据, #换行符, )
.计次循环首 (取数组成员数 (局_文本数组), P)
    判断重复列表 (局_文本数组 [P])
    系统_处理事件 ()
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), N)
    系统_处理事件 ()
    超级列表框1.置状态图片 (N － 1, 1)
    超级列表框1.置标题 (N － 1, 0, 到文本 (N))
.计次循环尾 ()

.子程序 判断重复列表
.参数 参_内容, 文本型
.局部变量 局_文本, 文本型
.局部变量 局_用户, 文本型
.局部变量 _索引, 整数型
.局部变量 局_索引2, 整数型
.局部变量 P, 整数型

_索引 ＝ 超级列表框1.查找表项 (参_内容, , , 1)
.如果 (_索引 ＝ -1)
    局_索引2 ＝ 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (局_索引2, 0, 到文本 (局_索引2 ＋ 1))
    超级列表框1.置标题 (局_索引2, 1, 参_内容)
    超级列表框1.置状态图片 (局_索引2, 1)

.否则
    超级列表框1.置标题 (_索引, 1, 参_内容)
.如果结束


.子程序 _同步删除Cookie_被选择
.局部变量 局_保存目录, 文本型
.局部变量 局_保存文本, 鱼刺类_输出文本
.局部变量 i, 整数型
.局部变量 P, 整数型

局_保存目录 ＝ 取运行目录 () ＋ “\斗鱼CK\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “斗鱼CK.txt”
超级列表框1.删除表项 (超级列表框1.现行选中项)
删除文件 (局_保存目录)
程序_延时 (500)
局_保存目录 ＝ 取运行目录 () ＋ “\斗鱼CK\”
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    局_保存文本.写文本行 (超级列表框1.取标题 (i － 1, 1), 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “斗鱼CK”, 局_保存目录, “.txt”)
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    超级列表框1.置状态图片 (P － 1, 1)
    超级列表框1.置标题 (P － 1, 0, 到文本 (P))
.计次循环尾 ()

提示框 (“同步完成”, , , , 1000)

.子程序 保存日志
.参数 参_str, 文本型
.局部变量 filename, 文本型
.局部变量 保存到文件, 鱼刺类_输出文本

filename ＝ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “流程日志”
保存到文件.写文本行 (参_str, filename, 取运行目录 () ＋ “\”, “.log”)

.子程序 保存日志2
.参数 参_str, 文本型
.局部变量 filename, 文本型
.局部变量 保存到文件, 鱼刺类_输出文本

filename ＝ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换日志”
保存到文件.写文本行 (参_str, filename, 取运行目录 () ＋ “\”, “.log”)
保存到文件.关闭所有文件占用 ()

.子程序 数据写入列表, , , APP
.局部变量 文件号, 整数型
.局部变量 文件名, 文本型
.局部变量 状态数组, 文本型, , "0"
.局部变量 文本数组, 文本型, , "0"
.局部变量 M, 整数型
.局部变量 N, 整数型
.局部变量 局_状态图片, 整数型

文件名 ＝ 全目录临时 ＋ “\临时ck.txt”
文件号 ＝ 打开文件 (文件名, , )
移到文件首 (文件号)
处理事件 ()
.判断循环首 (取反 (是否在文件尾 (文件号, 真)))
    重定义数组 (状态数组, 假, 0)
    重定义数组 (文本数组, 假, 0)
    状态数组 ＝ 分割文本 (读入一行 (文件号), “$”, )
    .如果真 (取数组成员数 (状态数组) ≥ 2)
        .如果 (状态数组 [1] ＝ “x”)
            局_状态图片 ＝ 1
        .否则
            局_状态图片 ＝ 0
        .如果结束
        文本数组 ＝ 分割文本 (状态数组 [2], “|||”, )
        M ＝ 超级列表框1.插入表项 (, , , , , )

        超级列表框1.置状态图片 (M, 局_状态图片)
        .计次循环首 (取数组成员数 (文本数组), N)
            系统_处理事件 ()
            超级列表框1.置标题 (M, N － 1, 文本数组 [N])
            .如果真 (N ＝ 20)  ' 填充满一页就手动重画
                超级列表框1.禁止重画 ()
            .如果真结束
            .如果真 (N ％ 100 ＝ 0)  ' 每100次插入 换一次姿势 ``233333
                超级列表框1.允许重画 ()
                超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行
                超级列表框1.禁止重画 ()
            .如果真结束

        .计次循环尾 ()



    .如果真结束

.判断循环尾 ()
关闭文件 (文件号)
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行

.子程序 数据写出列表, , , APP
.局部变量 文件名, 文本型
.局部变量 读入账号, 文本型
.局部变量 n, 整数型
.局部变量 临时文件名, 文本型
.局部变量 文件号, 整数型
.局部变量 文本, 文本型
.局部变量 空, 字节集
.局部变量 局_状态图片, 文本型

临时文件名 ＝ 全目录临时 ＋ “\临时ck.txt”
文件号 ＝ 打开文件 (临时文件名, 4, )
_处理事件 ()
文本 ＝ “”

.计次循环首 (超级列表框1.取表项数 (), n)
    系统_处理事件 ()
    .判断开始 (超级列表框1.取当前状态图片 (n － 1) ＝ 1)
        局_状态图片 ＝ “x”

    .默认
        局_状态图片 ＝ “y”
    .判断结束

    文本 ＝ 局_状态图片 ＋ “$” ＋ 超级列表框1.取标题 (n － 1, 0) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 1) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 2) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 3) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 4) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 5) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 6)

    写文本行 (文件号, 文本)
.计次循环尾 ()
关闭文件 (文件号)

.子程序 _标签_昵称_被双击, 逻辑型, , https://livelink.qq.com/act/a20200527midgroupage/pc/?sig=0d29d14f3e9bdb05f7f091340952054f&faceUrl=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favatar%2Fdefault%2F15_middle.jpg&code=wW6EhNWpLEVNHKEMfB9vaEWKPdowIikRqFJI0IKm%2BcxGa%2B8OEPhyF%2BZ58W80CrGigCGtLddIofBcnRkylmccKw%3D%3D&redirectUrl=null&t=1661433534&livePlatId=douyu&nickName=%E7%94%A8%E6%88%B702435853&actId=2811&gameIdList=cjm
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 str, 文本型, , , 昵称：null <-> 余额：null

str ＝ 删首尾空 (文本_取出中间文本 (标签_昵称.标题, “账号：”, “<->”))
置剪辑板文本 (str)
提示框 (str ＋ “   已复制”, , , , 1000)

.子程序 _按钮_关闭_被单击, , , 测试

_扫码框.可视 ＝ 假
工作中 ＝ 假
关闭线程句柄 (集句柄)
强制结束线程 (集句柄)

.子程序 _扫码登录_被选择

' 载入 (窗口_扫码, , 真)
_扫码框.可视 ＝ 真
标签显示.可视 ＝ 假
按钮_刷新.可视 ＝ 假
按钮_刷新.禁止 ＝ 真
启动线程 (&getscanEX, , 集句柄)

.子程序 getscanEX, 逻辑型, , 获取扫码
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 surl, 文本型
.局部变量 code, 文本型
.局部变量 bool, 逻辑型
.局部变量 局_Code, 文本型
.局部变量 局_msg, 文本型
.局部变量 局_LoginUrl, 文本型
.局部变量 CK, 文本型

图片框2.图片 ＝ {  }
网页_清除Cookie (“passport.douyu.com”)
标签_反馈.标题 ＝ “正在二维码...”
网页_访问_对象 (“https://passport.douyu.com/index/login?passport_reg_callback=PASSPORT_REG_SUCCESS_CALLBACK&passport_login_callback=PASSPORT_LOGIN_SUCCESS_CALLBACK&passport_close_callback=PASSPORT_CLOSE_CALLBACK&passport_dp_callback=PASSPORT_DP_CALLBACK&type=login&client_id=1&state=https%3A%2F%2Fwww.douyu.com%2F&source=click_topnavi_login”, , , “dy_did=05444ffb59d181b4d194b59900011601; acf_did=05444ffb59d181b4d194b59900011601; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=” ＋ 到文本 (时间_取现行时间戳1 (假)), , #常量8)
程序_延时 (1000)
str ＝ 编码_usc2到ansi (到文本 (网页_访问_对象 (“https://passport.douyu.com/scan/generateCode”, 1, “client_id=1&isMultiAccount=0”, “dy_did=05444ffb59d181b4d194b59900011601; acf_did=05444ffb59d181b4d194b59900011601; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=” ＋ 到文本 (时间_取现行时间戳1 (假)), , #扫码XY1)))

' “dy_did=05444ffb59d181b4d194b59900011601; acf_did=05444ffb59d181b4d194b59900011601; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=” ＋ 到文本 (时间_取现行时间戳1 (假))

' 调试输出 (str)
yyjson.清空 ()
yyjson.解析 (str)
surl ＝ yyjson.取文本 (“data/url”)
局_Code ＝ yyjson.取文本 (“data/code”)
.如果真 (surl ＝ “” 或 局_Code ＝ “”)
    标签_反馈.标题 ＝ “请关闭后重新生成二维码！”
    返回 (假)
.如果真结束

图片框2.图片 ＝ 文本生成二维码图片 (surl, , , , , 20)
标签_反馈.标题 ＝ “二维码已生成，请在手机上确认！”

工作中 ＝ 真
.判断循环首 (工作中 ＝ 真)
    bool ＝ scanauthEX (局_Code, 局_msg, 局_LoginUrl)
    .如果真 (bool ＝ 真)
        跳出循环 ()
    .如果真结束

    .如果真 (寻找文本 (局_msg, “code不存在或者是已经过期”, , 假) ≠ -1)
        关闭线程句柄 (集句柄)
        强制结束线程 (集句柄)
        标签显示.可视 ＝ 真
        按钮_刷新.可视 ＝ 真
        按钮_刷新.禁止 ＝ 假
        返回 (假)
    .如果真结束

    程序_延时 (1000)
    系统_处理事件 ()
.判断循环尾 ()
Login_douEX (局_LoginUrl)
返回 (真)

.子程序 scanauthEX, 逻辑型, , 检测是否扫码
.参数 参_code, 文本型
.参数 返回msg, 文本型, 参考
.参数 参_登录url, 文本型, 参考
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 局_msg, 文本型
.局部变量 局surl, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://passport.douyu.com/japi/scan/auth?time=” ＋ 时间_取现行时间戳 () ＋ “&code=” ＋ 参_code, , , , , #扫码XY1))
调试输出 (“参_code---”, 参_code)
调试输出 (str)
yyjson.清空 ()
yyjson.解析 (str)
返回msg ＝ yyjson.取文本 (“msg”)
参_登录url ＝ yyjson.取文本 (“data/url”)
标签_反馈.标题 ＝ “>>>>” ＋ 返回msg
.如果真 (参_登录url ≠ “”)
    标签_反馈.标题 ＝ “扫码成功，正在登录...”
    返回 (真)
.如果真结束

返回 (假)

.子程序 Login_douEX, , , 登录斗鱼
.参数 参_url, 文本型
.局部变量 str, 文本型
.局部变量 局_索引, 整数型
.局部变量 局_COOK, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_nickname, 文本型
.局部变量 解析CK, 类_Cookie

str ＝ 编码_usc2到ansi (到文本 (网页_访问_对象 (参_url ＋ “&callback=appClient_json_callback&_=” ＋ 时间_取现行时间戳 (), , , , 局_COOK, #扫码登录)))
' 调试输出 (str)
调试输出 (“局_COOK---”, 局_COOK)
.如果真 (局_COOK ≠ “”)
    标签_反馈.标题 ＝ “>>>扫码登录成功！”
    acf_uid ＝ 网页_取单条Cookie (局_COOK, “acf_uid”, 真)

    acf_nickname ＝ 编码_URL解码 (网页_取单条Cookie (局_COOK, “acf_nickname”, 真), 真)
    局_索引 ＝ 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (局_索引, 0, 到文本 (局_索引 ＋ 1))
    超级列表框1.置标题 (局_索引, 1, acf_nickname ＋ “----” ＋ acf_uid ＋ “----” ＋ 局_COOK)
    超级列表框1.置状态图片 (局_索引, 1)
    超级列表框1.保证显示 (局_索引)
    工作中 ＝ 假
    _扫码框.可视 ＝ 假

.如果真结束


.子程序 _按钮_刷新_被单击

标签显示.可视 ＝ 假
按钮_刷新.可视 ＝ 假
按钮_刷新.禁止 ＝ 真
启动线程 (&getscanEX, , 集句柄)

.子程序 _图片框2_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

剪辑板_置图片 (图片框2.图片)
提示框 (“图片已复制”, , , , 1000)

.子程序 __扫码框_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

窗口1.发送信息 (161, 2, 0)

.子程序 _粘贴Cookie_被选择
.局部变量 文本数组, 文本型, , "0"
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 临时数组, 文本型, , "0"
.局部变量 索引, 整数型
.局部变量 i, 文本型
.局部变量 总数数组, 文本型, , "0"
.局部变量 内容, 文本型
.局部变量 X, 整数型
.局部变量 状态数组, 文本型, , "0"
.局部变量 N, 整数型
.局部变量 M, 整数型
.局部变量 判断数据, 文本型

' 下面的是粘贴根据“----“判断是否是一条或者两条数据
i ＝ 取剪辑板文本 ()
.如果真 (i ＝ “”)
    返回 ()
.如果真结束

文本数组 ＝ 分割文本 (i, #换行符, )
.计次循环首 (取数组成员数 (文本数组), X)
    .如果真 (文本数组 [X] ≠ “”)
        M ＝ 超级列表框1.插入表项 (, , , , , )
        超级列表框1.置状态图片 (M, 1)
        超级列表框1.置标题 (M, 0, 到文本 (M ＋ 1))
        超级列表框1.置标题 (M, 1, 文本数组 [X])
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行

清除数组 (文本数组)
返回 ()

.子程序 _搜索游戏名_被选择
.局部变量 索引EX, 整数型
.局部变量 str, 文本型

输入框 (“查找包含游戏名的字符”, “查找游戏名”, , str, , )
.如果真 (str ＝ “”)
    返回 ()
.如果真结束

索引EX ＝ 超级列表框1.查找表项 (str, , 假, 2)
.如果真 (索引EX ≠ -1)
    超级列表框1.保证显示 (索引EX)
    超级列表框1.选择表项 (索引EX)
.如果真结束

返回 ()

.子程序 _搜索状态_被选择
.局部变量 索引EX, 整数型
.局部变量 str, 文本型

输入框 (“查找包含状态的字符”, “查找状态”, , str, , )
.如果真 (str ＝ “”)
    返回 ()
.如果真结束

索引EX ＝ 超级列表框1.查找表项 (str, , 假, 4)
.如果真 (索引EX ≠ -1)
    超级列表框1.保证显示 (索引EX)
    超级列表框1.选择表项 (索引EX)
.如果真结束

返回 ()


.子程序 子程序检测账号EX
.参数 参_索引, 整数型
.局部变量 局_文本, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_CCK, 文本型
.局部变量 str, 文本型
.局部变量 返回CK, 文本型

全检车临界.进入 ()
局_文本 ＝ 超级列表框1.取标题 (参_索引, 1)
全检车临界.退出 ()

局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (参_索引, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

局_CCK ＝ 局_F [3]
str ＝ 到文本 (网页_访问_对象 (“https://www.douyu.com/curl/csrfApi/getCsrfCookie?”, , , 局_CCK, 返回CK, #常量1))
状态条1.置文本 (0, “生成1-> ” ＋ 编码_usc2到ansi (str))
.判断开始 (寻找文本 (str, “-99”, , 假) ≠ -1)
    窗口_置状态信息 (参_索引, 1, “账号未登录”)
    返回 ()

.判断 (寻找文本 (str, “无效”, , 假) ≠ -1)
    窗口_置状态信息 (参_索引, 1, “账号无效”)
    返回 ()

.默认
    窗口_置状态信息 (参_索引, 1, “账号正常”)
.判断结束

返回 ()

.子程序 _一键检测账号_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&子程序检测账号EX, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()


.子程序 _全选_被选择
.局部变量 P, 整数型

.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    超级列表框1.置状态图片 (P － 1, 1)
.计次循环尾 ()

.子程序 _反选_被选择
.局部变量 P, 整数型

.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    .如果 (超级列表框1.取当前状态图片 (P － 1) ＝ 0)
        超级列表框1.置状态图片 (P － 1, 1)

    .否则
        超级列表框1.置状态图片 (P － 1, 0)
    .如果结束

.计次循环尾 ()


.子程序 _一键获取游戏名_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&子程序获取昵称EX, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 子程序获取昵称EX
.参数 索引EX, 整数型
.局部变量 局_文本, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_uid, 文本型
.局部变量 nick, 文本型
.局部变量 str, 文本型
.局部变量 roleName, 文本型
.局部变量 余额, 文本型
.局部变量 areaName, 文本型
.局部变量 platName, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 局_ctn, 文本型

全临界.进入 ()
局_文本 ＝ 超级列表框1.取标题 (索引EX, 1)
局_ctn ＝ 超级列表框1.取标题 (索引EX, 5)
全临界.退出 ()
局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    状态条1.置文本 (0, “Cookie格式错误”)
    返回 ()
.如果真结束

局_uid ＝ 局_F [2]
局_Cookie ＝ 局_F [3]

' https://www.douyu.com/japi/carnival/nc/txEmbed/getIframeUrl?actAlias=20241125NXFQY&rid=9263298&token=496599680_12_447c3494cbda7ea6_1_28514598
str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnivalApi/tencent/bindInfo?actAlias=20251203DSRGL”, , , 局_Cookie, , #常量3))

全临界.进入 ()
状态条1.置文本 (0, “是否绑定-> ” ＋ str)
roleName ＝ 文本_取出中间文本 (str, “roleName” ＋ #引号 ＋ “:” ＋ #引号, #引号)
超级列表框1.置标题 (索引EX, 2, roleName)
全临界.退出 ()

' {"error":0,"msg":"success","data":{"bindAccount":1,"bindRole":1,"bindAct":1,"needBindRole":null,"txAct":{"txActId":2811,"gameId":"cjm","gameName":"和平精英","bindType":1},"gameAccount":{"bindType":2,"type":"","faceuri":"https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTI4cIOxb4f7vpSkqYCIIvY1EJTgkhS0ZhVzzJSl2LzDpUzVBJKiaDjvuzpdS6cadAvA6bnrYwZ7jlQ/132","nick":"zicoo"},"gameRole":{"roleName":"白菜被拱了呀","areaName":"微信","platName":"安卓(android)","partitionName":""},"isGranted":null,"gameAuthScene":null,"canChangeRole":0,"changeRoleWaitTime":2490528},"redirectUrl":null}


' nick ＝ 文本_取出中间文本 (str, “nick” ＋ #引号 ＋ “:” ＋ #引号, #引号)
' areaName ＝ 文本_取出中间文本 (str, “areaName” ＋ #引号 ＋ “:” ＋ #引号, #引号)
' platName ＝ 文本_取出中间文本 (str, “platName” ＋ #引号 ＋ “:” ＋ #引号, #引号)


.子程序 _按钮_添加商品到列表_被单击

启动线程 (&商品加列表, , )

.子程序 商品加列表
.局部变量 局_商品名, 文本型

局_商品名 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
超级列表框1.置标题 (超级列表框1.现行选中项, 3, 局_商品名)

.子程序 _按钮_启动_被单击

.判断开始 (按钮_启动.标题 ＝ “批量购买商品”)
    .如果真 (超级列表框1.取表项数 () ≤ 0)
        返回 ()
    .如果真结束

    按钮_启动.禁止 ＝ 真
    .如果真 (线程_创建 (&工作线程) ＝ 假)
        按钮_启动.禁止 ＝ 假
        返回 ()
    .如果真结束

.判断 (按钮_启动.标题 ＝ “停止购买”)
    按钮_启动.禁止 ＝ 真
    按钮_启动.标题 ＝ “停止中...”
    全工作中 ＝ 假
    工作线程池EX.销毁 ()
    返回 ()
.默认

.判断结束


.子程序 工作线程
.局部变量 bool, 逻辑型
.局部变量 int, 整数型
.局部变量 任务数, 整数型

全定时数 ＝ 0
按钮_启动.标题 ＝ “兑换中...”
状态条1.置文本 (0, “线程启动中...”)
bool ＝ 工作线程池EX.创建 (50, , , 真, , 1024 × 128)
.如果真 (bool ＝ 假)
    状态条1.置文本 (0, “初始化工作线程池失败！”)
    按钮_启动.标题 ＝ “批量购买商品”
    按钮_启动.禁止 ＝ 假
    返回 ()
.如果真结束

全工作中 ＝ 真
按钮_启动.标题 ＝ “停止购买”
按钮_启动.禁止 ＝ 假
全心跳记录 ＝ 0
int ＝ 0
.判断循环首 (全工作中 ＝ 真)
    任务数 ＝ 工作线程池EX.取_执行线程数 () ＋ 工作线程池EX.取_队列任务数 ()
    任务数 ＝ 工作线程池EX.取_最大线程容量 () － 任务数
    .如果真 (任务数 ＞ 0)
        .如果真 (超级列表框1.取当前状态图片 (int) ＝ 1)
            工作线程池EX.投递任务 (&线程子程序, int)
            程序_延时 (1)
        .如果真结束


        int ＝ int ＋ 1

    .如果真结束
    .如果真 (int ≥ 超级列表框1.取表项数 ())
        .判断开始 (选择框_定时抢购.选中 ＝ 真)
            选择框_心跳.选中 ＝ 假
            int ＝ 0
            子程序等待定时 ()

        .判断 (选择框_心跳.选中 ＝ 真)
            状态条1.置文本 (1, “心跳【” ＋ 删全部空 (编辑框_心跳秒.内容) ＋ “】秒/次”)
            int ＝ 0
            心跳等待定时 ()

        .默认
            状态条1.置文本 (0, “定时已取消！”)
            跳出循环 ()
        .判断结束

    .如果真结束

.判断循环尾 ()
.循环判断首 ()
    程序_延时 (300)
.循环判断尾 (工作线程池EX.取_是否完全空闲 () ＝ 假)
状态条1.置文本 (0, “正在销毁工作线程池。。。。”)
工作线程池EX.销毁 ()
状态条1.置文本 (0, “销毁工作线程池成功！”)
按钮_启动.标题 ＝ “批量购买商品”
按钮_启动.禁止 ＝ 假
状态条1.置文本 (0, “执行停止完毕！”)

.子程序 心跳等待定时
.局部变量 P, 整数型
.局部变量 N, 整数型
.局部变量 局_兑换状态, 文本型

.计次循环首 (到整数 (删首尾空 (编辑框_心跳秒.内容)), P)
    系统_处理事件 ()
    状态条1.置文本 (1, “心跳：” ＋ 编辑框_心跳秒.内容 ＋ “秒，开始计时” ＋ 编辑框_心跳秒.内容 ＋ “/” ＋ 到文本 (P))
    程序_延时 (1000)
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), N)
    全临界.进入 ()
    局_兑换状态 ＝ 超级列表框1.取标题 (N － 1, 4)
    全临界.退出 ()
    .如果 (寻找文本 (局_兑换状态, “您已拥有”, , 假) ≠ -1 或 局_兑换状态 ＝ “购买成功”)
        超级列表框1.置状态图片 (N － 1, 0)

    .否则
        超级列表框1.置状态图片 (N － 1, 1)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()

.子程序 子程序等待定时
.局部变量 P, 整数型
.局部变量 N, 整数型
.局部变量 局_兑换状态, 文本型

.计次循环首 (到整数 (删首尾空 (编辑框_定时秒.内容)), P)
    系统_处理事件 ()
    状态条1.置文本 (0, “已设置定时：” ＋ 编辑框_定时秒.内容 ＋ “秒，开始计时/” ＋ 到文本 (P))
    程序_延时 (1000)
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), N)

    全临界.进入 ()
    局_兑换状态 ＝ 超级列表框1.取标题 (N － 1, 4)
    全临界.退出 ()
    .如果 (寻找文本 (局_兑换状态, “您已拥有”, , 假) ≠ -1 或 局_兑换状态 ＝ “购买成功”)
        超级列表框1.置状态图片 (N － 1, 0)
    .否则
        超级列表框1.置状态图片 (N － 1, 1)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()

.子程序 线程子程序
.参数 索引E, 整数型
.局部变量 局_商品TXT, 文本型
.局部变量 局_CKdata, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_账号用户名, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 F2_, 文本型, , "0"
.局部变量 要兑换的商品名称, 文本型
.局部变量 要兑换的商品价格, 文本型
.局部变量 要兑换的商品propid, 文本型
.局部变量 局_商品图片, 文本型
.局部变量 局_商品图片time, 文本型
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 appext, 文本型
.局部变量 purl, 文本型
.局部变量 str1, 文本型
.局部变量 str2, 文本型
.局部变量 游戏昵称, 文本型
.局部变量 局_bin, 字节集
.局部变量 msg, 文本型
.局部变量 优化价格, 文本型

窗口_置状态信息 (索引E, 2, “正在购买...”)
全临界E2.进入 ()
超级列表框1.置状态图片 (索引E, 0)
局_CKdata ＝ 超级列表框1.取标题 (索引E, 1)
局_商品TXT ＝ 超级列表框1.取标题 (索引E, 3)
超级列表框1.保证显示 (索引E)
全临界E2.退出 ()
.如果真 (局_商品TXT ＝ “”)
    窗口_置状态信息 (索引E, 1, “请添加商品！”)
    返回 ()
.如果真结束


F2_ ＝ 分割文本 (局_商品TXT, “一”, )
.如果真 (取数组成员数 (F2_) ＜ 4)
    窗口_置状态信息 (索引E, 2, “商品格式错误x”)
    返回 ()
.如果真结束

全临界E2.进入 ()
要兑换的商品名称 ＝ F2_ [1]
要兑换的商品价格 ＝ F2_ [2]
要兑换的商品propid ＝ F2_ [3]
局_商品图片 ＝ 文本_取出中间文本 (F2_ [4], “square/”, “.jpg”)
局_商品图片time ＝ 文本_取右边 (F2_ [4], “_t=”)
全临界E2.退出 ()

_F ＝ 分割文本 (局_CKdata, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (索引E, 1, “Cookie格式错误”)
    返回 ()
.如果真结束

全临界E2.进入 ()
局_账号用户名 ＝ _F [1]
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全临界E2.退出 ()

.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (索引E, 2, 返回txurlH5)
    返回 ()
.如果真结束


' APP购买商品
局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
.如果真 (局_actId参 ＝ “”)
    窗口_置状态信息 (索引E, 2, “登录小店失败”)
    返回 ()
.如果真结束


' 调试输出 (“purl---”, purl)
全临界E2.进入 ()
.如果 (组合框2.现行选中项 ＝ 0)
    purl ＝ “https://apps.game.qq.com/daoju/igw/livebuy/?_service=buy.plug.svr.web&_plug_id=7200&_jsvar=buyInfo&acctype=livelink&_app_id=2123&iActionId=44042&propid=” ＋ 要兑换的商品propid ＋ “&paytype=1&source=9263298&sAnchorId=9263298&attach={%22ch%22:%220%22}&apptype=3&_biz_code=cjm&_act_id=44042&sLiveUserInfo={%22sAnchorId%22:%229263298%22,%22sVideoId%22:0}&” ＋ 局_actId参 ＋ “&appext=%7B%22user_price%22:” ＋ 要兑换的商品价格 ＋ “,%22sGoodsPic%22:%22” ＋ 局_商品图片 ＋ “%22,%22paytype%22:1%7D&_sid=8&set=8”

.否则
    purl ＝ “https://apps.game.qq.com/daoju/igw/livebuy/?_service=buy.plug.svr.web&_plug_id=7200&_jsvar=buyInfo&acctype=livelink&_app_id=2123&iActionId=44042&propid=” ＋ 要兑换的商品propid ＋ “&paytype=5&source=9263298&sAnchorId=9263298&attach={%22ch%22:%220%22}&apptype=3&_biz_code=cjm&_act_id=44042&sLiveUserInfo={%22sAnchorId%22:%229263298%22,%22sVideoId%22:0}&” ＋ 局_actId参 ＋ “&appext=%7B%22user_price%22:” ＋ 要兑换的商品价格 ＋ “,%22sGoodsPic%22:%22” ＋ 局_商品图片 ＋ “%22,%22paytype%22:5%7D&_sid=8&set=8”
.如果结束

全临界E2.退出 ()


str1 ＝ 编码_Utf8到Ansi (网页_访问_对象 (purl, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”, , , 真, , ))

状态条1.置文本 (0, “购买：” ＋ str1)

' 购买成功返回：'var buyInfo={"act_amount":800,"event_id":"DJC-CJM-0101113752-nazUnu-44042-007277","iPayType":"1","msg":"ok","newBalance":170,"ret":"0","sSerialNum":"CJM-20260101113752036-860804563","serial":"CJM-20260101113752036-860804563","serverTime":1767238672,"span":"0-4","trace_id":"070c4fd9ac0e50ad80ca64b83e8df299","ts":"1767238672"};

.如果真 (寻找文本 (str1, “msg” ＋ #引号 ＋ “:” ＋ #引号 ＋ “ok” ＋ #引号, , 假) ≠ -1)
    窗口_置状态信息 (索引E, 2, “购买成功”)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; DCO-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))

    状态条1.置文本 (0, “查询：” ＋ str2)

    ' 返回： var info={"area":1,"code":{"userid":"12353341"},"event_id":"DJC-CJM-0101111544-XPqqUw-44042-936077","gameOpenId":"osewR0kigZPfAHU-hL9PNVhhsqMk","openIdType":"openid","partition":0,"platId":1,"roleId":"3667375425","roleName":"小竖林里吃过亏","type":"wx"};
    全临界E2.进入 ()
    游戏昵称 ＝ 文本_取出中间文本 (str2, “roleName” ＋ #引号 ＋ “:” ＋ #引号, #引号)
    优化价格 ＝ 到文本 (到整数 (要兑换的商品价格) ÷ 10)
    保存日志2 (时间_到文本 (取现行时间 (), 1) ＋ “ ” ＋ 局_账号用户名 ＋ “----” ＋ 游戏昵称 ＋ “----” ＋ 要兑换的商品名称 ＋ “----” ＋ 优化价格)
    局_bin ＝ 文转图片P (要兑换的商品名称 ＋ “ ” ＋ #换行符 ＋ 时间_格式化 (取现行时间 (), “yyyy年MM月dd日”, “ hh:mm:ss”, 真) ＋ #换行符 ＋ “兑换账号：” ＋ 游戏昵称 ＋ “(” ＋ 局_账号用户名 ＋ “)”)
    全临界E2.退出 ()
    .计次循环首 (3, )
        .如果真 (写到文件_ (全PIC ＋ “\” ＋ 游戏昵称 ＋ “-” ＋ 要兑换的商品名称 ＋ “.png”, 局_bin) ＝ 真)
            跳出循环 ()
        .如果真结束

    .计次循环尾 ()

    返回 ()
.如果真结束


msg ＝ 文本_取出中间文本 (str1, “msg” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.如果真 (msg ＝ “”)
    msg ＝ str1
.如果真结束

窗口_置状态信息 (索引E, 2, msg)

.子程序 Getcsrf_token222, 文本型
.参数 参_Cookie, 文本型
.局部变量 局_文本, 文本型
.局部变量 局_CCK, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 str, 文本型
.局部变量 返回CK, 文本型
.局部变量 csrf_token, 文本型

局_CCK ＝ 参_Cookie
str ＝ 到文本 (网页_访问_对象 (“https://www.douyu.com/japi/carnival/nc/common/generateCsrf”, 1, , 局_CCK, 返回CK, #常量10))
csrf_token ＝ 文本_取出中间文本 (返回CK, “cvl_csrf_token=”, “;”)
返回 (csrf_token)

.子程序 _一键查询换绑时间_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    系统_处理事件 ()
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&子程序查换绑时间, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 子程序查换绑时间
.参数 索引E, 整数型
.局部变量 局_文本, 文本型
.局部变量 局_ctn, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 局_uid, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 changeRoleWaitTime, 整数型
.局部变量 timetxt, 文本型
.局部变量 局_txt, 文本型

全临界.进入 ()
局_文本 ＝ 超级列表框1.取标题 (索引E, 1)
局_ctn ＝ 超级列表框1.取标题 (索引E, 5)
全临界.退出 ()
局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    状态条1.置文本 (0, “Cookie格式错误”)
    返回 ()
.如果真结束

局_uid ＝ 局_F [2]
局_Cookie ＝ 局_F [3]
' 'actAlias=20220616CJSZU

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/carnivalApi/v2/tencent/bindInfo?actAlias=20250213NQCYX”, , , 局_Cookie, , #常量3))
yyjson.清空 ()
yyjson.解析 (str)
.如果 (yyjson.取文本 (“msg”) ＝ “success”)
    changeRoleWaitTime ＝ yyjson.取整数 (“data/changeRoleWaitTime”)
    timetxt ＝ 时间_秒到时分秒格式 (changeRoleWaitTime)
    窗口_置状态信息 (索引E, 2, “释放时间：” ＋ timetxt)

.否则
    窗口_置状态信息 (索引E, 2, “查询失败”)
.如果结束


.子程序 _时钟1_周期事件

启动线程 (&等待抢购, , )

.子程序 等待抢购

.如果真 (时间_取北京时间 () ＝ 到时间 (到文本 (取年份 (取现行时间 ())) ＋ “年” ＋ 到文本 (取月份 (取现行时间 ())) ＋ “月” ＋ 到文本 (取日 (取现行时间 ())) ＋ “日” ＋ 编辑框_时.内容 ＋ “时” ＋ 编辑框_分.内容 ＋ “分” ＋ 编辑框_秒.内容 ＋ “秒”))
    时钟1.时钟周期 ＝ 0
    .如果真 (工作线程池EX.取_状态 () ＝ 1)
        返回 ()
    .如果真结束

    _按钮_启动_被单击 ()

.如果真结束


.子程序 _选择框_定时抢购_被单击

.如果 (选择框_定时抢购.选中 ＝ 真)
    选择框_心跳.选中 ＝ 假
    _全选_被选择 ()
    提示框 (“已开启定时抢购√”, , , , 1000)
    时钟1.时钟周期 ＝ 1000
    启动线程 (&等待抢购, , )

.否则
    时钟1.时钟周期 ＝ 0
    提示框 (“已关闭定时抢购×”, , , , 1000)
.如果结束


.子程序 _一键添加商品_被选择
.局部变量 局_商品名, 文本型

启动线程 (&子程序添加商品列表, , )

.子程序 子程序添加商品列表
.局部变量 i, 整数型
.局部变量 局_商品名, 文本型

局_商品名 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
.计次循环首 (超级列表框1.取表项数 (), i)
    .如果真 (超级列表框1.取当前状态图片 (i － 1) ＝ 1)
        超级列表框1.置标题 (i － 1, 3, 局_商品名)
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
状态条1.置文本 (0, “成功添加商品：” ＋ 局_商品名)

.子程序 _按钮1_被单击
.局部变量 P, 整数型

.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    超级列表框1.置状态图片 (P － 1, 1)
.计次循环尾 ()


.子程序 _按钮2_被单击
.局部变量 i, 整数型
.局部变量 局_商品名称, 文本型
.局部变量 查找名称, 文本型

局_商品名称 ＝ 删全部空 (编辑框_商品名称.内容)
.如果真 (局_商品名称 ＝ “”)
    提示框 (“请输入商品名称”)
    返回 ()
.如果真结束

.计次循环首 (组合框1.取项目数 (), i)
    查找名称 ＝ 组合框1.取项目文本 (i － 1)
    .如果真 (寻找文本 (查找名称, 局_商品名称, , 假) ≠ -1)
        组合框1.现行选中项 ＝ i － 1
        跳出循环 ()
    .如果真结束

.计次循环尾 ()

.子程序 _一键查询碎片_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查询碎片, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()


.子程序 查询碎片
.参数 参_索引E, 整数型
.局部变量 局_文本Ck, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 balance, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 yyjson, json对象
.局部变量 gameOpenId, 文本型
.局部变量 roleId, 文本型
.局部变量 str2, 文本型
.局部变量 msg, 文本型
.局部变量 str_x, 文本型
.局部变量 jb2, 文本型
.局部变量 type, 文本型
.局部变量 areaid, 文本型
.局部变量 plat, 文本型

局_文本Ck ＝ 超级列表框1.取标题 (参_索引E, 1)
_F ＝ 分割文本 (局_文本Ck, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (参_索引E, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

全临界.进入 ()
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全临界.退出 ()
' 调试输出 (“局_token--”, 局_token)
.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (参_索引E, 2, 返回txurlH5)
    返回 ()
.如果真结束

全临界.进入 ()
局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
全临界.退出 ()

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live?acctype=livelink&_jsvar=info&_service=other.livelink.getrole.out&_biz_code=cjm&_act_id=44042&_app_id=2123&” ＋ 局_actId参, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
yyjson.清空 ()
yyjson.解析 (文本_取出中间文本 (str, “var info=”, “;”))
gameOpenId ＝ yyjson.取文本 (“gameOpenId”)
roleId ＝ yyjson.取文本 (“roleId”)
plat ＝ yyjson.取文本 (“platId”)
type ＝ yyjson.取文本 (“type”)
areaid ＝ 选择 (type ＝ “wx”, “1”, “2”)

.如果真 (gameOpenId ≠ “” 且 roleId ≠ “”)
    str2 ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live/?_jsvar=jbInfos&_service=pay.idip.gamecoin.get&_app_id=2123&acctype=ttpp&areaid=” ＋ areaid ＋ “&eventid=&interwork=0&openid=” ＋ gameOpenId ＋ “&openkey=openkey&partition=0&pay_token=&plat=” ＋ plat ＋ “&plat_pc=0&roleid=” ＋ roleId ＋ “&_biz_code=cjm&_act_id=44042&coin_type=1&_sid=6”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
    ' '调试输出 (取程序名称 (1), str2)
    状态条1.置文本 (0, “余额：” ＋ str2)
    yyjson.清空 ()
    yyjson.解析 (文本_取出中间文本 (str2, “var jbInfos=”, “;”))
    jb2 ＝ yyjson.取文本 (“jb2”)
    窗口_置状态信息 (参_索引E, 2, “碎片：” ＋ 选择 (jb2 ≠ “”, jb2, str2))
    返回 ()
.如果真结束

msg ＝ 文本_取出中间文本 (str, “msg” ＋ #引号 ＋ “:” ＋ #引号, #引号)
.如果真 (msg ＝ “”)
    msg ＝ str
.如果真结束

窗口_置状态信息 (参_索引E, 2, msg)


.子程序 _选择框_心跳_被单击

.如果真 (选择框_心跳.选中 ＝ 真)
    时钟1.时钟周期 ＝ 0
    选择框_定时抢购.选中 ＝ 假

.如果真结束


.子程序 _组合框1_列表项被选择
.局部变量 当前项目, 文本型
.局部变量 _F, 文本型, , "0"

当前项目 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
_F ＝ 分割文本 (当前项目, “一”, )
.如果真 (取数组成员数 (_F) ＜ 5)
    编辑框_剩余量.内容 ＝ “NULL”
    返回 ()
.如果真结束

编辑框_剩余量.内容 ＝ _F [5]

.子程序 _一键查询购买记录_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查询兑换记录, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()


.子程序 查询兑换记录
.参数 参_索引E, 整数型
.局部变量 局_文本Ck, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 str, 文本型
.局部变量 balance, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 acf_uid, 文本型
.局部变量 acf_stk, 文本型
.局部变量 acf_ltkid, 文本型
.局部变量 局_token, 文本型
.局部变量 返回txurlH5, 文本型
.局部变量 局_actId参, 文本型
.局部变量 yyjson, json对象
.局部变量 yyjson2, json对象
.局部变量 gameOpenId, 文本型
.局部变量 roleId, 文本型
.局部变量 str2, 文本型
.局部变量 msg, 文本型
.局部变量 str_x, 文本型
.局部变量 jb2, 文本型
.局部变量 兑换list, 整数型
.局部变量 i, 整数型
.局部变量 sGoodsInfo, 文本型
.局部变量 p, 整数型
.局部变量 sGoodsName, 文本型
.局部变量 兑换记录组, 文本型, , "0"
.局部变量 局_合并str, 文本型
.局部变量 sPacketName, 文本型

局_文本Ck ＝ 超级列表框1.取标题 (参_索引E, 1)
_F ＝ 分割文本 (局_文本Ck, “----”, )
.如果真 (取数组成员数 (_F) ＜ 3)
    窗口_置状态信息 (参_索引E, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

全临界.进入 ()
局_Cookie ＝ _F [3]
acf_uid ＝ 网页_取单条Cookie (局_Cookie, “acf_uid”, 真)
acf_stk ＝ 网页_取单条Cookie (局_Cookie, “acf_stk”, 真)
acf_ltkid ＝ 网页_取单条Cookie (局_Cookie, “acf_ltkid”, 真)
局_token ＝ acf_uid ＋ “_1_” ＋ acf_stk ＋ “_0_” ＋ acf_ltkid
全临界.退出 ()
' 调试输出 (“局_token--”, 局_token)
.如果真 (登录和平集市 (局_token, 返回txurlH5) ＝ 假)
    窗口_置状态信息 (参_索引E, 2, 返回txurlH5)
    返回 ()
.如果真结束

全临界.进入 ()
局_actId参 ＝ 文本_取右边 (返回txurlH5, “?”)
全临界.退出 ()



str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://apps.game.qq.com/daoju/igw/live/?_service=order.list&_jsvar=info&acctype=livelink&_app_id=2123&hist=0&ps=10&pn=1&_biz_code=cjm&_act_id=44042&” ＋ 局_actId参 ＋ “&_sid=8&set=8”, , , , , “Host: apps.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36, Douyu_Android” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “X-Requested-With: air.tv.douyu.android” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://app.daoju.qq.com/”))
yyjson.清空 ()
yyjson.解析 (文本_取出中间文本 (str, “var info=”, “;”))
兑换list ＝ yyjson.取成员数 (“data/list”)

.计次循环首 (兑换list, i)
    sGoodsInfo ＝ yyjson.取文本 (“data/list/” ＋ 到文本 (i － 1) ＋ “/sGoodsInfo”)
    yyjson2.清空 ()
    yyjson2.解析 (sGoodsInfo)
    .计次循环首 (yyjson2.取成员数 (“list”), p)
        sPacketName ＝ yyjson2.取文本 (“list/” ＋ 到文本 (p － 1) ＋ “/sPacketName”)
        加入成员 (兑换记录组, sPacketName)

    .计次循环尾 ()
.计次循环尾 ()
局_合并str ＝ 数组_合并_快速 (兑换记录组, “，”)
超级列表框1.置标题 (参_索引E, 4, 到文本 (取数组成员数 (兑换记录组)) ＋ “*” ＋ 局_合并str)

