Giter VIP home page Giter VIP logo

iyuuplus's Issues

无法访问接口

image
按照提示操作后问题仍然不能解决,重新安装IYUUPlus后问题依旧

[连接错误] http://192.168.3.2:6363qBittorrent Unable to authenticate with Web Api.

是否已搜索无相关issue

  • 是。

辅种计划任务配置

辅种计划任务日志

1614402933.7118 当前时间:2021-02-27 13:15:33
1614402933.7119 当前操作系统:Linux
1614402933.7119 当前运行环境:Linux
1614402933.7119 当前接口类型:cli
1614402933.7119 PHP二进制文件:/usr/bin/php7
1614402933.7119 PHP版本号:7.4.15
1614402933.7119 正在加载composer包管理器...
1614402933.7534 composer依赖载入完成!
1614402933.7535 环境变量初始化完成!
1614402933.7617 当前脚本路径:/IYUU/bin/iyuu.php
1614402933.8234 命令行参数解析完成!
hdhome合作站点参数配置不完整,请同时填写passkey和用户id。
合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
ourbits合作站点参数配置不完整,请同时填写passkey和用户id。
合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
hddolby合作站点参数配置不完整,请同时填写passkey和用户id。
合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
chdbits合作站点参数配置不完整,请同时填写passkey和用户id。
合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
hdai合作站点参数配置不完整,请同时填写passkey和用户id。
合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
1614402933.9782 辅种版本号:2.0.0
1614402933.9783 gitee源码仓库:https://gitee.com/ledc/IYUUAutoReseed
1614402933.9783 github源码仓库:https://github.com/ledccn/IYUUAutoReseed
1614402933.9783 教程:https://gitee.com/ledc/IYUUAutoReseed/tree/master/wiki
1614402933.9783 问答社区:http://wenda.iyuu.cn
1614402933.9783 【IYUU自动辅种交流】QQ群:859882209、931954050、924099912
1614402933.9783 正在连接IYUUAutoReseed服务器,查询支持列表……
IYUUAutoReseed自动辅种脚本,目前支持以下站点:
+----------------+---------------+-----------------+---------------+---------------+
| 1. keepfrds    | 2. pthome     | 3. m-team       | 4. hdsky      | 5. tjupt      |
| 6. pter        | 7. hdhome     | 8. btschool     | 9. ourbits    | 10. hddolby   |
| 11. torrentccf | 12. ptmsg     | 13. ttg         | 14. nanyangpt | 15. yingk     |
| 16. hdcity     | 17. nicept    | 18. 52pt        | 19. beitai    | 20. eastgame  |
| 21. ssd        | 22. soulvoice | 23. chdbits     | 24. leaguehd  | 25. ptsbao    |
| 26. hdchina    | 27. hdarea    | 28. hdtime      | 29. 1ptba     | 30. hd4fans   |
| 31. opencd     | 32. joyhd     | 33. dmhy        | 34. upxin     | 35. oshen     |
| 36. discfan    | 37. hdzone    | 38. hdbd        | 39. byr       | 40. ccfbits   |
| 41. hdbits     | 42. ptpbd     | 43. hd-torrents | 44. dicmusic  | 45. skyeysnow |
| 46. pt         | 47. hdroute   | 48. haidan      | 49. hdfans    | 50. dragonhd  |
| 51. hitpt      | 52. pttime    | 53. hdai        |
+----------------+---------------+-----------------+---------------+---------------+
qBittorrent 客户端正在实例化!
[连接错误] http://192.168.3.2:6363qBittorrent Unable to authenticate with Web Api.

是否已确认信息无误

已确认下载器用户名、密码、ip、端口均正确,内网、公网均可正常登录。

更多环境信息

  1. 威联通 453Bmini
  2. iyuuplus 采用 docker 版安装方式,镜像:iyuucn/iyuuplus:latest@sha256:887d800853d876e59712c819de9d151205603f8b3ea98546318e8a776be06753
  3. qb 是 docker 安装方式,版本:4.2.5,4.3.3,均为官方镜像
  4. qb web ui 配置如下图:

