yjl9903 / AnimeGarden

動漫花園第三 镜像站 / 动画 BT 资源聚合站
https://garden.breadio.wiki/
MIT License
327 stars 20 forks source link

[Feature Request] 关于增加 api 的返回项 #1412

Closed FlipWind closed 1 month ago

FlipWind commented 1 month ago

Clear and concise description of the problem

rt,现有的 api (/api/resources)返回结果的某一项为:

{
            "id": 6313577,
            "provider": "dmhy",
            "providerId": "674973",
            "title": "[霜庭云花Sub] 亚托莉 -我挚爱的时光- / アトリ / ATRI -My Dear Moments- - 01 [WebRip 1080P HEVC AAC][简繁日内封 ASSx5 SRTx1]",
            "href": "https://share.dmhy.org/topics/view/674973_Sub_-_-_ATRI_-My_Dear_Moments-_-_01_WebRip_1080P_HEVC_AAC_ASSx5_SRTx1.html",
            "type": "動畫",
            "magnet": "magnet:?xt=urn:btih:ECS5PJSCPVTAQZTPT3H3UXCZSHWXVUQK&dn=&tr=http%3A%2F%2F104.143.10.186%3A8000%2Fannounce&tr=udp%3A%2F%2F104.143.10.186%3A8000%2Fannounce&tr=http%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=http%3A%2F%2Ftracker3.itzmx.com%3A6961%2Fannounce&tr=http%3A%2F%2Ftracker4.itzmx.com%3A2710%2Fannounce&tr=http%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr=http%3A%2F%2Ftracker.prq.to%2Fannounce&tr=http%3A%2F%2Fopen.acgtracker.com%3A1096%2Fannounce&tr=https%3A%2F%2Ft-115.rhcloud.com%2Fonly_for_ylbud&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce&tr=http%3A%2F%2Ftracker2.itzmx.com%3A6961%2Fannounce&tr=udp%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce&tr=udp%3A%2F%2Ftracker2.itzmx.com%3A6961%2Fannounce&tr=udp%3A%2F%2Ftracker3.itzmx.com%3A6961%2Fannounce&tr=udp%3A%2F%2Ftracker4.itzmx.com%3A2710%2Fannounce&tr=http%3A%2F%2Ftr.bangumi.moe%3A6969%2Fannounce&tr=http%3A%2F%2Ft.nyaatracker.com%2Fannounce&tr=http%3A%2F%2Fopen.nyaatorrents.info%3A6544%2Fannounce&tr=http%3A%2F%2Ft2.popgo.org%3A7456%2Fannonce&tr=http%3A%2F%2Fshare.camoe.cn%3A8080%2Fannounce&tr=http%3A%2F%2Fopentracker.acgnx.se%2Fannounce&tr=http%3A%2F%2Ftracker.acgnx.se%2Fannounce&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=http%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=wss%3A%2F%2Ftracker.openwebtorrent.com%3A443%2Fannounce&tr=http%3A%2F%2F%5B2001%3A1b10%3A1000%3A8101%3A0%3A242%3Aac11%3A2%5D%3A6969%2Fannounce&tr=http%3A%2F%2F%5B2a04%3Aac00%3A1%3A3dd8%3A%3A1%3A2710%5D%3A2710%2Fannounce&tr=http%3A%2F%2F1337.abcvg.info%2Fannounce&tr=http%3A%2F%2F207.241.226.111%3A6969%2Fannounce&tr=http%3A%2F%2F207.241.231.226%3A6969%2Fannounce&tr=http%3A%2F%2Fretracker.hotplug.ru%3A2710%2Fannounce&tr=http%3A%2F%2Ft.acg.rip%3A6699%2Fannounce&tr=http%3A%2F%2Ftracker.birkenwald.de%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.bt4g.com%3A2095%2Fannounce&tr=http%3A%2F%2Ftracker.dler.com%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.openbittorrent.com%2Fannounce&tr=http%3A%2F%2Ftracker.srv00.com%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker2.dler.org%2Fannounce&tr=http%3A%2F%2Fcutiegirl.ru%3A6969%2Fannounce&tr=http%3A%2F%2Fmovies.zsw.ca%3A6969%2Fannounce&tr=http%3A%2F%2Ffe.dealclub.de%3A6969%2Fannounce&tr=http%3A%2F%2Fvps02.net.orel.ru%2Fannounce&tr=https%3A%2F%2F1337.abcvg.info%2Fannounce&tr=https%3A%2F%2Ftracker.srv00.com%2Fannounce&tr=http%3A%2F%2Fchouchou.top%3A8080%2Fannounce&tr=http%3A%2F%2Ffxtt.ru%2Fannounce&tr=http%3A%2F%2Fhzzwly.gq%3A6969%2Fannounce&tr=http%3A%2F%2Fi-p-v-6.tk%3A6969%2Fannounce&tr=http%3A%2F%2Fincine.ru%3A6969%2Fannounce&tr=http%3A%2F%2Fipv6.1337.cx%3A6969%2Fannounce&tr=http%3A%2F%2Fipv6.govt.hu%3A6969%2Fannounce&tr=http%3A%2F%2Fjp.moeweb.pw%3A6969%2Fannounce&tr=http%3A%2F%2Fopen-v6.demonoid.ch%3A6969%2Fannounce&tr=http%3A%2F%2Fopen.acgnxtracker.com%2Fannounce&tr=http%3A%2F%2Fopen.tracker.ink%3A6969%2Fannounce&tr=http%3A%2F%2Ft.overflow.biz%3A6969%2Fannounce&tr=http%3A%2F%2Ftorrentsmd.com%3A8080%2Fannounce&tr=http%3A%2F%2Ftorrenttracker.nwc.acsalaska.net%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.dler.org%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.electro-torrent.pl%2Fannounce&tr=http%3A%2F%2Ftracker.files.fm%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.gbitt.info%2Fannounce&tr=http%3A%2F%2Ftracker.ipv6tracker.ru%2Fannounce&tr=http%3A%2F%2Ftracker.k.vu%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.lelux.fi%2Fannounce&tr=http%3A%2F%2Ftracker.mywaifu.best%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.nucozer-tracker.ml%3A2710%2Fannounce&tr=http%3A%2F%2Ftracker.vrpnet.org%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker1.bt.moack.co.kr%2Fannounce&tr=http%3A%2F%2Ftrackme.theom.nz%2Fannounce&tr=http%3A%2F%2Fwepzone.net%3A6969%2Fannounce&tr=http%3A%2F%2Fwww.wareztorrent.com%2Fannounce&tr=https%3A%2F%2Fopentracker.i2p.rocks%2Fannounce&tr=https%3A%2F%2Ftr.abiir.top%2Fannounce&tr=https%3A%2F%2Ftr.abir.ga%2Fannounce&tr=https%3A%2F%2Ftr.burnabyhighstar.com%2Fannounce&tr=https%3A%2F%2Ftr.fuckbitcoin.xyz%2Fannounce&tr=https%3A%2F%2Ftracker.expli.top%2Fannounce&tr=https%3A%2F%2Ftracker.foreverpirates.co%2Fannounce&tr=https%3A%2F%2Ftracker.gbitt.info%2Fannounce&tr=https%3A%2F%2Ftracker.jiesen.life%3A8443%2Fannounce&tr=https%3A%2F%2Ftracker.kuroy.me%2Fannounce&tr=https%3A%2F%2Ftracker.lilithraws.cf%2Fannounce&tr=https%3A%2F%2Ftracker.lilithraws.org%2Fannounce&tr=https%3A%2F%2Ftracker.loligirl.cn%2Fannounce&tr=https%3A%2F%2Ftracker.m-team.cc%2Fannounce.php&tr=https%3A%2F%2Ftracker.nanoha.org%2Fannounce&tr=https%3A%2F%2Ftracker.tamersunion.org%2Fannounce&tr=https%3A%2F%2Ftracker1.520.jp%2Fannounce&tr=https%3A%2F%2Ftrackme.theom.nz%2Fannounce&tr=https%3A%2F%2Fxtremex.herokuapp.com%2Fannounce&tr=ws%3A%2F%2Fhub.bugout.link%3A80%2Fannounce&tr=http%3A%2F%2Fopen.nyap2p.com%3A8080%2Fannounce&tr=http%3A%2F%2Fvps-dd0a0715.vps.ovh.net%3A6969%2Fannounce&tr=https%3A%2F%2Ft1.hloli.org%2Fannounce&tr=https%3A%2F%2Ftracker.moeblog.cn%2Fannounce&tr=https%3A%2F%2Ftracker2.ctix.cn%2Fannounce&tr=http%3A%2F%2Ftracker.edkj.club%3A6969%2Fannounce&tr=https%3A%2F%2Ftracker.cyber-hub.net%2Fannounce&tr=http%3A%2F%2Fli1406-230.members.linode.com%3A6969%2Fannounce&tr=http%3A%2F%2Ffosstorrents.com%3A6969%2Fannounce&tr=http%3A%2F%2Ftr.cili001.com%3A8070%2Fannounce&tr=http%3A%2F%2Fparag.rs%3A6969%2Fannounce&tr=http%3A%2F%2Ftracker.zerobytes.xyz%3A1337%2Fannounce",
            "size": "293.7MB",
            "createdAt": "2024-07-24T05:54:00.000Z",
            "fetchedAt": "2024-07-23T21:55:00.759Z",
            "fansub": {
                "id": "804",
                "name": "霜庭云花Sub",
                "href": "https://share.dmhy.org/topics/list/team_id/804"
            },
            "publisher": {
                "id": "751592",
                "name": "霜庭云花Sub",
                "href": "https://share.dmhy.org/topics/list/user_id/751592"
            }
        },

