这个框架其实是我很早之前就开发的,但是今天我试了一下发现还能正常跑通,自己留着也浪费了,因为前期我开发的时候大概花费了10天左右,废了很大的心血,感觉分享出来。
下载地址:https://www.pan38.com/share.php?code=KuVya 提取码:8888
源码部分:【仅供学习参考】
```.版本 2
.支持库 iext
.支持库 iext2
.程序集 窗口程序集_启动窗口
.程序集变量 DVD, 播放器
.程序集变量 待解析网址, 文本型, , , 分享时网址
.程序集变量 所属平台, 文本型, , , 抖/快/B...
.程序集变量 类型, 整数型, , , 1.jpg,2.mp4,3.mp3
.程序集变量 网址, 文本型, , , 下载直链
.程序集变量 重试次数, 整数型, , , 接口1连接失败重试
.程序集变量 现所在行, 整数型, , , 解析历史
.子程序 _启动窗口创建完毕
DVD.创建 (启动窗口.取窗口句柄 (), 18, 18, 268, 476, )
DVD.界面模式 (“none”)
多线程模块启动线程 (&预加载, , , , )
返回 ()
.子程序 预加载, , , 配置项等等
.局部变量 i, 整数型
.局部变量 json, 类_json, 静态
.局部变量 啥接口, 文本型
.如果真 (目录是否存在 (取运行目录 () + “\已解析视频\”) = 假)
创建目录 (取运行目录 () + “\已解析视频\”)
写到文件 (取运行目录 () + “\已解析视频\配置.ini”, #配置本)
.如果真结束
.如果真 (文件是否存在 (取运行目录 () + “\已解析视频\配置.ini”) = 假)
写到文件 (取运行目录 () + “\已解析视频\配置.ini”, #配置本)
.如果真结束
啥接口 = 读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “默认接口”, )
编辑框1播放次.内容 = 读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “重复播放”, )
.如果真 (啥接口 = “1”)
单选框接口1.选中 = 真
.如果真结束
.如果真 (啥接口 = “2”)
单选框接口2.选中 = 真
.如果真结束
.如果真 (啥接口 = “3”)
单选框接口3.选中 = 真
.如果真结束
.如果真 (啥接口 = “4”)
单选框接口4.选中 = 真
.如果真结束
.如果 (读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动下载”, ) = “真”)
选择框下载.选中 = 真
.否则
选择框下载.选中 = 假
.如果结束
.如果 (读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动播放”, ) = “真”)
选择框播放.选中 = 真
.否则
选择框播放.选中 = 假
.如果结束
DVD.播放次数 (到整数 (读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “重复播放”, )))
.计次循环首 (25, i) ' 读取最近解析历史数据
json.解析 (读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “解析历史”, “数据” + 到文本 (i), ), , )
.如果真 (json.取通用属性 (“视频地址”, ) ≠ “”)
超级列表框1.插入表项 (0, , , , , )
超级列表框1.置标题 (0, 0, 到文本 (超级列表框1.取表项数 ()))
超级列表框1.置标题 (0, 1, json.取通用属性 (“['标题']”, ))
超级列表框1.置标题 (0, 2, “旧数据”)
超级列表框1.置标题 (0, 3, json.取通用属性 (“['视频地址']”, ))
超级列表框1.置标题 (0, 4, json.取通用属性 (“['配音地址']”, ))
超级列表框1.置标题 (0, 5, json.取通用属性 (“['封面地址']”, ))
超级列表框1.置标题 (0, 6, json.取通用属性 (“['直链地址']”, ))
.如果真结束
处理事件 ()
.计次循环尾 ()
现所在行 = 到整数 (读配置项 (取运行目录 () + “\已解析视频\配置.ini”, “解析历史”, “现所在行”, ))
.如果真 (现所在行 ≥ 25)
现所在行 = 1
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “解析历史”, “现所在行”, 到文本 (现所在行))
.如果真结束
连接服务器 ()
返回 ()
.子程序 连接服务器, , , 接口1专用
.局部变量 局_计时开始, 日期时间型
.局部变量 连接状态, 逻辑型
.如果真 (单选框接口1.选中)
局计时开始 = 取现行时间 ()
.如果真 (客户1.连接 (“a.cnxw.site”, 19730) = 假)
标签提示.标题 = “接口1,连接失败,正在重试!”
连接状态 = 真
.如果真结束
.如果 (连接状态 = 假)
标题 = “视频解析 V3.0 公益版 - 在线中”
.否则
标签提示.标题 = “服务器连接失败,10秒后自动尝试连接”
时钟2.时钟周期 = 10000
.如果结束
.如果真结束
返回 ()
.子程序 多平台解析, , , 接口1由 精易用户 qq261583065 提供
.局部变量 待发送数据, 字节集, 静态
待发送数据 = 到字节集 (所属平台 + “:” + 待解析网址)
客户1.发送数据 (待发送数据)
返回 ()
.子程序 客户1数据到达, , , 接口1由 精易用户 qq261583065 提供
.局部变量 js, 类_json, 静态
.局部变量 返回值, 文本型
按钮添加.标题 = “解 析”
按钮添加.禁止 = 假
返回值 = 文本_替换 (编码Utf8到Ansi (客户1.取回数据 ()), , , , 字符 (10), “”, 字符 (13), “”, “ ”, “”, , , , )
js.解析 (返回值, , )
.如果 (js.取通用属性 (“code”, ) = “1”)
标签详细.标题 = js.取数据文本 ()
编辑框标题.内容 = js.取通用属性 (“标题”, )
编辑框封面.内容 = js.取通用属性 (“封面”, )
编辑框直链1.内容 = js.取通用属性 (“视频”, )
编辑框直链2.内容 = js.取通用属性 (“音频”, )
标签提示.标题 = “解 析 成 功”
时钟1.时钟周期 = 1000
js.清除 ()
.否则
.如果真 (js.取通用属性 (“code”, ) ≠ “5”)
标签详细.标题 = js.取数据文本 ()
js.清除 ()
.如果真结束
.如果结束
返回 ()
.子程序 阿怪API解析, , , 接口2由 api.aagtool.top 提供
.局部变量 返回值, 文本型
.局部变量 json, 类_json, 静态
返回值 = 编码Utf8到Ansi (网页访问对象 (“https://api.aagtool.top/api/” + 所属平台 + “?url=” + 待解析网址 + “/”, 0, , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203”, , , , , , , , , , , , , ))
json.解析 (返回值, , )
按钮添加.禁止 = 假
按钮添加.标题 = “解 析”
标签详细.标题 = 返回值
.如果真 (json.取通用属性 (“code”, ) = “1”)
标签提示.标题 = “请 稍 候 再 试”
标签详细.标题 = 返回值
返回 ()
.如果真结束
编辑框标题.内容 = json.取通用属性 (“title”, )
.如果真 (所属平台 = “dywsyjx”) ' 抖音
编辑框直链1.内容 = json.取通用属性 (“url”, )
.如果真结束
.如果真 (所属平台 = “bzspjx”) ' B站
编辑框直链1.内容 = json.取通用属性 (“url”, )
.如果真结束
.如果真 (所属平台 = “kswsyjx”) ' 快手
编辑框直链1.内容 = json.取通用属性 (“url1”, )
编辑框直链2.内容 = json.取通用属性 (“url2”, )
.如果真结束
.如果真 (所属平台 = “bzspjx” 或 所属平台 = “kswsyjx”)
编辑框封面.内容 = json.取通用属性 (“videocoverurl”, )
.如果真结束
标签_提示.标题 = “解 析 成 功”
json.清除 ()
时钟1.时钟周期 = 1000
返回 ()
.子程序 抖音解析, , , 接口3由 api2.52jan.com 提供 真批量解析 仅限抖音
.局部变量 返回值, 文本型
.局部变量 json, 类_json
' 真批量解析,前提是得拿到视频的ID ,videolist=[id1,id2,id3....] 这样能官方批量解析,本人在这只做单条解析用
按钮添加.禁止 = 假
按钮_添加.标题 = “解 析”
返回值 = 编码Utf8到Ansi (网页访问对象 (待解析网址, 0, , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203”, , , 真, , , , , , , , , , ))
返回值 = 文本取出中间文本 (返回值, “video/”, “/?”, , )
返回值 = 编码Utf8到Ansi (网页访问_对象 (“http://api2.52jan.com/video_info”, 1, “video_list=[” + 返回值 + “]”, , , , , , , , , , , , , , , , ))
json.解析 (返回值, , )
.如果真 (json.取通用属性 (“['aweme_details'][0].video['play_addr']['urllist'][0]”, ) ≠ “”)
编辑框标题.内容 = json.取通用属性 (“['awemedetails'][0].desc”, )
编辑框直链1.内容 = json.取通用属性 (“['aweme_details'][0].video['play_addr']['url_list'][” + 到文本 (json.成员数 (“['aweme_details'][0].video['play_addr']['urllist']”) - 1) + “]”, )
编辑框直链2.内容 = json.取通用属性 (“['aweme_details'][0].video['play_addr']['urllist'][0]”, )
标签提示.标题 = “解 析 成 功”
时钟1.时钟周期 = 500
.如果真结束
标签_详细.标题 = json.取数据文本 ()
json.清除 ()
' 调试输出 (“视频作者:” + json.取通用属性 (“['aweme_details'][0].author.nickname”, ))
返回 ()
.子程序 多平台API, , , 接口4 由 精易用户 qq261583065 提供
.局部变量 局提交协议头, 文本型
.局部变量 局结果, 字节集
.局部变量 局_返回, 文本型
.局部变量 js, 类_json, 静态
.局部变量 json, 类_json, 静态
按钮添加.禁止 = 假
按钮添加.标题 = “解 析”
局_提交协议头 = “User-Agent: Mozilla/5.0 (iPad; CPU OS 110 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1”
局结果 = 网页访问 (“http://jx.cnxw.site/” + 待解析网址, 1, , , , 局提交协议头, , 真, , , , , , )
局_返回 = 到文本 (编码Utf8到Ansi (局结果))
js.解析 (局_返回, , )
.如果 (js.取通用属性 (“code”, ) = “1”)
.如果真 (js.取通用属性 (“message”, ) = “成功”)
json.解析 (js.取通用属性 (“text”, ), , )
编辑框标题.内容 = json.取通用属性 (“标题”, )
编辑框封面.内容 = json.取通用属性 (“封面”, )
编辑框直链1.内容 = json.取通用属性 (“视频”, )
编辑框直链2.内容 = json.取通用属性 (“音频”, )
标签提示.标题 = “解 析 成 功”
时钟1.时钟周期 = 1000
json.清除 ()
.如果真结束
标签详细.标题 = js.取数据文本 ()
返回 ()
.否则
.如果真 (js.取通用属性 (“code”, ) ≠ “5”)
标签_详细.标题 = js.取数据文本 ()
js.清除 ()
.如果真结束
.如果结束
返回 ()
.子程序 按钮添加_被单击, , , 一键解析不同平台
按钮添加.禁止 = 真
按钮添加.标题 = “解 析 中”
标签_提示.标题 = “正在提交解析中...”
待解析网址 = 正则匹配单个 (标签待解释.标题, 1, )
.如果真 (待解析网址 = “1”)
按钮添加.标题 = “解 析”
按钮添加.禁止 = 假
返回 ()
.如果真结束
编辑框标题.内容 = “”
编辑框封面.内容 = “”
编辑框直链1.内容 = “”
编辑框直链2.内容 = “”
.如果真 (单选框接口1.选中 = 真)
.如果真 (文本寻找文本 (待解析网址, “douyin”, , ) ≠ -1) ' 抖音
所属平台 = “抖音”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “kuaishou”, , ) ≠ -1) ' 快手
所属平台 = “快手”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “bilibili”, , ) ≠ -1) ' B站
所属平台 = “哔哩哔哩”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “ixigua”, , ) ≠ -1) ' 西瓜
所属平台 = “西瓜视频”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “toutiao”, , ) ≠ -1) ' 头条
所属平台 = “今日头条”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “weibo”, , ) ≠ -1) ' 微博
所属平台 = “微博”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “haokan”, , ) ≠ -1) ' 好看
所属平台 = “好看视频”
.如果真结束
标签详细.标题 = “正在提交解析: ” + 所属平台 + #换行符 + 待解析网址
多线程模块启动线程 (&多平台解析, , , , )
返回 ()
.如果真结束
.如果真 (单选框接口2.选中 = 真)
.如果真 (文本寻找文本 (待解析网址, “douyin”, , ) ≠ -1) ' 抖音
所属平台 = “dywsyjx”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “kuaishou”, , ) ≠ -1) ' 快手
所属平台 = “kswsyjx”
.如果真结束
.如果真 (文本寻找文本 (待解析网址, “bilibili”, , ) ≠ -1) ' B站
所属平台 = “bzspjx”
.如果真结束
标签详细.标题 = “正在提交解析: ” + 所属平台 + #换行符 + 待解析网址
多线程模块启动线程 (&阿怪API解析, , , , )
返回 ()
.如果真结束
.如果真 (单选框接口3.选中 = 真)
标签详细.标题 = “正在提交解析: ” + #换行符 + 待解析网址
多线程模块启动线程 (&抖音解析, , , , )
返回 ()
.如果真结束
.如果真 (单选框接口4.选中 = 真)
标签详细.标题 = “正在提交解析: ” + #换行符 + 待解析网址
多线程模块启动线程 (&多平台API, , , , )
.如果真结束
返回 ()
.子程序 正则匹配单个, 文本型, , 匹配 粘贴过来的 各平台网址 提取网址
.参数 源文本, 文本型, , 欲被匹配的文本
.参数 匹配索引, 整数型, , 表达式的索引,从1开始将代表为子匹配文本的索引。
.参数 子匹配索引, 整数型, 可空, 可空。 子表达式的索引,从1开始将代表为子匹配文本的索引
.局部变量 局正则, 正则表达式类
.如果真 (局正则.创建 (“[a-zA-z]+://[^\s]*”, 源文本, 假, 假, 真, 真) = 假)
信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, , )
返回 (“1”)
.如果真结束
.如果真 (局正则.取匹配数量 () = 0)
信息框 (“网址不正确,请粘贴分享时的网址!”, #错误图标, , )
返回 (“1”)
.如果真结束
.如果真 (匹配索引 < 1)
信息框 (“参数二 - 匹配索引必须大于0。”, #错误图标, , )
返回 (“1”)
.如果真结束
.判断开始 (匹配索引 > 0 且 子匹配索引 > 0) ' 如果 匹配索引 和 子匹配索引 都大于0,则匹配子匹配文本
返回 (局_正则.取子匹配文本 (匹配索引, 子匹配索引, ))
.判断 (匹配索引 > 0) ' 如果只有匹配索引大于0,则返回指定的匹配文本
返回 (局_正则.取匹配文本 (匹配索引, ))
.默认
.判断结束
返回 (“1”)
.子程序 按钮粘贴_被单击, , , 粘贴分享过来的网址
标签待解释.标题 = 删首尾空 (取剪辑板文本 ())
标签提示.标题 = “支持多平台”
返回 ()
.子程序 超级列表框1左键单击表项, , , 左键单击 把信息显示到左下方
.如果真 (超级列表框1.取标题 (超级列表框1.现行选中项, 1) ≠ “”)
编辑框标题.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
编辑框封面.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 5)
编辑框直链1.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 3)
编辑框直链2.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 4)
标签待解释.标题 = 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
标签提示.标题 = “左键双击 播放视频 / 右键单击 下载视频”
标签详细.标题 = 编辑框标题.内容 + #换行符 + 超级列表框1.取标题 (超级列表框1.现行选中项, 6) + #换行符 + “直链1:” + 编辑框直链1.内容 + #换行符 + “直链2:” + #换行符 + 编辑框直链2.内容 + #换行符 + “封面地址:” + #换行符 + 编辑框_封面.内容
.如果真结束
返回 ()
.子程序 超级列表框1右键单击表项, , , 右键单击 下载视频
.如果真 (超级列表框1.取标题 (超级列表框1.现行选中项, 3) ≠ “”)
标签提示.标题 = “视频正在下载...”
类型 = 2
网址 = 超级列表框1.取标题 (超级列表框1.现行选中项, 3)
多线程模块启动线程 (&文件下载, , , , )
.如果真结束
返回 ()
.子程序 超级列表框1被双击, 逻辑型, , 左键双击播放视频
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (编辑框直链1.内容 ≠ “”)
处理事件 ()
DVD.地址 (编辑框直链1.内容)
标签提示.标题 = “正在播放...”
标签详细.标题 = 编辑框标题.内容 + #换行符 + 编辑框直链1.内容
.如果真结束
返回 (真)
.子程序 文件下载, , , 视频下载
.局部变量 类别, 文本型
.局部变量 i, 整数型
处理事件 ()
.如果真 (目录是否存在 (取运行目录 () + “\已解析视频”) = 假)
创建目录 (取运行目录 () + “\已解析视频”)
.如果真结束
.如果真 (类型 = 1)
类别 = “.jpg”
.如果真结束
.如果真 (类型 = 2)
类别 = “.mp4”
.如果真结束
.如果真 (类型 = 3)
类别 = “.mp3”
.如果真结束
网页断点续传 (网址, 取运行目录 () + “\已解析视频\” + 到文本 (类型) + “_” + 到文本 (取现行时间 ()) + 类别, 到整数 (&下载回调))
超级列表框1.置标题 (超级列表框1.现行选中项, 2, “已下载”)
返回 ()
.子程序 下载回调, , , 下载进度
.参数 待下载文件总长度, 整数型
.参数 已下载总长度, 整数型
处理事件 ()
进度条下载进度.位置 = 四舍五入 (指针到长整数型汇编 (已下载总长度) ÷ 指针到长整数型汇编 (待下载文件总长度) × 100, )
.如果真 (进度条下载进度.位置 = 100)
标签提示.标题 = “视频已下载完成”
标签详细.标题 = “已下载到:” + 取运行目录 () + “\已解析视频”
.如果真结束
返回 ()
.子程序 选择框下载_被单击, , , 开关自动下载
.如果 (选择框下载.选中 = 真)
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动下载”, “真”)
标签提示.标题 = “自动下载 已开启”
.否则
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动下载”, “假”)
标签_提示.标题 = “自动下载 已关闭”
.如果结束
返回 ()
.子程序 选择框播放_被单击, , , 开关自动播放
.如果 (选择框播放.选中 = 真)
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动播放”, “真”)
标签提示.标题 = “自动播放 已开启”
.否则
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “自动播放”, “假”)
标签_提示.标题 = “自动播放 已关闭”
.如果结束
返回 ()
.子程序 单选框接口1_被单击, , , 选择接口1 服务
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “默认接口”, “1”)
多线程模块启动线程 (&连接服务器, , , , )
标签提示.标题 = “接口1 采用客户Duan 连接方式”
返回 ()
.子程序 单选框接口2_被单击, , , 选译接口2 服务
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “默认接口”, “2”)
标签_提示.标题 = “接口2 采用网页APi 连接方式”
客户1.断开连接 ()
返回 ()
.子程序 单选框接口3_被单击, , , 选译接口3 服务
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “默认接口”, “3”)
标签_提示.标题 = “接口3 仅限 抖音解析”
客户1.断开连接 ()
返回 ()
.子程序 单选框接口4_被单击, , , 选译接口4 服务
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “默认接口”, “4”)
标签_提示.标题 = “接口3、接口1同源 采用 网页API方式”
客户1.断开连接 ()
返回 ()
.子程序 标签9鼠标左键被放开, 逻辑型, , 打开已下载目录
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (目录是否存在 (取运行目录 () + “\已解析视频”) = 假)
创建目录 (取运行目录 () + “\已解析视频”)
.如果真结束
标签提示.标题 = “正在打开下载目录”
文件_执行 (取运行目录 () + “\已解析视频”, , 0)
返回 ()
.子程序 图片框1鼠标左键被放开, 逻辑型, , 二开请保留原作者信息
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
图片框1.可视 = 假
标签提示.标题 = “开发不易,且行且珍惜”
标签详细.标题 = #换行符 + “ 接口1 由 bbs.125.la/?278535 提供” + #换行符 + #换行符 + “ 接口2 阿怪 api.aagtool.top 提供” + #换行符 + #换行符 + “接口3 由 api2.52jan.com 提供” + #换行符 + #换行符 + “ 非常感谢他们的大无私精神!”
返回 ()
.子程序 时钟1周期事件, , , 自动下载和播放用
.局部变量 json, 类_json, 静态
超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (0, 0, 到文本 (超级列表框1.取表项数 ()))
超级列表框1.置标题 (0, 1, 编辑框标题.内容)
超级列表框1.置标题 (0, 2, “待下载”)
超级列表框1.置标题 (0, 3, 编辑框直链1.内容)
超级列表框1.置标题 (0, 4, 编辑框直链2.内容)
超级列表框1.置标题 (0, 5, 编辑框封面.内容)
超级列表框1.置标题 (0, 6, 待解析网址) ' 原来链
.如果真 (超级列表框1.取表项数 () > 25)
超级列表框1.删除表项 (25)
.如果真结束
.如果真 (选择框下载.选中)
类型 = 2
网址 = 编辑框直链1.内容
多线程模块启动线程 (&文件下载, , , , )
超级列表框1.置标题 (0, 2, “已下载”)
.如果真结束
.如果真 (选择框播放.选中)
DVD.地址 (编辑框_直链1.内容)
.如果真结束
json.加成员 (编辑框标题.内容, “标题”, , )
json.加成员 (编辑框直链1.内容, “视频地址”, , )
json.加成员 (编辑框直链2.内容, “配音地址”, , )
json.加成员 (编辑框封面.内容, “封面地址”, , )
json.加成员 (待解析网址, “直链地址”, , )
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “解析历史”, “数据” + 到文本 (现所在行), json.取数据文本 ())
现所在行 = 现所在行 + 1
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “解析历史”, “现所在行”, 到文本 (现所在行))
json.清除 ()
时钟1.时钟周期 = 0
返回 ()
.子程序 时钟2周期事件, , , 自动重连服务器,接口1用
多线程模块启动线程 (&连接服务器, , , , )
.如果真 (重试次数 = 3)
客户1.断开连接 ()
标签提示.标题 = “已重试N多次无法连接服务器,请使用接口2”
重试次数 = 0
时钟2.时钟周期 = 0
返回 ()
.如果真结束
重试次数 = 重试次数 + 1
时钟2.时钟周期 = 0
.子程序 标签下载1鼠标左键被放开, 逻辑型, , 下载
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
类型 = 1
网址 = 编辑框封面.内容
多线程模块启动线程 (&文件下载, , , , )
.子程序 标签下载2鼠标左键被放开, 逻辑型, , 下载
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
类型 = 2
网址 = 编辑框直链1.内容
多线程模块启动线程 (&文件下载, , , , )
.子程序 标签下载3鼠标左键被放开, 逻辑型, , 下载
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
类型 = 2
网址 = 编辑框直链2.内容
多线程模块启动线程 (&文件下载, , , , )
.子程序 标签赞助_鼠标左键被放开, 逻辑型, , 二开请保留原作者信息
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
图片框1.调整层次 (1)
图片框1.可视 = 真
标签提示.标题 = “赞助点呗 谢谢”
标签详细.标题 = #换行符 + “ 本程序 由 JCOS https://bbs.125.la/?578637 开发” + #换行符 + #换行符 + “ 请且用且珍惜 有条件的赏包烟 谢谢!”
返回 ()
.子程序 标签复标题_鼠标左键被放开, 逻辑型, , 复制
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
置剪辑板文本 (编辑框标题.内容)
标签提示.标题 = “已复制 标题”
.子程序 标签复封面_鼠标左键被放开, 逻辑型, , 复制
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
置剪辑板文本 (编辑框封面.内容)
标签提示.标题 = “已复制 封面地址”
.子程序 标签复直链1_鼠标左键被放开, 逻辑型, , 复制
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
置剪辑板文本 (编辑框直链1.内容)
标签提示.标题 = “已复制 直链地址”
.子程序 标签复直链2_鼠标左键被放开, 逻辑型, , 复制
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
置剪辑板文本 (编辑框直链2.内容)
标签提示.标题 = “已复制 连接地址”
.子程序 标签随机_鼠标左键被放开, 逻辑型, , 可用于游戏
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 json, 类_json, 静态
.局部变量 返回值, 文本型
返回值 = 编码utf8到gb2312 (到文本 (网页访问对象 (“https://api.aagtool.top/api/sjsfz?country=cn”, 0, , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203”, , , , , , , , , , , , , )))
json.解析 (返回值, , )
.如果真 (json.取通用属性 (“code”, ) = “1”)
标签提示.标题 = “请 稍 候 再 试”
标签详细.标题 = json.取通用属性 (“message”, )
返回 ()
.如果真结束
标签提示.标题 = json.取通用属性 (“user”, ) + “ :” + json.取通用属性 (“userid”, )
置剪辑板文本 (标签提示.标题)
标签详细.标题 = “已复制到剪辑板” + #换行符 + 返回值
返回 ()
.子程序 标签详细_被双击, 逻辑型, , 复制详情
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
置剪辑板文本 (标签详细.标题)
标签提示.标题 = “已把详情 复制到剪辑板”
.子程序 编辑框1播放次_内容被改变, , , 视频重复播放次数
写配置项 (取运行目录 () + “\已解析视频\配置.ini”, “视频解析”, “重复播放”, 编辑框1播放次.内容)
DVD.播放次数 (到整数 (编辑框1播放次.内容))
.子程序 _启动窗口将被销毁, , , 退出程序
客户1.断开连接 ()
DVD.销毁 ()
处理事件 ()
结束 ()
```