查看代码定位到 vendor\ledccn\bittorrentclient\src\qBittorrent\qBittorrent.php login() 处,接下去超出我的能力范围了

更新:

将 ip 更换为域名后,可以正常使用。

群晖Docker模式建立db文件夹未见有具体作用

https://www.iyuu.cn/archives/426/
群晖Docker安装步骤第4步,映射了对应的文件夹,但是通过这两天使用来看,该db文件夹中并未有任何文件,不是很清楚装载这个路径的意义是什么。
plus版与AutoReseed版不同,AutoReseed版能够找到辅种缓存和辅种错误的目录,plus版暂时没有找到
是因为plus版没有另外生成文件还是什么情况?只能在Web页面进行清除辅种缓存么?

好像不能对蒲公英正确匹配

同样的一个种子,如果我添加的蒲公英的,辅种就不能匹配到其他站。
我再添加一个其他站,(我试了猫站),然后就匹配到其他站了。
试了别的种子,蒲公英也不能匹配到其他站。

我的环境是仅ipv6,qb4.36.

希望U2支持附加参数https

登录时选定启用SSL,手动下载的种子是https的,而自动辅种下载的种子tracker都是http的,经常出现红种报错的问题(错误信息:Tracker gave HTTP response code 0 (No Response))。在修改tracker为https后问题消失。

过滤器设置文件大小不生效

过滤器设置文件大小不生效,使用阿童木和好大进行测试,均不可用。文件大小的单位使用相同单位或者不同单位均不可以,实测会下载所有符合其余条件的文件,忽略大小限制

Transmission辅种实例化失败,Unable to acquire X-Transmission-Session-Id

已经确定IP端口用户名密码都是对的,配置如图。

image

版本是刚拉取的docker最新镜像。