其中 magnet 项是肉眼可见的冗长。 而在处理返回时由于我不太清楚种子的构成,因而不敢随意缩短链接。

Suggested solution

查看某页面 https://garden.breadio.wiki/detail/dmhy/* 有如下结果: image

注意到这里是有个 “磁力链接 Type II” 的,所以请求您是否可以将 api 的返回结果加上这一项。

Additional context

No response

yjl9903 commented 1 month ago
  1. 默认的链接很长是看起来是因为带了一堆 tracker 地址,如果你的 bt client (qbittorrent) 设置过了,例如订阅了 https://github.com/DeSireFire/animeTrackerList 这个 tracker list,感觉直接把那一堆 tracker 去掉问题不大;
  2. dmhy 现在好像又崩了,反正抓列表的时候拿不到 type 2 链接,也得一个个进去爬,这是没有返回的主要原因。
yjl9903 commented 1 month ago

所以,目前考虑 2 个新功能:

  1. 接口返回列表的时候,是否带磁力,磁力 type 2 是可选的;
  2. 磁力 type 2 默认为空,至少有一个人请求抓过一次这个资源的详情后,才记录上这个链接。

关于第 2 点:

  1. 几百万条老数据,不可能一条一条爬出来,只能保证新数据有 type 2 链接信息;
  2. 在定时任务里主动抓,不确定会不会有什么问题,得考虑一下。
