利用群晖Download Station的webapi自动化下载任务

最近做了一个小的家庭NAS项目:用python爬虫定期抓取某动漫网站页面中的下载链接数量,当下载数量增加时即该动漫已经更新最新的一集,然后取得最新一集的URL后用群晖自带的Download Station自动开始下载。

先附上一份群晖官方的Download Station webapi文档:https://global.download.synology.com/download/Document/Software/DeveloperGuide/Package/DownloadStation/All/enu/Synology_Download_Station_Web_API.pdf

 官方文档中的例子给出的如下参数已经过时,与我实际查询出来的参数不一样,大家要根据实际情况做修改。

官方给的:

{
    "data":{
        "SYNO.API.Auth":{
            "path":"auth.cgi",
            "minVersion":1,
            "maxVersion":2
        },
        "SYNO.DownloadStation.Task":{
            "path":"DownloadStation/task.cgi",
            "minVersion":1,
            "maxVersion":1
        }
    },
    "success":true
}

实际查询的:(版本和某些路径已经改变)

{
    "data":{
        "SYNO.API.Auth":{
            "maxVersion":7,
            "minVersion":1,
            "path":"entry.cgi"
        },
        "SYNO.DownloadStation.Task":{
            "maxVersion":3,
            "minVersion":1,
            "path":"DownloadStation/task.cgi"
        }
    },
    "success":true
}

 简单写一下本人用到的几个调用方法,其他的使用方法都比较类似,大家可以参考文档自行摸索。

省略用python爬虫抓取下载链接的内容,大家已经可以搜到很多关于requests模块的用法。

当得到下载地址url后,第一步:查看webapi所需的参数。响应结果如上。

# 构建header
header = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"
}
# 构建session
login_session = requests.session()
# get方法获取API参数
re = login_session.get(
    "https://x.x.x.x(你NAS的ip地址):5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=SYNO.API.Auth,SYNO.DownloadStation.Task",
    headers=header, verify=False)
print(re.text)

第二步:配置登录服务器

#准备登录的传入的参数
syno_login_data = {
    "api": "SYNO.API.Auth",
    "version": 7,
    "method": "login",
    "account": "NAS用户名",
    "passwd": "NAS密码",
    "session": "DownloadStation",
    "format": "cookie"
}
url = "https://x.x.x.x(NAS的ip地址):5001/webapi/entry.cgi?api=SYNO.API.Auth"
# 用post方法进行登录
response = login_session.post(url=url, headers=header, data=syno_login_data, verify=False)
print(response.text)

成功后得到如下响应:

{
    "data":{
        "account":"用户名",
        "device_id":"你的设备id",
        "ik_message":"",
        "is_portal_port":false,
        "sid":"你的sid",
        "synotoken":"--------"
    },
    "success":true
}

第三步:进行下载

# 准备下载用到的参数
download_data = {
    "api": "SYNO.DownloadStation.Task",
    "version": 1,
    "method": "create",
    "uri": "你的下载地址url,实测磁力链接也可直接用"
}
response = login_session.post("https://x.x.x.x:5001/webapi/DownloadStation/task.cgi", headers=header, data=download_data,
                   verify=False)
print(response.text)

成功后得到如下响应:

{"success":true}

到此已经开始了下载任务,可以用以下方法查看进行中下载任务情况:

response = login_session.get(
    "https://x.x.x.x:5001/webapi/DownloadStation/task.cgi?api=SYNO.DownloadStation.Task&version=1&method=list",
    headers=header, verify=False)
print(response.text)

成功后得到响应:

{
    "data":{
        "offset":0,
        "tasks":[
            {
                "id":"dbid_192",
                "size":475165655,
                "status":"seeding",
                "title":"你的任务名",
                "type":"bt",
                "username":"你的用户名"
            }
        ],
        "total":1
    },
    "success":true
}

以上就是最近搞的小自动化玩意儿,还可以调用钉钉机器人等对任务的开始/完成进行通知~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 如果您想下载 .net core webapi 项目的源码,可以通过以下步骤实现: 1. 打开 GitHub 网站,然后搜索您需要的项目。 2. 找到该项目的页面,然后点击“Clone or download”按钮。 3. 选择“Download ZIP”选项,将项目的 ZIP 文件下载到本地。 4. 解压下载好的 ZIP 文件,并使用 Visual Studio 打开项目。 另外,您也可以使用 git 命令行工具来下载项目源码。具体步骤如下: 1. 打开命令行工具(如 Git Bash)。 2. 进入您想要下载项目的路径(如 cd ~\Projects)。 3. 执行以下命令:git clone [项目的 GitHub 地址]。 4. 等待项目下载完成,然后使用您习惯的编辑器打开项目。 无论您是使用 ZIP 文件下载还是使用 git 命令行工具下载,都可以轻松地获取到 .net core webapi 项目的源码。下载完成后,您可以在本地修改和测试项目,并将修改提交到 GitHub 上。 ### 回答2: 要下载 .NET Core Web API 项目的源代码,您需要遵循以下步骤: 1. 打开您的浏览器,前往 GitHub 网站。 2. 在 GitHub 上搜索您需要的 .NET Core Web API 项目,例如使用关键词“ASP.NET Core Web API”。 3. 在搜索结果中,选择您需要的项目,并进入项目的详情页面。 4. 在项目详情页面上,单击“Code”按钮,这将显示项目的 Git 存储库 HTTPS URL。 5. 复制 HTTPS URL,然后在您的本地计算机上打开 Git Bash 或其他类似的终端程序(例如 PowerShell 或 CMD)。 6. 在命令行中,输入“git clone”命令,后跟 HTTPS URL,并按 Enter 键。这将从远程存储库克隆源代码到您的本地计算机。 7. 等待下载完成后,您可以使用 Visual Studio、Visual Studio Code 或其他 IDE 打开项目的代码文件,并开始编辑和构建您自己的Web API应用程序。 需要注意的是,在下载项目源代码之前,您需要确保您的开发环境中已经安装了 .NET Core SDK 和必要的依赖项,这样才能确保您的代码在本地正确运行。同时,如果您在下载项目代码时遇到任何问题或困难,请参考相关的文档和教程,寻求帮助和支持。 ### 回答3: 在进行 .NET Core WebAPI 项目的源码下载之前,首先需要了解一些基础知识和准备工作。 1. 安装 .NET Core SDK 在进行 .NET Core WebAPI 项目开发和下载源码之前,需要先安装 .NET Core SDK,可以从微软官网下载对应版本的 .NET Core SDK 进行安装。 2. 确定项目源码地址 在进行项目的源码下载之前,需要先确定项目的源码地址。可以从 GitHub、GitLab 或者码云等开源项目托管平台获取项目的源码地址。 3. 安装 Git 在进行项目源码的下载之前,需要先安装 Git 工具。Git 是一个分布式版本控制系统,可以在各个操作系统上使用。 4. 克隆项目源码 通过 Git 工具可以将项目源码克隆到本地。可以使用以下命令进行克隆: $ git clone [源码地址] 例如:$ git clone https://github.com/dotnet/AspNetCore.Docs.git 5. 打开项目 在成功克隆项目源码之后,可以使用 Visual Studio Code 或者 JetBrains Rider 等工具打开项目。 总结: 获取 .NET Core WebAPI 项目源码需要先安装 .NET Core SDK 和 Git 工具,然后通过获取源码地址进行克隆,最后使用相应的开发工具打开项目进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值