hcf6666 发表于 2024-4-27 15:17

[开源]mDown,一款github项目版本更新检查、下载工具。

## 前言

> mDown应该是几年前写的,会经常关注github某个项目是否有新的版本发布,所以想写个工具定期检查,让自己更懒。
>
> 附件包含该工具源码,使用易语言编写,引用到的模块及源码都一并打包了。
>
> 支持检查 release commits,配置信息使用json编码,有较多字段可以灵活组合。
>
> 都是按照自己当时需求写的,所以不一定适合所有场景,有相同需求的可以试一试。

## 预览图




## 调用方式

```cmd
mDown.exe <path>

<path>配置文件路径,可以跟随多个.
-F      忽略发布时间,强制更新.
-M      生成示例配置,可以在此基础上修改.
-H      查看帮助.
```

1. 配置文件格式为json
2. 部分特性支持通配符 * ? 后续会相应介绍



## 配置文件

1.配置格式示例,主要配置放在data数组里面

```json
{
        "root":"F:/xxxxxx",
        "data":[{
                        "owner":"iawia002",
                        "repo":"lux",
                        "tag_name":"v0.17.1",
                        "down_info":[{
                                        "name":"lux_*_Windows_64-bit.zip",
                                        "downmode":0,
                                        "unzip_key":["lux.exe"],
                                        "unzip_mode":0,
                                        "unzip_path":""
                                }],
                        "name":"v0.17.1",
                        "created_at":"2023-03-27T03:07:01Z",
                        "published_at":"2023-03-27T03:13:38Z",
                        "body":""
                },{
                        "owner":"lua",
                        "repo":"lua",
                        "type":1,
                        "branch":"master",
                        "commits":"6baee9ef9d5657ab582c8a4b9f885ec58ed502d0",
                        "ext":"c;h",
                        "focuspath":"/",
                        "redirect":[{
                                        "origpath":"/",
                                        "targetpath":"/third_party/lua/src/"
                                }],
                        "lastcommits":"6baee9ef9d5657ab582c8a4b9f885ec58ed502d0"
                }]
}
```

2.下面是字段介绍

| 字段名       | 是否必须 | 描述                                                         |
| ------------ | -------- | ------------------------------------------------------------ |
| root         |          | 根目录                                                       |
| data         | √      | 要获取的项目配置信息                                       |
| owner      | √      | 项目所有者                                                   |
| repo         | √      | 仓库名                                                       |
| type         |          | 任务类型 0.Release 1.Commits                                 |
| branch       |          | 分支信息 任务为1有效                                       |
| commits      |          | 从这次提交开始处理                                           |
| lastcommits|          | 上次提交,由程序自动处理                                     |
| ext          |          | 只处理指定后缀的文件更改                                     |
| focuspath    |          | 关注路径 没在这路径的提交改动都步处理                        |
| origpath   |          | 原始路径                                                   |
| targetpath   |          | 本地目标路径                                                 |
| redirect   |          | 重定向路径,项目地址路径重定向本地路径                     |
| per          |          | 获取预览版 非0启用                                           |
| skip         |          | 跳过次数,-1永久跳过                                       |
| skipnum      |          | 已经跳过次数,由程序自己处理                                 |
| tag_name   |          | 标签,由程序自己处理                                       |
| name         |          | 由程序自己处理                                             |
| created_at   |          | 创建时间                                                   |
| published_at |          | 发布时间                                                   |
| body         |          | 发布内容                                                   |
| down_info    | √      | 下载信息                                                   |
| name         | √      | 关注的文件名称,支持通配符                                 |
| downmode   |          | 下载模式 0.下载到内存 1.下载到指定路径                     |
| unzip_key    |          | 指定要解压的文件,支持配置多个                               |
| unzip_mode   |          | 解压模式 0解压到当前目录 1解压到指定目录 2按照压缩包路径解压 |
| unzip_path   |          | 解压路径                                                   |
| delpath      |          | 删除替换压缩包路径,dex-tools*:dex-tools:1 【源:替换:索引】多个用;分割 |
| openmode   |          | 为写出文件的时候才启用,打开方式 0.同步打开 1.异步打开       |
| cmd          |          | 传递参数,如果文件是可执行文件                               |
| startcmd   |          | 打开前执行命令                                             |
| endcmd       |          | 打开后执行命令                                             |

3.每次执行都会和本地配置比对 有不同就定义为更新

附件:

zhuangbo 发表于 2024-4-27 19:58

从来都没用过

deffedyy 发表于 2024-4-27 21:33

感谢分享

vkjia 发表于 2024-4-27 21:42

用不用都得支持一下

jiqimaoer 发表于 2024-4-28 02:21

对经常下载github仓库的朋友还是非常有帮助的{:1_921:}

5741893 发表于 2024-4-28 09:05

虽然看不懂,但还是很牛逼的样子

jw8013 发表于 2024-4-28 09:12

来个GUI就更好了

langjuxv 发表于 2024-4-28 10:18

嗯嗯,每次下载git都是慢的要死。更新都难。

xin1you1di1 发表于 2024-4-28 15:29

可以检查任何github项目?

chenzj175941951 发表于 2024-4-29 10:18

支持原创!顶起来
页: [1] 2 3
查看完整版本: [开源]mDown,一款github项目版本更新检查、下载工具。