`

logo

IYUU PLUS

  • 运营后台
首页/ 运营后台/ 计划任务
新增/编辑计划任务
任务类型
                 请选择任务类型                 辅种任务                 转移任务                 Rss下载任务                 免费种爬虫下载任务                                
任务名称
给任务起个名字,方便你找到它。
任务使能
NO
确认保存 刷新
×
拖拽到此处
图片将完成下载

codelayui.code

  1. 2021-09-09 17:20:21 清理日志
  2. IIIIIIIIIIYYYYYYY YYYYYYYUUUUUUUU UUUUUUUUUUUUUUUU UUUUUUUU
  3. I::::::::IY:::::Y Y:::::YU::::::U U::::::UU::::::U U::::::U
  4. I::::::::IY:::::Y Y:::::YU::::::U U::::::UU::::::U U::::::U
  5. II::::::IIY::::::Y Y::::::YUU:::::U U:::::UUUU:::::U U:::::UU
  6. I::::I YYY:::::Y Y:::::YYY U:::::U U:::::U U:::::U U:::::U
  7. I::::I Y:::::Y Y:::::Y U:::::D D:::::U U:::::D D:::::U
  8. I::::I Y:::::Y:::::Y U:::::D D:::::U U:::::D D:::::U
  9. I::::I Y:::::::::Y U:::::D D:::::U U:::::D D:::::U
  10. I::::I Y:::::::Y U:::::D D:::::U U:::::D D:::::U
  11. I::::I Y:::::Y U:::::D D:::::U U:::::D D:::::U
  12. I::::I Y:::::Y U:::::D D:::::U U:::::D D:::::U
  13. I::::I Y:::::Y U::::::U U::::::U U::::::U U::::::U
  14. II::::::II Y:::::Y U:::::::UUU:::::::U U:::::::UUU:::::::U
  15. I::::::::I YYYY:::::YYYY UU:::::::::::::UU UU:::::::::::::UU
  16. I::::::::I Y:::::::::::Y UU:::::::::UU UU:::::::::UU
  17. IIIIIIIIII YYYYYYYYYYYYY UUUUUUUUU UUUUUUUUU
  18. 1631179221.3731 当前时间:2021-09-09 17:20:21
  19. 1631179221.3732 当前操作系统:Linux
  20. 1631179221.3732 当前运行环境:Linux
  21. 1631179221.3732 当前接口类型:cli
  22. 1631179221.3732 PHP二进制文件:/usr/bin/php7
  23. 1631179221.3732 PHP版本号:7.4.23
  24. 1631179221.3732 正在加载composer包管理器...
  25. 1631179221.3741 composer依赖载入完成!
  26. 1631179221.3741 环境变量初始化完成!
  27. 1631179221.3745 当前脚本路径:/IYUU/bin/iyuu.php
  28. 1631179221.3768 命令行参数解析完成!
  29. pthome合作站点参数配置不完整,请同时填写passkey和用户id。
  30. 合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
  31. hdhome合作站点参数配置不完整,请同时填写passkey和用户id。
  32. 合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
  33. ourbits合作站点参数配置不完整,请同时填写passkey和用户id。
  34. 合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
  35. chdbits合作站点参数配置不完整,请同时填写passkey和用户id。
  36. 合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
  37. hdai合作站点参数配置不完整,请同时填写passkey和用户id。
  38. 合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/
  39. 1631179221.429 辅种版本号:2.0.0
  40. 1631179221.429 gitee源码仓库:https://gitee.com/ledc/iyuuplus
  41. 1631179221.429 github源码仓库:https://github.com/ledccn/IYUUPlus
  42. 1631179221.429 教程:https://www.iyuu.cn
  43. 1631179221.429 【IYUU自动辅种交流】QQ群:859882209, 931954050, 924099912, 586608623, 41477250
  44. 1631179221.429 正在连接IYUUAutoReseed服务器,查询支持列表……
  45. IYUUAutoReseed自动辅种脚本,目前支持以下站点:
  46. +----------------+-----------------+--------------+---------------+---------------------+
  47. | 1. keepfrds | 2. pthome | 3. m-team | 4. hdsky | 5. tjupt |
  48. | 6. pter | 7. hdhome | 8. btschool | 9. ourbits | 10. hddolby |
  49. | 11. torrentccf | 12. ptmsg | 13. ttg | 14. nanyangpt | 15. hdcity |
  50. | 16. nicept | 17. 52pt | 18. beitai | 19. eastgame | 20. ssd |
  51. | 21. soulvoice | 22. chdbits | 23. leaguehd | 24. ptsbao | 25. hdchina |
  52. | 26. hdarea | 27. hdtime | 28. 1ptba | 29. hd4fans | 30. opencd |
  53. | 31. joyhd | 32. dmhy | 33. upxin | 34. oshen | 35. discfan |
  54. | 36. hdzone | 37. hdbd | 38. byr | 39. ccfbits | 40. hdbits |
  55. | 41. ptpbd | 42. hd-torrents | 43. dicmusic | 44. skyeysnow | 45. pt |
  56. | 46. hdroute | 47. haidan | 48. hdfans | 49. dragonhd | 50. hitpt |
  57. | 51. pttime | 52. hdai | 53. npupt | 54. hdatmos | 55. greatposterwall |
  58. | 56. hdpost | 57. hares | 58. hudbt |
  59. +----------------+-----------------+--------------+---------------+---------------------+
  60. transmission 客户端正在实例化!
  61. [连接错误] http://192.168.1.151:9091 Unable to acquire X-Transmission-Session-Id

`

应用日志里提示Warning: usleep()

用的Arm64v8的docker镜像。

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
PHP Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Stack trace:
#0 /IYUU/vendor/workerman/crontab/src/Crontab.php(155): Workerman\Crontab\Parser->parse('05 10 */0.5 * *')
#1 /IYUU/vendor/workerman/workerman/Events/Select.php(232): Workerman\Crontab\Crontab::Workerman\Crontab\{closure}()
#2 /IYUU/vendor/workerman/workerman/Events/Select.php(281): Workerman\Events\Select->tick()
#3 /IYUU/vendor/workerman/workerman/Worker.php(2430): Workerman\Events\Select->loop()
#4 /IYUU/vendor/workerman/workerman/Worker.php(1555): Workerman\Worker->run()
#5 /IYUU/vendor/workerman/workerman/Worker.php(1385): Workerman\Worker::forkOneWorkerForLinux(Object(Workerman\Worker))
#6 /IYUU/vendor/workerman/workerman/Worker.php(1359): Workerman\Worker::forkWorkersForLinux()
#7 /IYUU/vendor/workerman/workerman/Worker.php(542): Workerman\Worker::forkWorkers()
#8 /IYUU/start.php(167): Workerman\Worker::runAll()
#9 {main}
  thrown in /IYUU/vendor/workerman/crontab/src/Parser.php on line 64

