new discord antics.19.07.10

发表于 2019-07-09  24 次阅读


文章目录

bruh

前段时间又折腾了一顿discord,我之前不是写了一个discord递归上传脚本用来上传专辑吗,但我突然闲得蛋疼给它加上了一个超出容量自动rar打包的功能。这下好了,discord每上传一个文件就会返回一个详尽的json,里面有上传到discord后的链接,脚本执行过程中只要收集好这些链接,然后扔进aria2里,就能在另外一台机子上全部下下来了。而且还是超多线程下载哦;这样一来discord的8MB上传限制基本上可以无视了,而且批量下载既快又方便,哪怕把一个文件夹打包进去都无妨

不过说到文件夹,递归函数自然就是为遍历文件夹设计的,而它运行时到每一层都带有这层文件夹结构的信息,这部分信息就和文件原名同样可以写入aria2用的列表文件里面,只需在链接后面另起一行,dir=xxxx,然后再另起一行,out=xxxx,这样当用aria2下载时,不仅原文件名恢复出来了,甚至连文件夹的结构都恢复了出来,discord“网盘”瞬间秒onedrive和google drive成为了我的首选youtube用网盘(手动滑稽

当然我是有aria2的,但不代表别的用户有;这也好办,我给脚本加了一条功能,让它可以将一个预先编译好的魔改版aria2c.exe、列表文件和两个bat,一个直接点击就能下载,另外一个是拖进去下载的,全部打包到了一个rar文件压缩包里,然后将其也上传到discord上,有这个压缩包就能下载出所有的文件来。其实这种下载方式比什么网盘下载起来还快,还要好用,甚至不用打开多余的网页,点点bat就能自动下载了,实测在另外一台VPS上达到了50MB/s的下载速率,直逼google drive啊

当然在国内用起来不是很爽,因为discord被墙了,好像还是彻底被墙,至少cdn站是直接reset,国内还是接着用度盘吧;但在墙外这个“网盘”用起来还是相当爽的

当然不爽的是上传了,如果没有nitro,每个8MB的文件需要一秒左右,为防止ratelimit还需要再歇一秒,这样平均下来只有3MB/s的上传速度;当然并行化也是有可能的,除了深度优先外你们应该还记得有种叫做广度优先的遍历目录树的方式,它会将所有要上传的文件列出来扔进队列,而这个队列不像栈,其实是可以并行化的,只需要多注册几个discord账号,然后它们同时从队列里面取东西,然后就能并行上传了;只不过这样就需要“高级脚本语言”,而我最™讨厌这种语言,你们可以自己试试

而且理论上来说其实哪怕对bash来说也不用非要写个递归函数,用find之类的命令照样能列举出所有文件,包括它们所在的目录,如果它能输出所有文件的绝对路径的话那么相对路径等aria2接下来需要的参数当然也能推算出来了;当然我写这个递归函数主要是想测试bash能不能递归,而且我还需要在上传专辑之前将那个专辑文件夹的名字先发上去,以增加discord消息的可读性,如果做网盘用的话这些东西都不需要

javascript

除此之外我还搞了一个discord图床网页,因为discord的webhook不需要多余参数就能往它的频道里面上传任意东西,传完也有详细的返回值来提取链接,这样只需要一个本地网页就能完成这件事,连服务器都不用搭建,爽的1b

http://www.wulihub.com.cn/go/Ww8wrQ/index.html你们去玩玩

如果要用自己的server来放图片也行,搞个discord账号,创建个server,然后在指定的channel里面新建一个webhook,然后用它的url取代我html里面写的url即可;另外三个东西反正对于图床来说没有用处,但对于discord聊天来说肯定就有用了,可以不用管

result

这里有BrCC精选萌妹的片子,你们可以拿它试下discord网盘的下载速度,当然如果你们可以上discord的话(别忘了在proxifier里面将aria2c.exe加入到proxy的列表里)

下一步说不定可以做自动解压的脚本,因为其实哪些文件需要打包也是递归上传脚本知道的信息;但好像又没有什么必要,因为至少按照我发布youtube视频的习惯,素材等东西都是提前打包好的,理论上说只需要解压一个文件

本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

a random yukari chan lover