知识点:网络传送支持库,正则,数据类型遗留问题:很多不能下载的 ,就比如这个懒人听书网,很多页面的下载链接带token,是没办法实现下载的 ,没找到解决办法
贴源码-------------------------------------------------------
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 小说 | 数据类型_小说 | | 下载 | 下载对象 | | 当前下载索引 | 整数型 | | 单章小说总大小 | 整数型 | | 单章已接收大小 | 整数型 | | 保存目录 | 文本型 | | 下载完成 | 逻辑型 | |
小说.ID = 到整数 (编辑框1.内容 )子程序_获取基本信息 ()标签3.标题 = 小说.名称 标签4.标题 = 到文本 (小说.章节数 )标签6.标题 = 小说.作者 标签8.标题 = 小说.主播 总页数 = 四舍五入 (小说.章节数 ÷ 10, 0 )计次循环首 (总页数 + 1, i )子程序_获取章节 (i - 1 )计次循环尾 ()网页源码 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://www.lrts.me/book/” + 到文本 (小说.ID ), 1, , , , , , , , , , , , , , , )) )小说.章节数 = 到整数 (文本_取出中间文本 (网页源码, “var totalCount='”, “',page=0,pageSize”, , )) 小说.名称 = 文本_取出中间文本 (网页源码, “”, “<i class="”" +="" #引号 ="" “d-status”,="" ,="" ) 小说.作者 = 文本_取出中间文本 (网页源码, “[url=]”, “[/url]”, , )小说.主播 = 文本_取出中间文本 (网页源码, “class=” + #引号 + “g-user” + #引号 + “>”, “”, , )变量名 | 类 型 | 静态 | 数组 | 备 注 | 网页源码 | 文本型 | | | JSON | 类_json | | | 返回内容 | 文本型 | | | 成员数 | 整数型 | | | i | 整数型 | | | 临时索引 | 整数型 | | |
网页源码 = 到文本 (网页_访问_对象 (“http://www.lrts.me/ajax/book/” + 到文本 (小说.ID ) + “/” + 到文本 (page ) + “/10”, 1, , , , , , , , , , , , , , , )) JSON. 解析 (网页源码 )成员数 = JSON. 成员数 (“data.data”)计次循环首 (成员数, i )返回内容 = JSON. 取通用属性 (“data.data[” + 到文本 (i - 1 ) + “].resName”, ) 返回内容 = 编码_usc2到ansi_EX (返回内容, “&#x”)返回内容 = 文本_替换 (返回内容, , , , “;”, “”, , , , , , , , )临时索引 = 超级列表框1. 插入表项 (-1, JSON. 取通用属性 (“data.data[” + 到文本 (i - 1 ) + “].resId”, ), , , , )超级列表框1. 置标题 (临时索引, 1, 返回内容 )超级列表框1. 置标题 (临时索引, 2, “待下载”)计次循环尾 () 保存目录 = 取运行目录 () + “\” + 小说.名称 判断 (目录_是否存在 (保存目录 ) = 假)目录_创建 (保存目录 )时钟2.时钟周期 = 200时钟1.时钟周期 = 1000 子程序下载 ()|
子程序_配置信息 | 任务参数 | | |
下载地址 | 文本型 | | | | 保存路径 | 文本型 | | | |
任务.文件地址 = 下载地址 任务.默认线程数 = 10 任务.本地文件路径 = 保存路径 + “\” + 超级列表框1. 取标题 (当前下载索引, 1 ) + “.mp3”任务.交互回调函数 = &子程序_交互回调函数 返回 (任务 )|
子程序_交互回调函数 | | | |
消息类型 | 整数型 | | | | 线程信息 | 整数型 | | | | 第三个参数 | 整数型 | | | | 第四个参数 | 整数型 | | | | 对象信息 | 整数型 | | | | 判断 (消息类型 = #传送常量 .下载上传开始 ) 单章小说总大小 = 第三个参数 判断 (消息类型 = #传送常量 .下载上传结束 ) 下载完成 = 真 单章已接收大小 = 0 判断 (消息类型 = #传送常量 .收到数据 )单章已接收大小 = 单章已接收大小 + 第三个参数 超级列表框1. 置标题 (当前下载索引, 2, 到文本 (四舍五入 (单章已接收大小 ÷ 单章小说总大小 × 100, )) + “%”)判断 (下载完成 = 真)进度条1.位置 = 四舍五入 (当前下载索引 ÷ 超级列表框1. 取表项数 () × 100, )超级列表框1. 置标题 (当前下载索引, 2, “已下载”)判断 (超级列表框1. 取表项数 () > 当前下载索引 ) 当前下载索引 = 当前下载索引 + 1 子程序下载 ()下载完成 = 假 时钟1.时钟周期 = 0 时钟2.时钟周期 = 0 信息框 (“下载完成”, 0, , )|
子程序_下载速度转换 | 双精度小数型 | | |
下载速度 | 双精度小数型 | | | |
下载速度 = 下载速度 ÷ (1024 × 1024 )下载速度 = 四舍五入 (下载速度, 2 )返回 (下载速度 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 下载地址 | 文本型 | | | 章节id | 文本型 | | | 网页源码 | 文本型 | | | JSON | 类_json | | |
章节id = 超级列表框1. 取标题 (当前下载索引, 0 )网页源码 = 到文本 (网页_访问_对象 (“http://www.lrts.me/ajax/path/4/” + 到文本 (小说.ID ) + “/” + 章节id, , , , , , , , , , , , , , , , )) JSON. 解析 (网页源码 )下载地址 = JSON. 取通用属性 (“data”, ) 下载. 增加新任务 (子程序_配置信息 (下载地址, 保存目录 + “\”)) 下载速度 = 下载. 取下载速度 ()下载速度 = 子程序_下载速度转换 (下载速度 )标签10.标题 = “下载速度” + 到文本 (下载速度 ) + “M”
|