Fatal error: Uncaught InvalidArgumentException: Invalid cron string: 05 10 */0.5 * * in /IYUU/vendor/workerman/crontab/src/Parser.php:64
Stack trace:
#0 /IYUU/vendor/workerman/crontab/src/Crontab.php(155): Workerman\Crontab\Parser->parse('05 10 */0.5 * *')
#1 /IYUU/vendor/workerman/workerman/Events/Select.php(232): Workerman\Crontab\Crontab::Workerman\Crontab\{closure}()
#2 /IYUU/vendor/workerman/workerman/Events/Select.php(281): Workerman\Events\Select->tick()
#3 /IYUU/vendor/workerman/workerman/Worker.php(2430): Workerman\Events\Select->loop()
#4 /IYUU/vendor/workerman/workerman/Worker.php(1555): Workerman\Worker->run()
#5 /IYUU/vendor/workerman/workerman/Worker.php(1385): Workerman\Worker::forkOneWorkerForLinux(Object(Workerman\Worker))
#6 /IYUU/vendor/workerman/workerman/Worker.php(1359): Workerman\Worker::forkWorkersForLinux()
#7 /IYUU/vendor/workerman/workerman/Worker.php(542): Workerman\Worker::forkWorkers()
#8 /IYUU/start.php(167): Workerman\Worker::runAll()
#9 {main}
  thrown in /IYUU/vendor/workerman/crontab/src/Parser.php on line 64
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/runtime/crontab/cron_dir/pid19_2250_6019fcab66d0a.crontab修改时间:2021-02-03 09:31:53
/IYUU/runtime/crontab/cron_dir/pid19_2250_6019fcab66d0a.crontab修改时间:2021-02-03 16:11:02
/IYUU/app/controller/Api.php update and reload
/IYUU/app/domain/Crontab.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/runtime/crontab/cron_dir/pid19_2250_6019fcab66d0a.crontab修改时间:2021-02-04 17:59:27
/IYUU/app/domain/Crontab.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/app/middleware/AuthCheck.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/app/controller/Task.php update and reload
/IYUU/app/controller/Task.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/app/domain/Reseed.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
/IYUU/runtime/crontab/cron_dir/pid19_2250_6019fcab66d0a.crontab修改时间:2021-02-07 10:27:01
/IYUU/app/controller/Api.php update and reload
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275
PHP Warning:  usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275