FlipWind commented 1 month ago

所以 tracker 本质上是可以去掉的吗,感谢您的说明~ 同时您既然提供 tracker 列表,那么我后续也就直接对我引用您 api 的项目进行 magnet 链接去 tracker 化,一行代码的事情;并进行用户引导即可。

至于爬取 type II,既然 tracker 可以去掉,那么我个人感觉也其实是似乎没那么必要的() 最后感谢解惑。

FlipWind commented 1 month ago

同时关于新功能,我认为是不是可以直接在 api 内部提供一个 “magnet 链接是否携带 tracker” 的可选项呢?这样一来,既减轻了服务器的压力,也解决了需求。

此外,虽然但是,事实上我不太清楚详情页提供的两个磁力链接之间的区别。

yjl9903 commented 1 month ago

@FlipWind Done in https://github.com/yjl9903/AnimeGarden/commit/3577c4b192cddd19a115ff07078e89d524ef2ba6 and https://github.com/yjl9903/AnimeGarden/commit/a42b8839d8df713bf1d8f1b24d4d8a5451142036

API usage see https://github.com/yjl9903/AnimeGarden/blob/3577c4b192cddd19a115ff07078e89d524ef2ba6/scripts/api.http#L5-L11

FlipWind commented 1 month ago

收到,感谢!

yjl9903 commented 1 month ago

为了兼容更多平台,重新打开。

最近 API 可能还会有其他变动。

yjl9903 commented 1 month ago

目前 API 格式改为,类似如下:

https://github.com/yjl9903/AnimeGarden/blob/ffec5dd029709efdf2f5214eee8b1393657104ed/scripts/api.http#L5-L7

默认返回了只有 hash 的磁力链接,search params 指定 tracker=true 后再返回对应的 tracker

可以直接 magnet + tracker 拼出完整磁力链接