Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(drivers): add the support for Trainbit #3813

Merged
merged 7 commits into from
Mar 12, 2023
Merged

feat(drivers): add the support for Trainbit #3813

merged 7 commits into from
Mar 12, 2023

Conversation

NightSpaceC
Copy link
Contributor

添加对Trainbit的支持,网站没有提供复制文件的接口,因此没有实现复制操作

modify the structure of code
allow to create folder, move, rename and remove
@welcome
Copy link

welcome bot commented Mar 11, 2023

Thanks for opening this pull request! Please check out our contributing guidelines.

@anwen-anyi
Copy link
Contributor

大概瞅了下 好像不适合存储文件诶~ 免费的话自上次文件下载后 15 天 就会呗删除QAQ

display progress of updating
@NightSpaceC
Copy link
Contributor Author

大概瞅了下 好像不适合存储文件诶~ 免费的话自上次文件下载后 15 天 就会呗删除QAQ

这个好像只是写在上面,但没有实际执行,我有文件一年多没被下载也还在,网上我也查到过时间更长的案例

@anwen-anyi
Copy link
Contributor

大概瞅了下 好像不适合存储文件诶~ 免费的话自上次文件下载后 15 天 就会呗删除QAQ

这个好像只是写在上面,但没有实际执行,我有文件一年多没被下载也还在,网上我也查到过时间更长的案例

好吧,如果你 add 完毕了可以开启一下自动构建~

@anwen-anyi
Copy link
Contributor

AUSHELLPORTALApikey
我从 F12获取到了分别对应的是 AUSHELLPORTALwsretkeyapi 应该没获取错误吧?
根文件夹ID是不是 错啦 默认是 那么一大串的 0 哈哈 0_00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

如果我没获取错误的话 添加完提示 failed get objs: failed to list objs: illegal base64 data at input byte 4 错误信息

使用的是 https://github.com/alist-org/alist/actions/runs/4395602772 这个build 构建的版本

@NightSpaceC
Copy link
Contributor Author

对不起哈,忘记说明了~

0_000...只是随便想的一个默认ID串,它的格式是<目录ID>_<目录uploadurl的q参数>

图片

这么设计是因为Trainbit上传文件要用到目录uploadurl的q参数,为了方便同时也为了提高效率所以把两个一起编码成ID

@anwen-anyi
Copy link
Contributor

anwen-anyi commented Mar 12, 2023

好像还是不行诶?
我从F12 里面的 https://trainbit.com/lib/api/v1/listoffiles
拿到了 如下的
例如根目录就是
根目录:0_623xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxD
images:8585892484_456Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6686D63664E
video:7585892484_3549xxxxxxxxxxxxxxxxxxxxx43315177664150
但是这样写好像还是不对 你看下我 AUSHELLPORTALApikey 获取的参数获取方式对吗?

{
    "result": 0,
    "items": [
        {
            "id": "0",
            "name": "",
            "ext": "",
            "tag": "",
            "ty": -1,
            "modified": "",
            "byte": 0,
            "size": "0",
            "perm": 1,
            "subscription": 0,
            "pwd": "",
            "parent": "0",
            "dlmode": 0,
            "banstat": 0,
            "subscribers": 0,
            "cntdl": 0,
            "tinylink": "",
            "accesslevel": 0,
            "sharestat": 0,
            "invitestat": 0,
            "isowner": 0,
            "viewable": 1,
            "cdn": 0,
            "uploadurl": "/{0}/?q=623xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxD",
            "uploadurl2": "/{0}/?p=0-1073119-0-1073119"
        },
        {
            "id": "8585892484",
            "name": "images",
            "ext": "",
            "tag": "",
            "ty": 1,
            "modified": "2023/03/12 10:29:35",
            "byte": 14925890,
            "size": "14.23 MB",
            "perm": 1,
            "subscription": 1,
            "pwd": "",
            "parent": "",
            "dlmode": 0,
            "banstat": 0,
            "subscribers": 0,
            "cntdl": 0,
            "tinylink": "",
            "accesslevel": 14,
            "sharestat": 0,
            "invitestat": 0,
            "isowner": 1,
            "viewable": 0,
            "cdn": 0,
            "uploadurl": "/{0}/?q=456Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6686D63664E",
            "uploadurl2": "/{0}/?p=1015218181-1073119-0-1073119"
        },
        {
            "id": "7585892484",
            "name": "video",
            "ext": "",
            "tag": "",
            "ty": 1,
            "modified": "2023/03/12 10:29:28",
            "byte": 10067003,
            "size": "9.6 MB",
            "perm": 1,
            "subscription": 1,
            "pwd": "",
            "parent": "",
            "dlmode": 0,
            "banstat": 0,
            "subscribers": 0,
            "cntdl": 0,
            "tinylink": "",
            "accesslevel": 14,
            "sharestat": 0,
            "invitestat": 0,
            "isowner": 1,
            "viewable": 0,
            "cdn": 0,
            "uploadurl": "/{0}/?q=3549xxxxxxxxxxxxxxxxxxxxx43315177664150",
            "uploadurl2": "/{0}/?p=1015218180-1073119-0-1073119"
        }
    ]
}

@NightSpaceC
Copy link
Contributor Author

是正确的,还是返回原来的错误吗?我是可以使用的

图片

图片

@anwen-anyi
Copy link
Contributor