Warning: usleep(): Number of microseconds must be greater than or equal to 0 in /IYUU/vendor/workerman/workerman/Events/Select.php on line 275```

log文件巨大

威联通container里装的,最近发现log能占用几百G,经常把盘塞满。目前有8000多种。

是否可以将获取hash的客户端和发送hash的客户端分开

非单纯刷数据,自用的情况下,手头的站点多起来之后,一个种子在下载客户端重复出现一大片。

所以就在想是否可以正常下载的种子在客户端1,而辅种的种子在客户端2?(docker多开实例实现)

看了下辅种是从哪个客户端获取hash就发送到哪个客户端;转移做种是全部转移,连正常下的那个也转走了。

现有的功能是否能实现呢,还是需要添加新功能。

转移任务微信通知小bug/建议

位置 /src/Reseed/MoveTorrent.php#L310
标题内容:IYUU自动辅种-统计报表
建议修改:IYUU任务转移-统计报表

另外此任务通知中未添加对 ”notify_on_change“ 的检测,导致转移任务成功数量为0时发送空通知,例如:

IYUU自动辅种-统计报表
版本号:2.0.6
此消息将在3天后过期。

非PHP程序员,暂不敢直接提交PR,辛苦开发者(们 ):-)

另建议:站点下拉列表支持搜索或自动首字母匹配

发现一个问题,从服务器拉取的种子一部分非https

发现一个问题,从服务器拉取的种子一部分非https(在开启ssl连接tracker时),猜测是当时爬取种子时未开启或还未支持ssl连接tracker,导致这批种子的tracker链接都不是https的。希望在站点设置可以预设该站点种子tracker为https,对非https的拉取的非https的种子批量修正tracker。

如何使用nginx反代?

现在的配置是

location /iyuu {
return 301 /IYUUPlus/;
}
location /IYUUPlus/ {
proxy_pass http://127.0.0.1:8787/;
proxy_redirect / /IYUUPlus/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}

登录页无法登入,点击登入没有反应

byr和北洋园辅种失败

Snipaste_2021-09-14_17-09-50

错误提示如图

2021-09-14 16:56:35 (67a06d7) 最新版本的IYYUPlus
其他站点辅种正常
好像是因为站点种子的链接出问题了,我复制byr下载种子的连接,然后用qb从连接添加种子,就解析失败。试了猫站的就正常

请求增加辅种任务指定文件夹选择或排除的功能

感谢大卫的IYUU,非常造福pter。根据我个人的使用体会,有一个小小的体会:
我在使用tr或者qb时,都会创建不同的文件夹或者分类来存放不同的种子,
这些种子有的是我长期保存的,希望可以通过自动辅种去给别的站的相同种子辅上,
但是有些种子不是长期保存,因此希望自动辅种程序运行的时候可以排除这些种子(这些种子会有指定的文件夹或者分类)。
现在的情况是自动辅种运行时会包含qb或tr内所有的种子,带来一些不必要的辅种以及校验,
因此建议作者可以增加一个这个功能,让辅种任务更加灵活,感谢!

RSS计划任务,下载的数据目录不对

数据目录怎么设置都无效

设置如下:
1.RSS计划任务里,数据目录留空
2.过滤器数据目录:/download3/电视剧
3.目录设置
1
4.映射目录
2
5.最终RSS自动下载到
3

无法连接到 域名地址下载器

1613637003.5267 正在连接IYUUAutoReseed服务器,查询支持列表……
IYUUAutoReseed自动辅种脚本,目前支持以下站点:
+----------------+---------------+-----------------+---------------+---------------+
| 1. keepfrds    | 2. pthome     | 3. m-team       | 4. hdsky      | 5. tjupt      |
| 6. pter        | 7. hdhome     | 8. btschool     | 9. ourbits    | 10. hddolby   |
| 11. torrentccf | 12. ptmsg     | 13. ttg         | 14. nanyangpt | 15. yingk     |
| 16. hdcity     | 17. nicept    | 18. 52pt        | 19. beitai    | 20. eastgame  |
| 21. ssd        | 22. soulvoice | 23. chdbits     | 24. leaguehd  | 25. ptsbao    |
| 26. hdchina    | 27. hdarea    | 28. hdtime      | 29. 1ptba     | 30. hd4fans   |
| 31. opencd     | 32. joyhd     | 33. dmhy        | 34. upxin     | 35. oshen     |
| 36. discfan    | 37. hdzone    | 38. hdbd        | 39. byr       | 40. ccfbits   |
| 41. hdbits     | 42. ptpbd     | 43. hd-torrents | 44. dicmusic  | 45. skyeysnow |
| 46. pt         | 47. hdroute   | 48. haidan      | 49. hdfans    | 50. dragonhd  |
| 51. hitpt      | 52. pttime    | 53. hdai        |
+----------------+---------------+-----------------+---------------+---------------+
transmission 客户端正在实例化!
[连接错误] http://xxx.h6.work:9091Unable to acquire X-Transmission-Session-Id

docker iyuuplus
连接外网的地址ok,但是连接地址域名xxx.h6.work 的 和运行iyuuplus的 docker 是同一个 局域网 就报那个错误。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.