p3terx / aria2.conf Goto Github PK
View Code? Open in Web Editor NEWAria2 配置文件 | OneDrive & Google Drvive 离线下载 | 百度网盘转存
Home Page: https://p3terx.com/archives/aria2_perfect_config.html
License: MIT License
Aria2 配置文件 | OneDrive & Google Drvive 离线下载 | 百度网盘转存
Home Page: https://p3terx.com/archives/aria2_perfect_config.html
License: MIT License
实际上,应该一层目录即可,不知道为何会创建2层目录。move.sh的目录配置具体如下:
Aria2下载目录
DOWNLOAD_PATH='/downloads'
目标目录
TARGET_DIR='/downloads/completed'
日志保存路径。注释或留空为不保存。
LOG_PATH='/downloads/move.log'
aria2.conf里面的配置如下
文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/downloads
当下载的文件完整路径为:/downloads/aaa,下载完成后,move.sh把 aaa目录自动转移到了completed目录后的完整路径为:/downloads/completed/aaa/aaa/文件。
看起来似乎是多了一层aaa的目录,请检查,多谢。
如题,直接删除任务是可以删除文件的,但是如果先暂停再删除任务就无法删除文件
可以设计一个脚本,用户可以选择是否贡献。
比如我只想下载mp4, 不想下载txt
hi,
it would be nice if you could make it work with heroku, just like a guy has did in this link
https://github.com/maple3142/heroku-aria2c
直接上结论:
如果 手动指定 下载路径且下载的 BT 是 包含多个文件 的文件夹,此时无法正确删除自动生成的 .aria2 文件。
对于一般小白用户,如果添加 bt 时,没有手动指定路径,或者下载的 bt 只有一个文件。目前的脚本都可以正常删除 .aria2
就以我目前的配置和实际情况来讲解了
在 aria2.conf
配置中,我设定默认下载目录为 : dir=/media/pi/hdd/downloads
在 delete.aria2.sh
脚本中,我同样设定目录为: DOWNLOAD_PATH='/media/pi/hdd/downloads'
添加Bt 种子 -》 复制 bt 到输入框 -》 点击下载
没有手动输入下载路径的情况下
此时我要下载一个 bt 种子,假设这个 bt 种子含有多个文件,下载后便是一个文件夹,假设下载后目录结构和文件是这样的:
/media/pi/hdd/downloads/文件夹/文件1
/media/pi/hdd/downloads/文件夹/文件2
/media/pi/hdd/downloads/文件夹.aria2
在 delete.aria2.sh
脚本中,有这么一行 TOP_PATH=${DOWNLOAD_PATH}/${REMOVE_DOWNLOAD_PATH%%/*}
这时候的脚本会正确拼接成路径 /media/pi/hdd/downloads/文件夹
,然后成功删除 .aria2
文件
添加Bt 种子 -》 复制 bt 到输入框 -》 设定下载目录 -》 点击下载
假设我这次设定的目录是: /media/pi/hdd/downloads/test1/test2
此时下载同一个 bt 种子,下载后目录结构和文件是这样的:
/media/pi/hdd/downloads/test1/test2/文件夹/文件1
/media/pi/hdd/downloads/test1/test2/文件夹/文件2
/media/pi/hdd/downloads/test1/test2/文件夹.aria2
那么 delete.aria2.sh
脚本中的 TOP_PATH=${DOWNLOAD_PATH}/${REMOVE_DOWNLOAD_PATH%%/*}
行,拼接后的路径为:
/media/pi/hdd/downloads/test1
此时尝试删除 /media/pi/hdd/downloads/test1.aria2
文件显然是不对的
原因就是这种方式只能获取一级目录,而我设定的目录包含了两个子目录 test1
和 test2
将这一行脚本修改为: TOP_PATH=${DOWNLOAD_PATH}/$(dirname $REMOVE_DOWNLOAD_PATH)
使用 dirname
获取到两个子目录,此时拼接的路径为:
/media/pi/hdd/downloads/test1/test/文件夹
然后就能正确删除了。
我只使用了
delete.aria2.sh
脚本,如果其他脚本中也是这样的获取方式,应该有同样的问题
#!/usr/bin/env bash
DOWNLOAD_PATH='/media/pi/hdd/downloads'
if [ ! -d $DOWNLOAD_PATH ]; then
echo 'path not exists'
exit 1
fi
FILE_PATH=$3
REMOVE_DOWNLOAD_PATH=${FILE_PATH#${DOWNLOAD_PATH}/}
# TOP_PATH=${DOWNLOAD_PATH}/${REMOVE_DOWNLOAD_PATH%%/*}
TOP_PATH=${DOWNLOAD_PATH}/$(dirname $REMOVE_DOWNLOAD_PATH)
# echo log
LIGHT_GREEN_FONT_PREFIX="\033[1;32m"
FONT_COLOR_SUFFIX="\033[0m"
INFO="[${LIGHT_GREEN_FONT_PREFIX}INFO${FONT_COLOR_SUFFIX}]"
echo -e "$(date +"%m/%d %H:%M:%S") ${INFO} Delete .aria2 file ..."
if [ "$2"x == "0"x ]; then
echo 'file length is zero'
exit 0
elif [ -f "${FILE_PATH}.aria2" ]; then
rm -vf "${FILE_PATH}.aria2"
elif [ -f "${TOP_PATH}.aria2" ]; then
rm -vf "${TOP_PATH}.aria2"
fi
因为不会在win下挂钩$1$2$3,直接执行on-download-complete="del "$3.aria2"不行,请求写一个move.sh作用的文件。
启用bt-require-crypto=true
和bt-min-crypto-level=arc4
后仍会向迅雷上传
我使用了你的一键完美配置aria2,体验是很棒的,但是我想使aria2下载到本地virtualvbox虚拟机centos7挂载的usb移动硬盘目录,通过设置下载目录为移动硬盘,但是只要任务开始立即就出错了,感觉是不可写入一样,因为桌面环境下是可是正常读写的,应该挂载是没问题的,然后我就想到能不能下载到centos本地然后再转移到移动硬盘,然后我网上搜到了这样一个脚本,下载完成后转移是成功的,但新问题又出现了,就是在aria2.conf最后一行加入后,你的脚本自动删除.aria2后缀文件不起作用了,.aria2留在了下载目录,下载文件转移是成功的。
请教:不能直接下载到挂载的移动硬盘和添加转移脚本后不能删除.aria2文件是哪里出了问题,或者同学能不能把自动转移功能添加进去
这个是我网上搜的
Aria2下载完成后转移文件到指定目录
2019-04-04 03:43 阅读 1,155 views 次
这个脚本的作用就是再aria2下载完文件后将文件转移到其它目录的自动处理脚本;
编辑aria2.conf文件,增加以下代码
#我添加在配置文件最后一行
on-download-complete=/root/.aria2/move.sh
move.sh脚本内容如下
#!/bin/sh
DOWNLOAD=/tmp # aria2的下载目录
COMPLETE=/home/down # 你要设置的转移目录路径
LOG=/root/.aria2/mvcompleted.log #脚本操作日志
SRC=$3
if [ "$2" == "0" ]; then
echo date
"INFO no file to move for" "$1". >> "$LOG"
exit 0
fi
while true; do
DIR=dirname "$SRC"
if [ "$DIR" == "$DOWNLOAD" ]; then
echo date
"INFO " "$3" moved as "$SRC". >> "$LOG"
mv --backup=t "$SRC" "$COMPLETE" >> "$LOG" 2>&1
exit $?
elif [ "$DIR" == "/" -o "$DIR" == "." ]; then
echo date
ERROR "$3" not under "$DOWNLOAD". >> "$LOG"
exit 1
else
SRC=$DIR
fi
done
之前在 这里提出的 现在移到这里来
添加原本的正则表达式支持
exclude-file-regex
& include-file-regex
主要用于自动删除类似于
_____padding_file_236_如果您看到此文件,请升级到BitComet(比特彗星)0.85或以上版本____
最好能支持多个正则表达式的匹配
Do you Know any Other Peer Agent that Support Private Tracker. I Cant Find Any of them in Google and Even Their Official Repos
下载错误后执行的命令,此项未定义则执行下载停止后执行的命令(on-download-stop)
on-download-error=
希望在下载失败之后重试一次,能够实现断点续传,省去手动按重试的麻烦,请问应该怎么写sh脚本?
添加 /watch 目录来自动识别 .torrent 文件或者 包含磁力链接/torrent link 的文本文件
我还没有想到 torrent 文件制定下载目标目录的方法 可能就直接默认位置 /downloads
磁力链接的文本则可以:
magnet:?xt=urn:btih:**
仅仅包含连接的下载到默认位置magnet:?xt=urn:btih:** /absolute/path
下载到指定绝对路径magnet:?xt=urn:btih:** relative/path
下载到相对默认下载路径的位置 (/downloads/relative/path)MAX_WATCH_LINK_FILE_SIZE
跳过处理过大的文件 (0 为无限制)會一直重複上傳還有 同名資料夾出現資料夾(1) 資料夾(2) 等等
舉個例子我重115網盤直接抓整個資料夾就會出BUG rclone會無限輪迴上傳 然後電腦只能強制重開機了
建议增加下载完成或删除任务后自动删除.torrent文件的脚本,这样就比较接近完美的体验了,否则每次还要手动删除
Parse error in /root/.aria2/aria2.conf
Exception: [AbstractOptionHandler.cc:69] errorCode=28 We encountered a problem while processing the option '--rpc-certificate'.
-> [OptionHandlerImpl.cc:556] errorCode=1 Could not get file status: No such file or directory
Usage:
--rpc-certificate=FILE Use the certificate in FILE for RPC server.
The certificate must be in PEM format.
Use --rpc-private-key option to specify the
private key. Use --rpc-secure option to enable
encryption.
你好,aria2的配置文件aria2.conf里面280至286行,你的脚本名称还没改回来。
操作系统:macOS Catalina 10.15.4 Beta版(19E242d)
我的aria2是用的隧道代理下载,其中用的设置如下
multiple-interface=192.168.100.2,2001:470:1f14:594::2
bt-lpd-interface=192.168.100.2
然后绑完之后就无法自动上传upload.sh
tracker.sh#L108 uses command
, but somes shell don't have it. e.g.Busybox build in shell, ash.
tracker.sh#L108 用了command
命令,但是有些shell没有这个命令,比如Busybox内置的ash。
很感谢大佬分析的教程,安装成功,上传暂时也没有问题,但本人有几个onedrive,想实现aria2下载到不同的目录,文件通过rclone上传到不同网盘。
比如:
aira2下载到/home/A,自动上传到A网盘;
aira2下载到/home/B,自动上传到B网盘;
我根据您的上传代码修改了一下,发现用不了,小白一枚,所以能不能帮忙修改下代码,谢谢
如题,我的vps的cpu是3900X虚拟的,按理说性能不差了,可是当我下载一部电视剧时,包含几十个直链,通常下载速度远大于上传速度(世纪互联单个文件上传速度限制100Mbs)。于是就出现问题了,vps本地有多少文件,脚本就会生成多少个并行的rclone任务。cpu和内存在相当长的一段时间内都几乎处于满载状态。所以我想能不能给rclone的上传并行数加一个限制。
文件移动脚本(move.sh) 能增加文件大小类型过滤吗?用plex等媒体库的应该都有这需求,感谢!
建议完成任务脚本添加完成任务后将文件放置在另一个文件夹里面,类似transmission那样子操作,毕竟用到nas,任务的下载量会比较大,在任务文件夹找文件会比较麻烦,同时这样子配合filebrower,下完片就直接看效果也很好
可以考虑使用
原因:
因为服务器上有时不会使用 root 用户,同时如果在本地使用的话,也不会用到 root 用户。
而替换为环境变量
使用flexget的rss订阅推送与自定义下载路径功能。
开启下载完成rclone上传。
同个订阅里的多个种子共用一个自定义下载目录,如“/root/downloads/电视剧第一季”。
其中一个种子下载完成触发上传脚本,上传脚本会尝试把“电视剧第一季”里面的都上传上去。
我禁用磁盘缓存+禁用rclone上传失败重试应该能解决大部分。文件变动的话就会上传失败达到不影响正在下载的文件效果。
题外话:被删除的未下载完成的文件,所对应的任务在文件被删除后仍继续下载,但下载完成后文件也没回来。(正常现象
BT下载完成后还需要等待做种完成才会开始上传。
ondownload-complete 和 on-bt-download-complete的区别如下:
需要在下载完后即刻开始上传文件并且不会重复上传。
congig里加上 on-bt-download-complete=
以下为本人自改脚本(水平有限仅供参考):
#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MinSize="5" #5K
MaxSize="157286400" #15G
RemoteDIR="/root/ftppanshi/"; #rclone path
LocalDIR="/home/wwwroot/default/Download/"; #Aria2 Dowanload Path
log_file="/etc/aria2/upload.log";
echo "date +'%Y-%m-%d %H:%M:%S'
: $output" >> $log_file;
echo $GID>> $log_file;
echo $FileNum>> $log_file;
echo $File>> $log_file;
if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi
function LoadFile(){
IFS_BAK=$IFS
IFS=$'\n'
if [[ ! -d "$LocalDIR" ]]; then return; fi
if [[ -e "$File" ]]; then
FileLoad="${File/#$LocalDIR}"
echo $FileLoad;
if [[ "$FileLoad" == '/' ]]; then echo "end"; return; fi
fl="${FileLoad#*/}";
echo $fl;
FileLoad=$(basename "$FileLoad");
echo $FileLoad;
if [[ "$fl" != "$FileLoad" ]]; then
FileLoad=$fl;
FileLoad=$(dirname "$FileLoad");
tmplog_file="/etc/aria2/"$FileLoad".log";
else
tmplog_file="/etc/aria2/"$FileLoad".log";
echo "single file">$tmplog_file;
fi
echo $FileLoad;
echo $tmplog_file;
if [ ! -e $tmplog_file ];then
echo "on-bt-download-complete">$tmplog_file;
else
state=$(cat $tmplog_file | sed -n 1p) ;
#echo $state;
if [ $state == "on-bt-download-complete" ]; then
echo "on-download-complete">$tmplog_file;
exit;
elif [ $state == "single file" ];then
echo "single file";
else
rm -rf $tmplog_file;
exit;
fi
fi
if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi
EXEC="$(command -v cp)"
if [[ -z "$EXEC" ]]; then return; fi
Option=" -f -r";
cd "$LocalDIR";
if [[ -e "$FileLoad" ]]; then
ItemSize=$(du -s "$FileLoad" |cut -f1 |grep -o '[0-9]*' |head -n1)
echo $ItemSize;
if [[ -z "$ItemSize" ]]; then return; fi
if [[ "$ItemSize" -le "$MinSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo small to spik.\n";
return;
fi
if [[ "$ItemSize" -ge "$MaxSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo large to spik.\n";
return;
fi
while true
do
ls $RemoteDIR;
if [ $? -eq 0 ]; then break;
fi
done
if [ -f "${RemoteDIR}$FileLoad" ]; then
echo "exist file!";
exit;
fi
if [ -d "${RemoteDIR}$FileLoad" ]; then
echo "exist directory!";
exit;
fi
while true
do
cd "$LocalDIR";
eval "${EXEC}${Option}" \'"${FileLoad}"\' "${RemoteDIR}";
if [ $? -eq 0 ]; then
state=$(cat $tmplog_file | sed -n 1p) ;
if [ $state == "on-bt-download-complete" ]; then
echo "on-upload-complete">$tmplog_file;
else
rm -rf $tmplog_file;
fi
break;
fi
done
fi
fi
IFS=$IFS_BAK
}
LoadFile;
已经openwrt上使用该配置, 建议新增quiet选项,否则会出现日志刷屏的情况
如何实现任务下载完成后,自动停止运行,现在执行任务之后,程序一直在运行。
比如下载队列有5个正在下载,其中1个完成下载了,我查看了下,对应的.aria2后缀还存在,需要5个全部下载完成后再一次性删除吗?
你好, 磁力/种子里面可能会含有一些推广文件,其实这些文件是不需要下载的,有办法做到,下载完成后调用上传叫笨蛋时候,只上传某几种后缀的文件吗?
开了on-download-stop=/root/delete.sh和on-download-complete=/root/autoupload.sh
测试网盘转存可以自动上传,bt下载的文件没有触发
如下
�[1;35mDownload path:�[0m/root/Download
�[1;35mFile path: �[0m/root/Download/Game.of.Thrones.S08E01.WEBRip.x264-ION10/Game.of.Thrones.S08E01.WEBRip.x264-ION10.mp4
�[1;35mUpload path: �[0m
�[1;35m.aria2 file path: �[0m
�[1;35mRemote path:�[0m
如题,对于rclone上传到googledrive有流量限制,单用户750G,对于下载量来说不够用,请问有什么办法可以到流量限制,自动切换用户继续上传吗?就像gclone一样
HTTPS无法下载.
我想下载一个IDEA: https://download-cf.jetbrains.com/idea/ideaIU-2019.3.3.exe
无法下载
移动网络
我看到 aria2 的文档中说这个选项可以配置下载文件时,先下载到内存中的大小
那么我配置这个 =512M 是不是就是说明下载一个好几个G大小的文件的时候,最多会占用内存512M
我是这么理解的,但是实际配置的时候发现内存占用很小
因为我想减少磁盘的读写,所以不知道我是不是对这个配置的理解有误
感谢
带上文件名,大小等信息
通知到邮件,server酱,或者TG,或者企业微信
随便哪一个都行
唉,自己不会代码,,流下不学无术悔恨的泪水.
大体已经写了自用中,需要FFMPEG,不过可能语句有点啰嗦。
大佬可以考虑一下加入这个功能,在快速找资源的时候还是挺有用的感觉~
`#暂时记录视频文件路径的暂存log路径
VIDEOSAVE_PATH='/root/.aria2'
PREVIEW() {
time=$(date +%H%M%S)
if [[ "$2" != "1" ]]
then
find "${MOVIE_PATH}" -name "*.mkv" >> ${VIDEOSAVE_PATH}/videofile$time.txt
find "${MOVIE_PATH}" -name "*.mp4" >> ${VIDEOSAVE_PATH}/videofile$time.txt
MOVIE_NUM=`cat ${VIDEOSAVE_PATH}/videofile$time.txt | wc -l`
declare -i i=1
while (($i<=${MOVIE_NUM}))
do
MOVIE_PATH=$(sed -n ${i}p ${VIDEOSAVE_PATH}/videofile$time.txt)
REMOVE_DOWNLOAD_PATH_MOVIE=${MOVIE_PATH#${DOWNLOAD_PATH}/}
REMOTEPNG_PATH="${DRIVE_NAME}:${DRIVE_PATH}/${REMOVE_DOWNLOAD_PATH_MOVIE%/*}"
ffmpeg -ss 00:00:10 -i "${MOVIE_PATH}" -n -frames 1 -vf "select=not(mod(n\,192)),scale=304:171,tile=2x2" "${MOVIE_PATH%.*}.png"
rclone move -v "${MOVIE_PATH%.*}.png" "${REMOTEPNG_PATH}"
let i++
done
rm ${VIDEOSAVE_PATH}/videofile$time.txt
else
ffmpeg -ss 00:00:10 -i "${MOVIE_PATH}" -n -frames 1 -vf "select=not(mod(n\,192)),scale=304:171,tile=2x2" "${MOVIE_PATH%.*}.png"
rclone move -v "${MOVIE_PATH%.*}.png" "${REMOTE_PATH}"
fi
}
if [ "${TOP_PATH}" = "${FILE_PATH}" ] && [ $2 -eq 1 ]; then # 普通单文件下载,移动文件到设定的网盘文件夹。
UPLOAD_PATH="${FILE_PATH}"
REMOTE_PATH="${DRIVE_NAME}:${DRIVE_PATH}"
MOVIE_PATH="${FILE_PATH}"
PREVIEW
UPLOAD
exit 0
elif [ "${TOP_PATH}" != "${FILE_PATH}" ] && [ $2 -gt 1 ]; then # BT下载(文件夹内文件数大于1),移动整个文件夹到设定的网盘文件夹。
UPLOAD_PATH="${TOP_PATH}"
#REMOTE_PATH="${DRIVE_NAME}:${DRIVE_PATH}/${REMOVE_DOWNLOAD_PATH%%/*}"
REMOTE_PATH="${DRIVE_NAME}:${DRIVE_PATH}/${TOP_PATH##*/}"
MOVIE_PATH="${TOP_PATH}"
CLEAN_UP
PREVIEW
UPLOAD
exit 0
elif [ "${TOP_PATH}" != "${FILE_PATH}" ] && [ $2 -eq 1 ]; then # 第三方度盘工具下载(子文件夹或多级目录等情况下的单文件下载)、BT下载(文件夹内文件数等于1),移动文件到设定的网盘文件夹下的相同路径文件夹。
UPLOAD_PATH="${FILE_PATH}"
REMOTE_PATH="${DRIVE_NAME}:${DRIVE_PATH}/${REMOVE_DOWNLOAD_PATH%/*}"
MOVIE_PATH="${FILE_PATH}"
PREVIEW
UPLOAD
exit 0
fi`
--transfers=N
--cache-chunk-size SizeSuffi
rclone move -v "$filepath" ${name}:${folder} --max-size $MaxSize --transfers=2 --cache-chunk-size 5M
downloadpath='/data/Download/' #Aria2下载目录
name='test' #配置Rclone时填写的name
folder='/share' #网盘里的文件夹,留空为整个网盘。
如设置以上参数后,下载的文件会上传整个下载目录
如GD上实际上传目录是: share/new folder/data/download
目前仓库中的脚本在OpenWRT中工作状况并不是特别良好,希望大佬有空的话可以出一个专版,蟹蟹大佬
你好,我想请教一个问题。
我在我的远程服务器上成功配置了 aria2,但我尝试在命令行上使用 aria2c
指定 url 下载发现,aria2c 一直作为守护进程开着,并没有下载我给定的 url 地址。请问没有图形化界面要如何使用配置后的 aria2 呢。
谢谢!
exclude-file=html|url|lnk|txt|jpg|png|nfo 关于排除选项机制,
注释是:在下载完成后。需要on-download-error=
去触发还是完成自动判断删除呢;其次,除了注释范例中的后缀名,这句命令支持自定义添加的后缀么?(比如我加了nfo)在测试的时候我下载了百度首页,index.html这个文件是会被上传,这里不知道是否单文件不进行判断,还我使用方式有问题或是代码失效。
关于rclone配置
drive-name=gd | drive-name=gd
drive-dir=/temp | drive-dir=/home/gdrive/temp
左边为正确配置,以谷歌网盘为根目录;右边为挂载点。网上很多非整合脚本用的是挂载路径。建议您可用在注释中多提一嘴区别挂载点,让我等码盲不至于在此绕圈圈。
建议安装包第一层只放aria2.conf、script.conf这两个文件或者其他文件隐藏(也许是我天真了)。从使用者角度而言,upload.sh我没可能看懂,仔细阅读github才帮助我找到了script。其他调用配置文件其实根本没必要看到,方便使用者和防止误操作都是很好的。
最后再次感谢一版又一版的改进和付出。
大佬,你好,首先感谢你的脚本,帮助小白用上离线下载!
目前,脚本中上传和下载信息在一个日志里面,查找起来很不方便,其实我们打开日志就是想看上传日志,下载信息在ariang面板里都有不需要打开日志,所以建议能不能上传日志单独归档,这样看起来比较方便,上传进度和是否完成上传也好查!
--------------------[TRACKERS]--------------------
[INFO] Adding trackers to 'aria2.conf' ...
sed: 1: "aria2.conf": command a expects \ followed by text
谢谢。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.