Skip to content

Commit

Permalink
v3.6 143.2022.0616.1
Browse files Browse the repository at this point in the history
fix:修复转存失败问题
fix:优化发包速度,减少被ban几率
  • Loading branch information
Nerver4Ever committed Jun 16, 2022
1 parent ac29741 commit 43c4894
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 58 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/publish
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// ==UserScript==
// @name 115转存助手ui优化版
// @name:zh 115转存助手ui优化版
// @description 2022.04.02 更新,115转存助手ui优化版 v3.5 (143.2022.0402.1)(based on Fake115Upload 1.4.3 @T3rry)
// @description 2022.06.16 更新,115转存助手ui优化版 v3.6 (143.2022.0616.1)(based on Fake115Upload 1.4.3 @T3rry)
// @author Never4Ever
// @namespace Fake115Upload@Never4Ever
// @version 143.2022.0402.1
// @version 143.2022.0616.1
// @match https://115.com/*
// @exclude https://115.com/s/*

Expand All @@ -31,7 +31,7 @@

/*********************************************
请从以下获取最新版,或者遇到问题去此反馈,感谢
https://gist.github.com/Nerver4Ever/953447c9ecd330ffc0861d4cbb839369
https://github.com/Nerver4Ever/SevenSha1UIAdvancedHelper
**********************************************/

/*针对网络问题,只能将不稳定的依赖库放置于此*/
Expand Down Expand Up @@ -729,19 +729,6 @@ https://gist.github.com/Nerver4Ever/953447c9ecd330ffc0861d4cbb839369
})(this);


/*GM_config_zh-CN.js*/

// ==UserScript==
// @name GM_config_zh-CN
// @author Mike Medley & zxf10608
// @version 1.3.7
// @description GM_config_中文版
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// @exclude *
// @license LGPL 3
// ==/UserScript==

/*
优化说明
Expand Down Expand Up @@ -1797,16 +1784,16 @@ function waitForKeyElements(

//版本信息
const TIPS = {
CurrentVersion: "143.2022.0402.1",
LastUpdateDate: "2022.04.02",
VersionTips: "115转存助手ui优化版 v3.5",
UpdateUrl: "https://gist.github.com/Nerver4Ever/953447c9ecd330ffc0861d4cbb839369",
CurrentVersion: "143.2022.0616.1",
LastUpdateDate: "2022.06.16",
VersionTips: "115转存助手ui优化版 v3.6",
UpdateUrl: "https://github.com/Nerver4Ever/SevenSha1UIAdvancedHelper",
Sha1FileInputDetails: "",
};

const WORKSETTINGS = {
WorkingItemsNumber: 4, //同时执行任务数
SleepLittleTime: 500, //短暂休眠,毫秒,暂时在转存中使用
WorkingItemsNumber: 3, //同时执行任务数
SleepLittleTime: 1000, //短暂休眠,毫秒,暂时在转存中使用
SleepMoreTime: 1000, //长时休眠,毫秒,暂时在提取中使用
SleepMuchMoreTime: 8000, //超长休眠,暂时未使用
ANumber: 27, //随机数,暂时未使用
Expand Down Expand Up @@ -1995,40 +1982,40 @@ function waitForKeyElements(
default: true,
},
separator: {
label: '分隔符方案(推荐生僻字;如果分隔符失效,请自行修改):',
label: '分隔符方案(使用生僻字,勿用标点;如果分隔符失效,请自行修改):',
type: 'text',
default: ''
default: ''
},
uploadNumber: {
//section: ['时间参数设置', '注意:参数设置过快,会引起115服务器无响应,为稳定运行参数未启用!'],
//label: '转存同时工作任务数:',
labelPos: 'left',
type: 'hidden',
default: '4',
default: '3',
},
uploadSleepTime: {
//label: '转存间隔时间(毫秒):',
labelPos: 'left',
type: 'hidden',
default: '500',
default: '1000',
},
downloadNumber: {
//label: '提取同时工作任务数:',
labelPos: 'left',
type: 'hidden',
default: '4',
default: '3',
},
downloadSleepTime: {
//label: '提取间隔时间(毫秒):',
labelPos: 'left',
type: 'hidden',
default: '1300',
default: '2000',
},
createFolderSleepTime: {
//label: '目录创建间隔时间(毫秒):',
labelPos: 'left',
type: 'hidden',
default: '300',
default: '600',
},
checkUpdate: {
//section: ['帮助&更新&反馈', '常见错误以及对本脚本进行更新检查与bug反馈'],
Expand Down Expand Up @@ -3312,6 +3299,7 @@ function waitForKeyElements(
}
item.extension = "";
item.formatedName = "";
item.formatedExtension=""
succeed = true;
}
}
Expand All @@ -3324,6 +3312,8 @@ function waitForKeyElements(


function createUploadFile(urlData, postData) {
console.log("createUploadFile");
console.log(urlData)
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: 'POST',
Expand Down Expand Up @@ -3364,7 +3354,6 @@ function waitForKeyElements(

let fCid = `U_1_${targetFolder}`;
let appVersion = "25.2.0";

let urlData = UrlData({
isp: 0,
appid: 0,
Expand All @@ -3373,7 +3362,8 @@ function waitForKeyElements(
sig: GetSig(uploadInfo.user_id, fileItem.sha1, fCid, uploadInfo.userkey)
});


console.log("postData")
console.log("fileItem.formatedName")
let postData = PostData({
preid: fileItem.preid,
fileid: fileItem.sha1,
Expand All @@ -3387,6 +3377,8 @@ function waitForKeyElements(

});

console.log(postData)

const r = createUploadFile(urlData, postData);

const x = r.then(t => {
Expand Down Expand Up @@ -3513,6 +3505,9 @@ function waitForKeyElements(

}

function reverseString(str) {
return str.split("").reverse().join("");
}
//解析inline text sha1 links,并根据配置设置分隔符;返回FileArray
function parseSha1LinksToFileArray(text, nameSeparator, errorCallback) {
let textLines = text.split(/\r?\n/);
Expand All @@ -3523,14 +3518,16 @@ function waitForKeyElements(
if (!fLine) continue;
let r = convertFromSha1Link(fLine);
if (r.state) {
let nameStrings = r.fileItem.name.split(".");
let extension = nameStrings.pop();
r.fileItem.extension = extension;
//let nameStrings = r.fileItem.name.split(".");
//let extension = nameStrings.pop();
//r.fileItem.extension = extension;
//let formatedExtension=reverseString(extension);
//根据配置重新设置文件名
if (nameSeparator) {
//使用emoutils.js库来分割,带有emoji的文件名
let fileName = emojiUtils.toArray(nameStrings.join('.')).map(c => c + nameSeparator).join("").slice(0, -1);
r.fileItem.formatedName = fileName + "." + extension;
//let fileName = emojiUtils.toArray(nameStrings.join('.')).map(c => c + nameSeparator).join("").slice(0, -1);
//r.fileItem.formatedName = fileName + "." + formatedExtension;
r.fileItem.formatedName=emojiUtils.toArray(r.fileItem.name).map(c => c + nameSeparator).join("").slice(0, -1);
} else {
r.fileItem.formatedName = r.fileItem.name;
}
Expand Down Expand Up @@ -3619,6 +3616,7 @@ function waitForKeyElements(
let completed = fileLength - fileArray.length;
let promisArray = new Array();
let uploadInfo = await getUploadInfo();
console.log("uploadInfo")
let msg;
for (let file of fileArray) {
if (getTaskCancelFlag()) {
Expand Down Expand Up @@ -3706,9 +3704,15 @@ function waitForKeyElements(
}

let selectedFiles = files.filter(f => f.formatedName.search(separator) != -1 && f.id).map(f => {
//let lastIndex=f.formatedName.lastIndexOf(".");
//let name=f.formatedName.substring(0,lastIndex);
//let ext=f.formatedName.substring(lastIndex+1);

let fo = {
id: f.id,
name: f.formatedName.split(separator).join("")
//fix
//name: name.split(separator).join("")+"."+reverseString(ext)
name: f.formatedName.split(separator).join("")
};
return fo;
});
Expand Down Expand Up @@ -3761,9 +3765,14 @@ function waitForKeyElements(


let selectedFiles = onlineFiles.filter(f => f.name.search(separator) != -1).map(f => {
//let lastIndex=f.name.lastIndexOf(".");
//let name=f.name.substring(0,lastIndex);
//let ext=f.name.substring(lastIndex+1);

let fo = {
id: f.id,
name: f.name.split(separator).join("")
//name: name.split(separator).join("")+"."+reverseString(ext)
name:f.name.split(separator).join("")
};
return fo;
});
Expand Down
37 changes: 17 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,27 @@
---

# 如果想要支持我,可前往论坛悬赏。或前往爱发电请我喝可乐!

**😀👉爱发电地址:[https://afdian.net/@NeRver4Ever/plan](https://afdian.net/@NeRver4Ever/plan "爱发电赞助地址")**

---




### 注意:

* 提取时遇到不能下载的文件获取到sha1链接(本脚本用40个0替换)是暂时有效的,等文件能下载了就会失效
* 转存时未过滤空目录,或者由于转存失败会导致空目录存在
* 使用时,不要最小化浏览器和切换tab页面,即:需要保持操作页面始终可见
* 适用于chrome或者<del>v23版本的</del>(新版已经支持v24)115,以及导入的文件需要为utf-8编码
* 适用于chrome或者`<del>`v23版本的`</del>`(新版已经支持v24)115,以及导入的文件需要为utf-8编码
* 如果转存失败,请检查链接或者在chrome上进行尝试,115pc端偶尔抽风;或者可能与其他脚本冲突,导致显示元素不完整
* 遇到问题,反馈时请描述你使用的【浏览器】,【浏览器版本】,【什么操作】,【链接】,【错误提示】,要不然无法进行错误复现。

### v3.3起 特别注意:

* [!].为保证【转存】时【自动去除分隔符】正确运行,请勿同时多开进行转存操作(包括同时多页面转存,或者跟其他工具同时转存)
* [!].为保证【转存】时【自动去除分隔符】正确运行,请勿同时多开进行转存操作(包括同时多页面转存,或者跟其他工具同时转存);分割符请使用生僻汉字!
* [!].请使用chrome和115pc最新版,以及Tampermonkey最新版!!!!
* [!].请保证你的网络和浏览器能访问代码中的依赖库!!!

Expand All @@ -31,14 +38,15 @@
* [ ] 优化去除分隔符功能
* [ ] 卡住或者被115ban时,能够保存下信息,以供稍后继续


### 最近更新日志:

* v3.6 143.2022.0616.1
fix:修复转存失败问题
fix:优化发包速度,减少被ban几率
* v3.5 143.2022.0402.1
fix:因115页面调整和接口改变导致无法保存指定目录,以及出现参数不匹配等问题;
fix:优化“超时”提醒,缓解因“操作超时”提示失败,导致使用者心中的不安感
update:因为1,暂时下线添加任务时,默认指定为当前目录功能

* v3.4 143.2022.0202.1
fix:由于含有/:等字符导致文件夹或者文件不能下载到本地的问题——转存和提取遇到“:”“|”等9个字符会自动替换
fix:不再兼容用“#”作为目录分隔符,即新版目录名称中可以含有“#”
Expand All @@ -47,37 +55,31 @@
fix:弹窗时保存的位置可能数据还在获取,再次加长延迟:从200ms变成1000ms
add:新增新设置:【列表模式下:悬浮条显示”获取sha1链接“】与【缩略图模式下:显示”获取sha1链接“】
add:新增获取“脚本与环境信息”,入口在油猴设置处,方便报bug时准确

* v3.3.2 143.2022.0126.1
针对网络问题,只能将不稳定的依赖库置于源代码内

* V3.3.1 143.2022.0122.1
fix:缩略图模式下,如果文件夹设置了封面,”获取sha1链接“按钮会覆盖整个区域。
fix:如果链接里有重复文件,转存后自动去除分隔符,重复的文件只改了一个,另外几个没有去除
fix:缓解“添加任务”弹窗,脚本修改保存位置比115修改快,导致自动修改位置失败的bug

* v3.3 143.2022.0114.1
[*]. 新增懒人操作1:对在线的sha1文本文件(.txt,.json)可进行【尝试转存】,防止浏览器卡住,要求sha1文本文件小于2MB
[*]. 新增懒人操作2:打开【添加链接任务】弹窗时,“保存到”的位置自动定位到当前目录
[*]. 新增懒人操作2:打开【添加链接任务】弹窗时,“保存到”的位置自动定位到当前目录
[*].【转存】时【自动去除分隔符】,已经不需要勾选【强制在保存处新建根目录】,并且速度更快了(即:不自动生成根目录成功,也可以应用自动去除分隔符 )
[*]. 自动创建的根目录,已从时间戳改为人类能看懂的时间
[*]. 自动创建的根目录,已从时间戳改为人类能看懂的时间
[*]. 点击【开始sha1转存】,此前有概率不能关闭【添加链接任务】弹窗,此版本应该改善很多
[*].【转存】与【提取】的操作加了“超时”操作,【提取】另外完善对404文件的处理,对于操作中卡住的情况应该改善很多
[*].【转存】与【提取】的操作加了“超时”操作,【提取】另外完善对404文件的处理,对于操作中卡住的情况应该改善很多
[*]. 用导入的文件名作为自动创建的根目录时,"."变","的行为已经修正
[*]. 提取时如果目录名含有"|",为保证导入的目录结构正确性,会修改"|"为"/"
[*]. 提取时如果目录名含有"|",为保证导入的目录结构正确性,会修改"|"为"/"
[*]. 优化了在创建子目录过程中ui卡住的问题,自测自用没有问题,但不保证
[*]. 其他ui优化,如此前在分享页面出现【链接与sha1转存任务】按钮等做了调整,其他不再一一列举

[*]. 其他ui优化,如此前在分享页面出现【链接与sha1转存任务】按钮等做了调整,其他不再一一列举
* v3.2.1 143.2021.1220.1
v3.2.1替换了cdn.jsdelivr.net的源;否则无法使用正常

* v3.2 143.2021.1211.1
1.新增“获取选中项的sha1”:方便手机上或者多选提取,文件和目录可一起选择,列表模式与缩略图模式下皆可(感谢@qbz95老哥的打赏支持!)
2.优化小文件提取:新版本对于小文件(128KB以下)不进行向服务器发包,如果小文件较多,提取速度会快很多
3.优化出错文件提取:某些文件115服务器无法下载或者返回信息出错,新版本已经优化,提取无限卡住应该已经改善或者解决
4.已经隐藏uiddiv:有老哥提出115截图可能会含有隐藏的uid信息,新版本已经隐藏,可再测试是否有效(感谢@ワーン シアーン老哥测试,以及@Yves Lelouch老哥的解决方案)
5.提示ui的改进

* v3.1 143.2021.1015.1

1. 文件中含有"."已经能正确改名(上一版本会变成",",注意不要用”."作为分隔符)
Expand All @@ -87,7 +89,6 @@

* 143.2021.0911.1
09.11修复waitForKeyElements.js的依赖问题 (由于greasyfork上的WaitForKeyElements.js的库被删,导致无法实现正常功能)

* 143.2021.0907.1
1.新增加设置界面,可设置脚本的显示任务与默认参数
2.“sha1转存时,强制在保存处新建根目录” 的默认值,可在设置界面配置
Expand All @@ -97,13 +98,10 @@
6.在5中的,添加分隔符,去除分割符,分隔符方案都可以在设置中配置
7.由于115接口的进一步抓紧,时间参数不可配置,并增加了更多提示信息
8.转存过程中以及失败复制到剪贴板的文件名,修改为原来文件名,方便排查

* 143.2021.0822.3
修复由于115上传接口更改导致不显示上传失败的原因

* 143.2021.0822.2
修复转存时无响应:因为自身带有emoji的文件名,再强制分隔时出错

* 143.2021.0822.1
修复ui错位,增加提示等ui优化;
增加:
Expand Down Expand Up @@ -142,4 +140,3 @@
* 1.4.3.20210209
优化代码,增加目录
* ......

0 comments on commit 43c4894

Please sign in to comment.