美文网首页
pyaria2c开源介绍

pyaria2c开源介绍

作者: 小胖子善轩 | 来源:发表于2018-01-11 19:42 被阅读0次

Github: https://github.com/shanxuanchen/pyaria2-jsonrpc

summary

aria2是一个十分牛逼的下载神器,有时候项目需要一个很牛逼的下载中间件的话,aria2是一个不错的选择。其中支持jsonrpc和websocket的特性尤其诱人。但是python用起来还是有点不爽,所以简单封装一下aria2的jsonrpc。

所以,用python简单的封装了aria2的jsonrpc中adduri的脚本。
使用起来非常简单,仅需要三行代码。

from pyaria2 import Jsonrpc
jsonrpc = Jsonrpc('localhost', 6800)
resp = jsonrpc.addUris('https://music.snowmusic.cc/radio/13714_1507261169_4.mp3', options={"out": "aa.mp3"})
print resp
# {"id":0,"jsonrpc":"2.0","result":"3f6fa9aa6428a25f"}

Install

首先需要安装aria2c(以mac为例)

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

然后使用homebrew安装即可

brew install aria2

然后自己找一个文件夹新建一个aria2.conf文件,示例如下:

#允许rpc
enable-rpc=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800

#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=10
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=10
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0

#文件保存路径, 默认为当前启动位置
dir=./Files

#hook 文件的路径
on-download-complete=/Users/csx/GitProject/snowmusic/pyaria2-jsonrpc/hook.py


其中hook文件路径是回调脚本的路径,这里要改为开发者当前hook文件路径

启动aria2

# 这里是填入aria2.conf的路径
aria2c --conf-path=aria2.conf

Use

首先导入pyaria2模块的jsonrpc

from pyaria2 import Jsonrpc

编写hook.py,用于下载完成的回调。

import sys

# ['/Users/csx/GitProject/snowmusic/pyaria2-jsonrpc/hook.py', 'e3f97be6d4490a5a', '1', './temp/aa.mp3']
Argv = sys.argv

# 这里自己编写任意的回调函数,可以进行更新数据库等操作
def Hook(Argv):
    print Argv

然后直接调用就可以了。

jsonrpc = Jsonrpc('localhost', 6800)
resp = jsonrpc.addUris('https://music.snowmusic.cc/radio/13714_1507261169_4.mp3', options={"out": "aa.mp3"})
print resp

API

http://aria2.github.io/manual/en/html/index.html

总结

之前oj内核虽然开源了,但是问题一堆,打算找几个小伙伴重写了(有兴趣的可以联系我)。今天重新封装了一下aria2c的jsonrpc就想开源了。我知道写得很简单,但是我会继续维护的。无论写得怎么样,大佬们上Github给我一个Start吧,给予我回赠开源社区的力量吧。阿里嘎多。。。

我会为了世界变得更美好而变得更加优秀,开源,永不止步。。

相关文章

  • pyaria2c开源介绍

    Github: https://github.com/shanxuanchen/pyaria2-jsonrpc s...

  • 开源协议介绍

    详细介绍 MPL (Mozilla Public License) 协议 详细介绍 MIT 协议 详细介绍 Apa...

  • 开源硬件介绍

    定义 开源硬件的原则声明和定义是开源硬件协会(OSHWA)委员会和工作组以及更多的其他人员共同完成的。这个文档最初...

  • 开源协议介绍

    先贴链接:https://www.jianshu.com/p/36c1cd4aaeae世界上的开源许可证(Open...

  • FreeSWITCH开源介绍

    FreeSWITCH架构设计,灵活、开放、可扩展的开发方式,支持集群特点,对多种协议的可支持,对高级SIP特性的可...

  • 2017-12-26

    rainbond 开源版更新 3.4.1 版本 rainbond开源软件介绍: Rainbond是国内首个开源的生...

  • 几种开源license介绍

    先上一个乌克兰程序员Paul Bagwell的分析图: //该图应该是出自阮一峰博文 咱们日常使用情况可以从3个维...

  • 常见开源协议介绍

    一、常用开源协议汇总图 首先从一张图开始,介绍几种主流的开源协议,以及决定选用哪种框架的思路。使用哪种开源协议,决...

  • 开源太极(框架)介绍

    开源太极是什么? 开源太极是一个太极拳的框架,跟框架在软件开发中的作用一样,犹如Javascript 中的Reac...

  • SugarAdapter 开源库介绍

    SugarAdapter 介绍 这次介绍一个开源库:SugarAdapter GitHub 地址: https:/...

网友评论

      本文标题:pyaria2c开源介绍

      本文链接:https://www.haomeiwen.com/subject/swmtoxtx.html