49911ef5490204fa.gif

神农烟

感谢分享

056b74e1

B218F  2023-06-05 21:44
              

65d353ee155e1.jpg



B219F  2023-06-05 22:06
(只是个lsp)
感谢大佬

1ca2d945


none.gif

pinkfloyd

mark

none.gif

1ca2d945

B222F  2023-06-05 22:11
(虽然我是乱伦母子但我说他是纯爱就是纯爱!)
一段时间没用过秒传了 以前一直用都可以 现在以前的秒传脚本是不行了吗

704962.jpg

Djeeta

B223F  2023-06-05 22:16
(game.granbluefantasy.jp)
感谢大佬

1566131.jpg

我是一台烤面包机

B224F  2023-06-05 22:22
(你是一个一个一个一个一个烤面包机哼哼哼啊啊啊啊啊啊啊啊啊啊啊)
感谢分享

765860.jpg



好文明

tequila


5.gif

leopase

mark一下,感谢

375473.jpg

衣刀丶

支持大佬

54819.jpg

緑川聖奈

B229F  2023-06-06 07:20
(新音)
大佬能用

none.gif

asskun

B230F  2023-06-06 08:46
(00123)
下载完是0.1.3

1387764.jpg

kk?

mark,谢谢daloa

1xyjkx.png

lunaticluna

B232F  2023-06-06 11:23
(rabi rabi rabi)
hero!

none.gif

赫萝

????的

none.gif

theworld

B234F  2023-06-06 14:38
(如果我是JD,你会爱我吗)
标记一下

拉斯维加斯01


361442.png

imburst

感谢大佬

8827b289


none.gif

53576dd3

mark一下

none.gif

epcsg

mark一下

123


1640486.png

千叶澄子

mark一下

none.gif

热心市民

B242F  2023-06-07 02:41
([img]https://signavatar.com/59587_v.gif[/img])
好欸

kksk123


none.gif

不知怎么做

gxfx

1544698.jpg

遠坂凛

B245F  2023-06-07 09:52
(南+脚本 https://www.south-plus.net/read.php?tid-2086932.html)
如果大佬有空的话,请考虑加上针对md5大小写验证的解决方案,喵传只差了这项就可以代替 3.0.6 了
目前只有重试随机组合这方法,例子:   data.txt (4 K) 下载次数:4 64个组合内有15个是404的 (包括全大写及全小写)

以下是3.0.6脚本有关部分的代码,大小写转换是二进制位掩码 (binary bitmask) 代表,方便去重及生成
(注: 是typescript,而且这种架构不是我的编程风格.... async, await 是更方便,只是没改mengzonefire大佬脚本的原本架构)
复制代码
  1. const defaultRetryDelay = 200;
  2. const retryDelayIncrement = 100;
  3. const randomCaseRetryCount = 5;
  4. function generateRandomInt(max : number) {
  5.   return Math.floor(Math.random() * (max + 1));
  6. }
  7. function transformCase(str : string, mask : number) {
  8.   let next = mask;
  9.   return str.toLowerCase().split('').map(c => {
  10.     if (c >= 'a' && c <= 'z') {
  11.       if (next % 2 === 1) {
  12.         c = c.toUpperCase();
  13.       }
  14.       next = next >> 1;
  15.     }
  16.     return c;
  17.   })
  18.   .join('');
  19. }
  20. export function rapiduploadCreateFile(
  21.   file: FileInfo,
  22.   onResponsed: (data: any) => void,
  23.   onFailed: (statusCode: number) => void,
  24. ): void {
  25.   let charCount = file.md5.toLowerCase().split('').filter(c => c >= 'a' && c <= 'z').length;
  26.   let maxCombination = 1 << charCount;
  27.   let attempts = [
  28.     0, // 小写成功率比较高
  29.     maxCombination - 1, // 大写
  30.   ];
  31.   let gen = randomCaseRetryCount;
  32.   while (attempts.length < maxCombination && gen > 0) {
  33.     let n : number;
  34.     do {
  35.       n = generateRandomInt(maxCombination - 1);
  36.     } while (attempts.includes(n));
  37.     attempts.push(n);
  38.     gen--;
  39.   }
  40.   tryRapiduploadCreateFile.call(this, file, onResponsed, onFailed, attempts, 0, defaultRetryDelay);
  41. }
  42. // 此接口测试结果如下: 错误md5->返回"errno": 31190, 正确md5+错误size->返回"errno": 2
  43. // 此外, 即使md5和size均正确, 连续请求时依旧有小概率返回"errno": 2, 故建议加入retry策略
  44. function tryRapiduploadCreateFile(
  45.   file: FileInfo,
  46.   onResponsed: (data: any) => void,
  47.   onFailed: (statusCode: number) => void,
  48.   attempts: number[],
  49.   attemptIndex: number,
  50.   retryDelay: number = 0,
  51. ): void {
  52.   const contentMd5 = transformCase(file.md5, attempts[attemptIndex]);
  53.   const sliceMd5 = file.md5s.toLowerCase();
  54.   ajax(
  55.     {
  56.       url: `${rapidupload_url}${this.bdstoken ? "?bdstoken=" + this.bdstoken : ""}`, // bdstoken参数不能放在data里, 否则无效
  57.       method: "POST",
  58.       responseType: "json",
  59.       data: convertData({
  60.         path: this.savePath + file.path.replace(illegalPathPattern, "_"),
  61.         "content-length": file.size,
  62.         "content-md5": contentMd5,
  63.         "slice-md5": sliceMd5,
  64.         rtype: 0, // rtype=3覆盖文件, rtype=0则返回报错, 不覆盖文件, 默认为rtype=1 (自动重命名, 1和2是两种不同的重命名策略)
  65.       }),
  66.       headers: {
  67.         "User-Agent": UA,
  68.       }
  69.     },
  70.     (data) => {
  71.       // console.log(data.response); // debug
  72.       if (31039 === data.response.errno && 31039 != file.errno) {
  73.         file.errno = 31039;
  74.         file.path = suffixChange(file.path);
  75.         tryRapiduploadCreateFile.call(this, file, onResponsed, onFailed, attempts, attemptIndex);
  76.       } else if (404 === data.response.errno && attempts.length > attemptIndex + 1) {
  77.         //console.log(`转存接口错误, 重试${retry + 1}次: ${file.path}`); // debug
  78.         setTimeout(() => {
  79.           tryRapiduploadCreateFile.call(this, file, onResponsed, onFailed, attempts, attemptIndex + 1, retryDelay + retryDelayIncrement);
  80.         }, retryDelay);
  81.       } else if (0 !== data.response.errno) {
  82.         onFailed(data.response.errno);
  83.       } else onResponsed(data);
  84.     },
  85.     onFailed
  86.   );
  87. }

1596752.png

極彩花夢

B246F  2023-06-07 10:21
(字幕とか儲からないし、翻訳とか適当でもいいよ)

回 245楼(遠坂凛) 的帖子

感谢您提出的意见。
有参考过 mengzonefire 制作的脚本的网络请求部分,一直知道有随机大小写。
但是因为个人测试的、他人反馈的,都没有遇到需要随机大小写的,最多就是大写不行换小写,所以也一直未增加随机大小写的尝试。
确实有这个问题的话,后面更新会加入这部分。
——当然,其实更主要的原因是我们本职是字幕组,还在全力做5月的合集,来不及完善。

e132acfbbd8100f1.png

akaziki

B247F  2023-06-07 11:20
(日々私たちが過ごした日常わ、実は奇跡の連続かもしれない)
感谢大佬