是的 还是返回 之前的错误

failed get objs: failed to list objs: illegal base64 data at input byte 4

@NightSpaceC
Copy link
Contributor Author

NightSpaceC commented Mar 12, 2023

再看了一下,这才是发生错误的原因

Trainbit对文件名的支持存在问题,我已知的问题有文件名不能为日文,不能修改扩展名。因此我将文件名(包括扩展名)进行了Base64编码,应该是你的目录下有未按要求编码文件名的文件,解析时发生错误

图片

@anwen-anyi
Copy link
Contributor

这样也不行吗?
name

@NightSpaceC
Copy link
Contributor Author

人看是正常的,但是这个driver会把它当base64解析,解析不出来,就报错了

@anwen-anyi
Copy link
Contributor

人看是正常的,但是这个driver会把它当base64解析,解析不出来,就报错了

emmm 这怎么搞 哈哈...

@anwen-anyi
Copy link
Contributor

人看是正常的,但是这个driver会把它当base64解析,解析不出来,就报错了

emmm 这怎么搞 哈哈...
(手动把文件名和扩展名 进行base64编码?)

@NightSpaceC
Copy link
Contributor Author

用alist上传文件,或者我再改改,换个更好的方法

@anwen-anyi
Copy link
Contributor

anwen-anyi commented Mar 12, 2023

emmm 把那些都删了(清空了只剩下文件夹了 倒是能打开了)
不过这样的话都编码了啥也看不出来是啥了 哈哈 用起来更不方便QAQ 还是得改改吖~
(虽然AList看到的是正确的,不过这个网站自己本地上传也比较慢 明明已经上传好了还在 100%进度条卡半天QAQ)

@anwen-anyi
Copy link
Contributor

build一下咯 我试试看~ 哈哈

@NightSpaceC
Copy link
Contributor Author

刚刚又发现些问题,还要改

@anwen-anyi
Copy link
Contributor

刚刚又发现些问题,还要改

顺便也把 0 后面的缩短一下吧~太长了删除都费劲~~

@NightSpaceC
Copy link
Contributor Author

改好了,网站在上传文件时会自动做一次URL解码,所以上传文件时要编码两次,改名时编码一次,读取文件的时候解码一次,和,如果解码失败就显示原始名称

@anwen-anyi
Copy link
Contributor

anwen-anyi commented Mar 12, 2023

OK 等build好了我试试看~(可以使用它们官网上传的文件是吗)

@NightSpaceC
Copy link
Contributor Author

是的

@anwen-anyi
Copy link
Contributor

anwen-anyi commented Mar 12, 2023

他官网上传就很奇怪,老是吞字儿 哈哈
例如:

15-0603认真.png  --->  15-0603真.png 
15-0711严肃.png  --->  15-0711严.png 
令人很(高)舒(血)适(压)IMG_9431.MP4 --->  予()舒(血)适(؋)IMG_9431.mp4

以上是它们官网的问题(暂且先不管),

现在还有个新问题,就是通过它们官网上传的 在AList不显示后缀了QAQ
紫色框哪个是后来从AList上传的,倒是没问题
error

@NightSpaceC
Copy link
Contributor Author

已经解决,现在为了支持修改扩展名,driver会在文件名后附加.delete_suffix.标志以识别应当被忽略的扩展名

@anwen-anyi
Copy link
Contributor

OK 现在能用了 就先不管了暂时 哈哈...
只是多了个 . 没有出现 delete_suffix 影响不大
就这样了 溜了~

@NightSpaceC
Copy link
Contributor Author

等等,我还有个地方要修

@NightSpaceC
Copy link
Contributor Author

好了

@anwen-anyi
Copy link
Contributor

报错了? 没启动build

@NightSpaceC
Copy link
Contributor Author

我看看

以及多个.没办法,这是网站的问题,我永远不知道是网站加的还是本来就有

@xhofe
Copy link
Collaborator

xhofe commented Mar 12, 2023

报错了? 没启动build

……第一次contribute 每次commit都需要我 approve才可以运行ci

@anwen-anyi
Copy link
Contributor

还有就是他还给 PNG 格式的 后面加了个小写的 png

@anwen-anyi
Copy link
Contributor

报错了? 没启动build

……第一次contribute 每次commit都需要我 approve才可以运行ci

好吧 这样啊~ 不过确实报错了 哈哈

fix the bug of filename
@NightSpaceC
Copy link
Contributor Author

还有就是他还给 PNG 格式的 后面加了个小写的 png

这是因为之前和现在对这种情况的处理方式不一样,现在重新上传一个就不会这样了

@anwen-anyi
Copy link
Contributor

还有就是他还给 PNG 格式的 后面加了个小写的 png

这是因为之前和现在对这种情况的处理方式不一样,现在重新上传一个就不会这样了

嗯呐 等这次build好试试 应该是 End 版了吧 哈哈

@anwen-anyi
Copy link
Contributor

嗯 现在没啥问题了,如果是在官方页面上传的 没有 .delete_suffix. 这个是吧~

@NightSpaceC
Copy link
Contributor Author

NightSpaceC commented Mar 12, 2023 via email

@xhofe xhofe merged commit 3b2703a into AlistGo:main Mar 12, 2023
@welcome
Copy link

welcome bot commented Mar 12, 2023

Congrats on merging your first pull request! We here at behavior bot are proud of you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants