本代码需要从城通网盘后台获取Token也就是开放接口登录密钥
先发几个子程序
|
获取一级目录内文件信息 | | | |
目录ID | 文本型 | | | | 开放接口登录密钥 | 文本型 | | | | 排除选项 | 整数型 | | | | 目录结构 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_网址 | 文本型 | | | 局_提交数据 | 文本型 | | | 局_状态码 | 整数型 | | | 局_返回 | 文本型 | | | json | 类_json | | | 目录文件数 | 整数型 | | | 计次 | 整数型 | | | 判断 | 整数型 | | | 局_目录结构全 | 文本型 | | 0 | 局_目录结构部分 | 文本型 | | 0 | a | 整数型 | | | b | 整数型 | | |
局_网址 = “https://rest.ctfile.com/v1/public/file/list”局_提交数据 = “{” + #引号 + “filter” + #引号 + “:” + #引号 + “null” + #引号 + “,” + #引号 + “folder_id” + #引号 + “:” + #引号 + 目录ID + #引号 + “,” + #引号 + “orderby” + #引号 + “:” + #引号 + “old” + #引号 + “,” + #引号 + “start” + #引号 + “:” + #引号 + “0” + #引号 + “,” + #引号 + “session” + #引号 + “:” + #引号 + 开放接口登录密钥 + #引号 + “}”局_返回 = 编码_usc2到ansi (到文本 (网页_访问_对象 (局_网址, 1, , , , , , 局_状态码, 真, 到字节集 (局_提交数据 ), , , , , , , , , )) ) 如果 (局_状态码 = 200 ) json. 解析 (局_返回, , )  目录文件数 = 0  判断循环首 (json. 取通用属性 (“results[” + 到文本 (目录文件数 ) + “].key”, ) ≠ “”)  目录文件数 = 目录文件数 + 1  判断循环尾 () 重定义数组 (局_目录结构全, 假, 目录文件数, 5 ) 计次循环首 (目录文件数, 计次 )  局_目录结构全 [计次 ] [1 ] = json. 取通用属性 (“results[” + 到文本 (计次 - 1 ) + “].key”, )  局_目录结构全 [计次 ] [2 ] = json. 取通用属性 (“results[” + 到文本 (计次 - 1 ) + “].name”, )  局_目录结构全 [计次 ] [3 ] = json. 取通用属性 (“results[” + 到文本 (计次 - 1 ) + “].weblink”, )  局_目录结构全 [计次 ] [4 ] = json. 取通用属性 (“results[” + 到文本 (计次 - 1 ) + “].size”, )  局_目录结构全 [计次 ] [5 ] = json. 取属性 (“['default_passcode']”). 取数据文本 () 计次循环尾 ()  如果 (排除选项 = 1 )   计次循环首 (取数组下标 (局_目录结构全, 1 ), a )   如果 (文本_取某位置文本 (局_目录结构全 [a ] [1 ], 1, ) = “f”)   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [1 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [2 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [3 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [4 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [5 ])              计次循环尾 () 重定义数组 (目录结构, 假, 到整数 (取数组成员数 (局_目录结构部分 ) ÷ 5 ), 5 )  计次循环首 (到整数 (取数组成员数 (局_目录结构部分 ) ÷ 5 ), b )   目录结构 [b ] [1 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 1 ]   目录结构 [b ] [2 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 2 ]   目录结构 [b ] [3 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 3 ]   目录结构 [b ] [4 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 4 ]   目录结构 [b ] [5 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 5 ]  计次循环尾 ()       如果 (排除选项 = 2 )   计次循环首 (取数组下标 (局_目录结构全, 1 ), a )   如果 (文本_取某位置文本 (局_目录结构全 [a ] [1 ], 1, ) = “d”)   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [1 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [2 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [3 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [4 ])   加入成员 (局_目录结构部分, 局_目录结构全 [a ] [5 ])              计次循环尾 () 重定义数组 (目录结构, 假, 到整数 (取数组成员数 (局_目录结构部分 ) ÷ 5 ), 5 )  计次循环首 (到整数 (取数组成员数 (局_目录结构部分 ) ÷ 5 ), b )   目录结构 [b ] [1 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 1 ]   目录结构 [b ] [2 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 2 ]   目录结构 [b ] [3 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 3 ]   目录结构 [b ] [4 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 4 ]   目录结构 [b ] [5 ] = 局_目录结构部分 [ (b - 1 ) × 5 + 5 ]  计次循环尾 ()       如果 (排除选项 = 3 )   目录结构 = 局_目录结构全          |
获取文件下载地址 | 文本型 | | |
文件ID | 文本型 | | | | 开放接口登录密钥 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_网址 | 文本型 | | | 局_提交数据 | 文本型 | | | 局_状态码 | 整数型 | | | 局_返回 | 文本型 | | | json | 类_json | | | 文件下载地址 | 文本型 | | |
局_网址 = “https://rest.ctfile.com/v1/public/file/fetch_url”局_提交数据 = “{” + #引号 + “session” + #引号 + “:” + #引号 + 开放接口登录密钥 + #引号 + “,” + #引号 + “file_id” + #引号 + “:” + #引号 + 文件ID + #引号 + “}”局_返回 = 到文本 (网页_访问_对象 (局_网址, 1, , , , , , 局_状态码, 真, 到字节集 (局_提交数据 ), , , , , , , , , )) 如果 (局_状态码 = 200 ) json. 解析 (局_返回, , ) 文件下载地址 = json. 取通用属性 (“['download_url']”, ) 返回 (文件下载地址)变量名 | 类 型 | 静态 | 数组 | 备 注 | 本地版本数组 | 文本型 | | 0 | 更新版本数组 | 文本型 | | 0 | 长度 | 整数型 | | | i | 整数型 | | |
如果真 (本地版本号 = 最新版本号 ) 返回 (假) 本地版本数组 = 分割文本 (本地版本号, “.”, )更新版本数组 = 分割文本 (最新版本号, “.”, ) 如果 (取数组成员数 (本地版本数组 ) < 取数组成员数 (更新版本数组 ))  长度 = 取数组成员数 (本地版本数组 ) 长度 = 取数组成员数 (更新版本数组 ) 计次循环首 (长度, i ) 如果 (到数值 (更新版本数组 [i ]) > 到数值 (本地版本数组 [i ]))  返回 (真)      计次循环尾 ()返回 (假)
思路就是 城通网盘新建个目录,然后获取这个目录的ID 一般ID前面加上d,根目录就是d0,这个id是固定的,然后用获【取一级目录内文件信息】这个子程序来获取目录里面的信息
更新说明文档放在目录里面,从【取一级目录内文件信息】中提取更新说明文档信息,来检测版本来判定是否更新软件,如果版本大于现有版本则更新,更新文件地址可以放进更新说明中(提前上传然后获取这个文件的ID),然后制作update.exe文件来更新下载
Tip: 执行命令可以增加命令行来向update.exe传送数据 (更多信息请查看命令行())
小弟不才,写的可能有点乱,不过测试是可以检测更新的,现在唯一的麻烦就是那个开放接口密钥只有1年有效期,不知道更换密钥,如何处理
|