V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xlsepiphone
V2EX  ›  分享创造

deno-torrent

  •  1
     
  •   xlsepiphone · 2023-08-20 20:39:31 +08:00 · 1600 次点击
    这是一个创建于 489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近期对于 BT 相关技术产生了浓厚的兴趣。

    我现在的主要是想实现一个基于 deno 的 B/S 架构的完整 BT 下载器(并非迅雷那类的 Leech )。

    鉴于 deno 相关的库资源很少,只能重写一些种子相关的库,比如 bencode 编码、peerid 解析,以及 DHT 协议等。

    经过几天的连续高强度编程,目前完成的有:

    • bencode
    • torrent-generator
    • torrent-parser
    • torrent-peerid

    下一步准备继续实现 deno 的 DHT 协议。

    搞了个 deno-torrent 的 organization ,把所有的开源代码都集合在一起了。

    点这里:deno-torrent

    organization 头像有彩蛋。

    ps. qBittorrent 其实很好用了,但是一些个性化的需求难以实现,或者实现很麻烦。比如实现防吸血的功能,或者批量改名后继续做种。

    第 1 条附言  ·  2023-08-26 12:08:58 +08:00
    在写 dht 了,kademlia 算法看完,也理解了,就是 ts 的二进制操作比较麻烦。😂
    13 条回复    2023-08-26 13:28:32 +08:00
    xlsepiphone
        1
    xlsepiphone  
    OP
       2023-08-20 20:45:14 +08:00
    说到 qBittorrent 的改名做种功能,其实目前是支持手动改的,只能一个一个的改。

    太繁琐了,如果能支持基于正则的替换,就更好了。
    billzhuang
        2
    billzhuang  
       2023-08-20 20:48:40 +08:00 via iPhone
    手动点赞!给高强度编程点赞。

    能不能直接网页边下载边播放么?
    xlsepiphone
        3
    xlsepiphone  
    OP
       2023-08-20 20:52:53 +08:00
    @billzhuang #2
    1 、我只是想实现一个下载器
    2 、我想实现对于番剧的重命名,让 plex 可以很好的识别,例如 S1E01 这种格式,现在的字幕组基本都不按照这个格式命名,我用脚本修改后,就无法做种了,用 qb 改太繁琐。
    3 、想实现防吸血功能
    4 、目前主要的痛点就是 2 和 3 ,想通过插件的形式来完成,我只完成最核心的能力。把重命名和防吸血都做成插件,毕竟一个人的精力是有限的,看看后面能不能实现插件开发的正向反馈。
    xlsepiphone
        4
    xlsepiphone  
    OP
       2023-08-20 20:57:35 +08:00
    前段时间写了一个 Electron 的用来查看种子元数据和生成种子的小工具,有需要的朋友自取。

    ![Tor]( https://github.com/Sloaix/Tor/raw/master/screenshot/en/1.png)

    [Tor]( https://github.com/Sloaix/Tor)
    Trim21
        5
    Trim21  
       2023-08-20 21:15:59 +08:00 via Android
    @xlsepiphone 你这个 2…用脚本调用 qb 的 API 进行文件重命名不行就了,繁琐和继续做种的问题都解决了
    xlsepiphone
        6
    xlsepiphone  
    OP
       2023-08-20 21:24:38 +08:00
    @Trim21 #5 我才发现有 renameFile 这个 api 。。。发现的太晚了,代码都写了这么多了,只能硬着头继续了。

    不过即便是这样,还需要手动维护一份脚本,还要定时跑,年纪大了,很容易就忘了 nas 里面有这么一个脚本。。。

    我还是想把这些小功能插件化,实现一个官方的插件库,这一样我就不用在软件外面另外维护一个改名的脚本了。
    20160409
        7
    20160409  
       2023-08-22 02:47:14 +08:00 via iPhone
    插件方式的话,deluge BT 的一些功能就是靠这实现的。
    moonsn
        8
    moonsn  
       2023-08-22 15:36:15 +08:00 via Android
    说到 bt ,有没有能查看活跃度的工具?就是对下载上传做一些按时间维度的统计。目前的软件上只能看到一个总数(瞬时值)。
    需求比如看某个种子在某个时刻的上传下载。
    有 api 是不是可以搞个时序数据库采集加 grafana 展示?有现成的就好了。
    Trim21
        9
    Trim21  
       2023-08-25 20:16:06 +08:00 via Android
    Trim21
        10
    Trim21  
       2023-08-25 20:17:05 +08:00 via Android
    @xlsepiphone 如果是 go 或者 Python 的话我就来了,可惜是 ts…
    Trim21
        11
    Trim21  
       2023-08-25 20:18:21 +08:00 via Android
    @moonsn 这个是直接采集数据到 prometheus 的,查看数据,通过 grafana 查看数据
    moonsn
        12
    moonsn  
       2023-08-26 11:05:33 +08:00 via Android
    @Trim21 能看某一个种子的吗?还是只能看总量?
    Trim21
        13
    Trim21  
       2023-08-26 13:28:32 +08:00 via Android   ❤️ 1
    @moonsn 能看,每个种子的上传和下载量都有导出。

    不过我提供的这个 dashboard 没有对应的选项,你可以用 grafana 的 explorer 看。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2673 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:47 · PVG 15:47 · LAX 23:47 · JFK 02:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.