无名阁

美好的生活需要用心记录

一个shell格式的Aria的RPC工具

2016-11-14 笑看风云 linux知识

Linux下面最常用的下载工具就是Aria2了,为了方便使用我都是通过RPC结合yaaw来进行下载管理的,可是每次都是把链接复制到yaaw上面过于麻烦,于是先看看有没有简单的方法,于是在网上找到了shell版本的Aria添加脚本,我结合自己的需求改进了一下,添加了referer参数,支持Aria的tekon验证。
#!/bin/bash
usage='Usage: aria2rpc.sh [-c COOKIE] [-d DIR] [-o NAME] [-R referer] [-H header] URL [URL..]'
  
while [[ -n "$1" ]];do
  case "$1" in
    -c|--cookie) shift; cookie="$1" ;;
    -d|--dir) shift; dir="$1" ;;
    -o|--out) shift; output="$1" ;;
    -r|--rpc) shift; rpc="$1" ;;
    -H|--header) shift; header="$1" ;;
    -R|--referer) shift; referer="$1" ;;
    -h|--help) echo "$usage"; exit ;;
    *) uris[$((i++))]="$1" ;;
  esac
  shift
done
  
if ((${#uris[@]}==0));then
  echo "$usage"
  exit
fi
URIs=$(IFS=, ;echo "${uris[*]}"|sed 's/,/","/g;s/^/"/;s/$/"/')
  
if [[ -z "$rpc" ]];then
  rpc='http://127.0.0.1:6800/jsonrpc'
fi
  
Options="{"
if [[ -n "$cookie" ]];then
  Options="$Options"'"header":["Cookie: '"$cookie"'"],'
fi
if [[ -n "$referer" ]];then
  Options="$Options"'"referer":"'"$referer"'",'
fi
if [[ -n "$header" ]];then
  Options="$Options"'"header":"'"$header"'",'
fi
if [[ -n "$dir" ]];then
  Options="$Options"'"dir":"'"$dir"'",'
fi
if [[ -n "$output" ]];then
  Options="$Options"'"out":"'"$output"'",'
fi
Options="${Options%,}"
Options="$Options""}"
  
jsonTemplate='{"jsonrpc":"2.0","id":"qwer","method":"aria2.addUri","params":["token:token",['"$URIs"'],'"$Options"']}'
  
curl -X POST -d "$jsonTemplate" --header "Content-Type:application/json" "$rpc"

把上面的代码写入到一个文件并赋予执行权限之后火狐上面使用xtunder添加下载工具,然后选择此脚本,就可以下载了

标签: aria2 火狐

et_highlighter51

发表评论: