diff --git a/package.json b/package.json
index 5aadfb0c7..e9e6dc116 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "pt-plugin-plus",
- "version": "1.4.8",
+ "version": "1.4.9",
"author": {
"name": "ronggang",
"url": "https://github.com/ronggang"
diff --git a/public/manifest.json b/public/manifest.json
index de0d17295..35e9e3169 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_manifest_appName__",
"short_name": "__MSG_manifest_shortName__",
- "version": "1.4.8",
+ "version": "1.4.9",
"description": "__MSG_manifest_appDescription__",
"manifest_version": 2,
"default_locale": "zh_CN",
diff --git a/resource/publicSites/imdb.com/config.json b/resource/publicSites/imdb.com/config.json
index 5c93f49a9..af7baad21 100644
--- a/resource/publicSites/imdb.com/config.json
+++ b/resource/publicSites/imdb.com/config.json
@@ -3,7 +3,7 @@
"ver": "0.0.1",
"plugins": [{
"name": "电影详情页",
- "pages": ["\/title\/tt\\d+\/"],
+ "pages": ["^\/title\/tt\\d+\/?$"],
"scripts": ["subject.js"]
}, {
"name": "Top",
diff --git a/resource/schemas/Common/torrents.js b/resource/schemas/Common/torrents.js
index c73d05956..d0e6154c4 100644
--- a/resource/schemas/Common/torrents.js
+++ b/resource/schemas/Common/torrents.js
@@ -25,13 +25,14 @@
// "获取下载链接失败,未能正确定位到链接";
return this.t("getDownloadURLsFailed");
}
-
- let urls = $.map(links, item => {
- let url = $(item).attr("href");
- return this.getFullURL(url);
- });
-
- return urls;
+ if (typeof(links[0])!="string"){
+ let urls = $.map(links, item => {
+ let url = $(item).attr("href");
+ return this.getFullURL(url);
+ });
+ return urls;
+ }
+ return links
}
/**
diff --git a/resource/schemas/NexusPHP/getSearchResult.js b/resource/schemas/NexusPHP/getSearchResult.js
index b3d482295..a633538f6 100644
--- a/resource/schemas/NexusPHP/getSearchResult.js
+++ b/resource/schemas/NexusPHP/getSearchResult.js
@@ -277,9 +277,44 @@
.html(cell.html().replace("
", " "))
.text();
}
+ if (options.site.host === "pt.sjtu.edu.cn") {
+ if (time.match(/\d+[分时天月年]/g)) {
+ time = Date.now() - this._parseTime(time)
+ time = new Date(time).toLocaleString("zh-CN", {hour12: false}).replace(/\//g,'-')
+ }
+ }
return time || "";
}
+ _parseTime (timeString) {
+ const timeMatch = timeString.match(/\d+[分时天月年]/g)
+ let length = 0
+ timeMatch.forEach(time => {
+ const timeMatch = time.match(/(\d+)([分时天月年])/)
+ const number = parseInt(timeMatch[1])
+ const unit = timeMatch[2]
+ switch (true) {
+ case unit === '分':
+ length += number
+ break
+ case unit === '时':
+ length += number * 60
+ break
+ case unit === '天':
+ length += number * 60 * 24
+ break
+ case unit === '月':
+ length += number * 60 * 24 * 30
+ break
+ case unit === '年':
+ length += number * 60 * 24 * 365
+ break
+ default:
+ }
+ })
+ return length * 60 * 1000
+ }
+
/**
* 获取标题
*/
diff --git a/resource/schemas/UNIT3D/config.json b/resource/schemas/UNIT3D/config.json
index e7f5546ea..f3956afe1 100644
--- a/resource/schemas/UNIT3D/config.json
+++ b/resource/schemas/UNIT3D/config.json
@@ -11,7 +11,7 @@
"scripts": ["/schemas/NexusPHP/common.js", "torrents.js"]
}],
"searchEntryConfig": {
- "page": "/filterTorrents",
+ "page": "/torrents/filter",
"queryString": "search=$key$",
"area": [{
"name": "IMDB",
@@ -21,6 +21,24 @@
"tt", ""
]
}],
+ "fieldSelector": {
+ "progress": {
+ "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle, button.btn.btn-info.btn-circle", ""],
+ "switchFilters": [
+ ["100"],
+ ["0"],
+ ["null"]
+ ]
+ },
+ "status": {
+ "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle", "button.btn.btn-info.btn-circle"],
+ "switchFilters": [
+ ["2"],
+ ["1"],
+ ["3"]
+ ]
+ }
+ },
"resultType": "html",
"parseScriptFile": "/schemas/UNIT3D/getSearchResult.js",
"resultSelector": "div.table-responsive > table:first"
@@ -40,15 +58,13 @@
"userBaseInfo": {
"page": "/",
"fields": {
- "id": {
- "selector": ["a[href*='mail/inbox']:first"],
- "attribute": "href",
- "filters": ["query ? query.getQueryString('id'):''"]
- },
"name": {
- "selector": ["a[href*='mail/inbox']:first"],
+ "selector": ["a[href*='settings']:first"],
"attribute": "href",
- "filters": ["query ? query.getQueryString('username'):''"]
+ "switchFilters": [
+ ["query.match(/users\\/(.+)\\/settings/)", "(query && query.length>=2)?(query[1]):''"],
+ ["query ? query.getQueryString('id'):''"]
+ ]
},
"uploaded": {
"selector": ["div.ratio-bar i.fa-arrow-up"],
@@ -69,7 +85,7 @@
}
},
"userExtendInfo": {
- "page": "/$user.name$.$user.id$",
+ "page": "/users/$user.name$",
"fields": {
"seedingSize": {
"selector": ["table.table-condensed.table-striped.table-bordered:first td:contains('Seeding Size') + td", "table.table-condensed.table-striped.table-bordered:first td:contains('做种体积') + td", "table.table-condensed.table-striped.table-bordered:first td:contains('做種體積') + td"],
@@ -79,7 +95,7 @@
"selector": "div.content span.badge-user"
},
"messageCount": {
- "selector": ["ul.left-navbar a[href*='/mail/inbox'] .point"],
+ "selector": [".point"],
"filters": ["query.length?'11':'0'"]
},
"joinTime": {
diff --git a/resource/schemas/UNIT3D/getSearchResult.js b/resource/schemas/UNIT3D/getSearchResult.js
index 05a583c83..2968bcd99 100644
--- a/resource/schemas/UNIT3D/getSearchResult.js
+++ b/resource/schemas/UNIT3D/getSearchResult.js
@@ -20,6 +20,7 @@
return [];
}
let site = options.site;
+ site.searchEntryConfig = options.entry
let selector =
options.resultSelector || "div.table-responsive > table:first";
let table = options.page.find(selector);
@@ -194,7 +195,7 @@
.eq(fieldIndex.time)
.find("span[title]")
.attr("title") ||
- cells.eq(fieldIndex.time).text() ||
+ cells.eq(fieldIndex.time).text().replace('秒前', ' seconds ago').replace('秒前', ' seconds ago').replace('分钟前', ' minutes ago').replace('分鐘前', ' minutes ago').replace('天前', ' day ago').replace('小時前', ' hours ago').replace('小时前', ' hours ago')||
"",
author:
fieldIndex.author == -1
diff --git a/resource/sites/aidoru-online.me/config.json b/resource/sites/aidoru-online.me/config.json
index b9eb04fa3..7bad8dc2b 100644
--- a/resource/sites/aidoru-online.me/config.json
+++ b/resource/sites/aidoru-online.me/config.json
@@ -2,6 +2,7 @@
"name": "Aidoru!Online",
"timezoneOffset": "+0000",
"description": "AO",
+ "icon": "https://aidoru-online.me/themes/default/images/favicon.ico",
"url": "https://aidoru-online.me/",
"tags": ["偶像"],
"schema": "Common",
diff --git a/resource/sites/anthelion.me/config.json b/resource/sites/anthelion.me/config.json
new file mode 100644
index 000000000..ab7edbefc
--- /dev/null
+++ b/resource/sites/anthelion.me/config.json
@@ -0,0 +1,34 @@
+{
+ "name": "Anthelion",
+ "timezoneOffset": "+0000",
+ "description": "Movies",
+ "url": "https://anthelion.me//",
+ "icon": "https://anthelion.me/favicon.ico",
+ "tags": ["电影"],
+ "schema": "GazelleJSONAPI",
+ "host": "anthelion.me",
+ "collaborator": "enigamz",
+ "searchEntryConfig": {
+ "skipIMDbId": true,
+ "parseScriptFile": "getSearchResult.js"
+ },
+ "searchEntry": [{
+ "name": "all",
+ "enabled": true
+ }],
+ "selectors": {
+ "userSeedingTorrents": {
+ "page": "/torrents.php?type=seeding&userid=$user.id$",
+ "fields": {
+ "seedingSize": {
+ "selector": ["tr.torrent_row > td.nobr"],
+ "filters": ["jQuery.map(query, (item)=>{return $(item).text();})", "_self.getTotalSize(query)"]
+ },
+ "bonus": {
+ "selector": ["a[href*='store.php']"],
+ "filters": ["query.text().replace(/,/g,'').match(/.+?([\\d.]+)/)", "(query && query.length>=2)?query[1]:0"]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/resource/sites/anthelion.me/getSearchResult.js b/resource/sites/anthelion.me/getSearchResult.js
new file mode 100644
index 000000000..026004a0d
--- /dev/null
+++ b/resource/sites/anthelion.me/getSearchResult.js
@@ -0,0 +1,159 @@
+(function(options) {
+ class Parser {
+ constructor() {
+ this.haveData = false;
+ this.categories = {};
+ if (/auth_form/.test(options.responseText)) {
+ options.status = ESearchResultParseStatus.needLogin;
+ return;
+ }
+ options.isLogged = true;
+ this.haveData = true;
+ this.authkey = "";
+ this.passkey = "";
+ }
+
+ start() {
+ this.getAuthKey()
+ .then(() => {
+ options.resolve(this.getResult());
+ })
+ .catch(() => {
+ options.reject({
+ success: false,
+ msg: options.searcher.getErrorMessage(
+ options.site,
+ ESearchResultParseStatus.parseError,
+ options.errorMsg
+ ),
+ data: {
+ site: options.site,
+ isLogged: options.isLogged
+ }
+ });
+ });
+ }
+
+ /**
+ * 获取搜索结果
+ */
+
+ getResult() {
+ if (!this.haveData) {
+ return [];
+ }
+ let site = options.site;
+ let groups = options.page.response.results;
+ if (groups.length == 0) {
+ options.status = ESearchResultParseStatus.noTorrents;
+ return [];
+ }
+ let results = [];
+ let authkey = this.authkey;
+ let passkey = this.passkey;
+ console.log("groups.length", groups.length);
+ try {
+ groups.forEach(group => {
+ if (group.hasOwnProperty("torrents")) {
+ let torrents = group.torrents;
+ torrents.forEach(torrent => {
+ let data = {
+ title:
+ group.groupName +
+ " [" +
+ group.groupYear +
+ "]",
+ subTitle:
+ torrent.codec +
+ " / " +
+ torrent.container +
+ " / " +
+ torrent.media +
+ " / " +
+ torrent.resolution +
+ " / " +
+ torrent.audio +
+ (torrent.hasLog ? ` / Log(${torrent.logScore})` : "") +
+ (torrent.hasCue ? " / Cue" : "") +
+ (torrent.remastered ? ` / ${torrent.remasterYear}` : "") +
+ (torrent.scene ? " / Scene" : "") +
+ (torrent.isFreeleech ||
+ torrent.isNeutralLeech ||
+ torrent.isPersonalFreeleech
+ ? " / Freeleech"
+ : ""),
+ link: `${site.url}torrents.php?id=${group.groupId}&torrentid=${torrent.torrentId}`,
+ url: `${site.url}torrents.php?action=download&id=${torrent.torrentId}&authkey=${authkey}&torrent_pass=${passkey}`,
+ size: parseFloat(torrent.size),
+ time: torrent.time,
+ seeders: torrent.seeders,
+ leechers: torrent.leechers,
+ completed: torrent.snatches,
+ site: site,
+ entryName: options.entry.name,
+ category: group.releaseType
+ };
+ results.push(data);
+ });
+ } else {
+ let data = {
+ title: group.groupName,
+ link: `${site.url}torrents.php?id=${group.groupId}&torrentid=${group.torrentId}`,
+ url: `${site.url}torrents.php?action=download&id=${group.torrentId}&authkey=${authkey}&torrent_pass=${passkey}`,
+ size: parseFloat(group.size),
+ time: group.groupTime,
+ author: "",
+ seeders: group.seeders,
+ leechers: group.leechers,
+ completed: group.snatches,
+ comments: 0,
+ site: site,
+ tags: group.tags,
+ entryName: options.entry.name,
+ category: group.category
+ };
+ results.push(data);
+ }
+ });
+ console.log("results.length", results.length);
+ if (results.length == 0) {
+ options.status = ESearchResultParseStatus.noTorrents;
+ }
+ } catch (error) {
+ console.log(error);
+ options.status = ESearchResultParseStatus.parseError;
+ options.errorMsg = error.stack;
+ }
+ return results;
+ }
+
+ /**
+ * 获取 AuthKey ,用于组合完整的下载链接
+ */
+ getAuthKey() {
+ const url = (options.site.activeURL + "/ajax.php?action=index")
+ .replace("://", "****")
+ .replace(/\/\//g, "/")
+ .replace("****", "://");
+
+ return new Promise((resolve, reject) => {
+ $.get(url)
+ .done(result => {
+ if (result && result.status === "success" && result.response) {
+ this.authkey = result.response.authkey;
+ this.passkey = result.response.passkey;
+ resolve();
+ } else {
+ reject();
+ }
+ })
+ .fail(() => {
+ reject();
+ });
+ });
+ }
+ }
+
+ let parser = new Parser(options);
+ parser.start();
+})(options);
diff --git a/resource/sites/asiancinema.me/config.json b/resource/sites/asiancinema.me/config.json
index b4e1bffbd..c173a71f1 100644
--- a/resource/sites/asiancinema.me/config.json
+++ b/resource/sites/asiancinema.me/config.json
@@ -7,37 +7,55 @@
"tags": ["综合"],
"schema": "UNIT3D",
"host": "asiancinema.me",
- "searchEntryConfig": {
- "page": "/filterTorrents",
- "queryString": "search=$key$",
- "area": [{
- "name": "IMDB",
- "keyAutoMatch": "^(tt\\d+)$",
- "queryString": "imdb=$key$",
- "replaceKey": [
- "tt", ""
- ]
- }],
- "fieldSelector": {
- "progress": {
- "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle, button.btn.btn-info.btn-circle", ""],
- "switchFilters": [
- ["100"],
- ["0"],
- ["null"]
- ]
- },
- "status": {
- "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle", "button.btn.btn-info.btn-circle"],
- "switchFilters": [
- ["2"],
- ["1"],
- ["3"]
- ]
+ "selectors": {
+ "userBaseInfo": {
+ "page": "/",
+ "fields": {
+ "name": {
+ "selector": ["a[href*='settings']:first"],
+ "attribute": "href",
+ "switchFilters": [
+ ["query.match(/users\\/(.+)\\/settings/)", "(query && query.length>=2)?(query[1]):''"],
+ ["query ? query.getQueryString('id'):''"]
+ ]
+ },
+ "uploaded": {
+ "selector": ["span[title='Upload']"],
+ "filters": ["query.text().trim().replace(/,/g,'')", "(query && query.length>=1)?query.sizeToNumber():0"]
+ },
+ "downloaded": {
+ "selector": ["span[title='Download']"],
+ "filters": ["query.text().trim().replace(/,/g,'')", "(query && query.length>=1)?query.sizeToNumber():0"]
+ },
+ "bonus": {
+ "selector": ["a[title='My Bonus Points']"],
+ "filters": ["query.text().trim().replace(/ /g,'')"]
+ },
+ "seeding": {
+ "selector": ["span[title='Seeding']"],
+ "filters": ["query.text().trim().replace(/,|\\n/g,'')"]
+ }
}
},
- "resultType": "html",
- "parseScriptFile": "/schemas/UNIT3D/getSearchResult.js",
- "resultSelector": "div.table-responsive > table:first"
+ "userExtendInfo": {
+ "page": "/users/$user.name$",
+ "fields": {
+ "seedingSize": {
+ "selector": ["table.table-condensed.table-striped.table-bordered:first td:contains('Seeding Size') + td"],
+ "filters": ["query.text().trim().sizeToNumber()"]
+ },
+ "levelName": {
+ "selector": "div.content span.badge-user"
+ },
+ "messageCount": {
+ "selector": [".point"],
+ "filters": ["query.length?'11':'0'"]
+ },
+ "joinTime": {
+ "selector": ["div.content h4:contains('Registration date')", "div.content h4:contains('注册日期')", "div.content h4:contains('註冊日期')"],
+ "filters": ["query.text().replace(/(Registration date|注册日期|註冊日期)/g, '').trim()", "dateTime(query).isValid()?dateTime(query).valueOf():query"]
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/resource/sites/avgv.cc/config.json b/resource/sites/avgv.cc/config.json
index ad4631bfe..463f91a85 100644
--- a/resource/sites/avgv.cc/config.json
+++ b/resource/sites/avgv.cc/config.json
@@ -6,5 +6,22 @@
"description": "新加坡华人PT站,很有特色。",
"tags": ["成人", "AV", "GAY", "LES"],
"host": "avgv.cc",
- "collaborator": "xiazhou8"
+ "collaborator": "xiazhou8",
+ "searchEntryConfig": {
+ "fieldSelector": {
+ "progress": {
+ "selector": ["div.probar_b1, div.probar_b2, div.probar_b3"],
+ "filters": ["query.attr('style')||''", "query.match(/width:([ \\d.]+)%/)", "(query && query.length>=2)?query[1]:null"]
+
+ },
+ "status": {
+ "selector": ["img[src='pic/ZZ.png']","div.probar_b1", "img[src='pic/WWC.png']"],
+ "switchFilters": [
+ ["2"],
+ ["1"],
+ ["255"]
+ ]
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/resource/sites/beyond-hd.me/config.json b/resource/sites/beyond-hd.me/config.json
index 5ebef3f9d..3f6410814 100644
--- a/resource/sites/beyond-hd.me/config.json
+++ b/resource/sites/beyond-hd.me/config.json
@@ -39,10 +39,16 @@
}],
"torrentTagSelectors": [{
"name": "Free",
- "selector": "i.fa-star text-gold"
+ "selector": ".fas.fa-star[title*='100%']"
}, {
- "name": "2xUp",
- "selector": "i.fa-globe"
+ "name": "25%",
+ "selector": ".fas.fa-star[title*='25%']"
+ }, {
+ "name": "50%",
+ "selector": ".fas.fa-star[title*='50%']"
+ }, {
+ "name": "75%",
+ "selector": ".fas.fa-star[title*='75%']"
}],
"selectors": {
"userBaseInfo": {
@@ -109,6 +115,10 @@
"downloadURL": {
"selector": ["a.bhd-fl-button[href*='/download/']"],
"filters": ["query.attr('href')"]
+ },
+ "sayThanksButton": {
+ "selector": ["a.bhd-fl-button[title*='Thank']"],
+ "filters": ["query"]
}
}
}
diff --git a/resource/sites/blutopia.xyz/config.json b/resource/sites/blutopia.xyz/config.json
index afbb54464..720e33436 100644
--- a/resource/sites/blutopia.xyz/config.json
+++ b/resource/sites/blutopia.xyz/config.json
@@ -35,6 +35,7 @@
}],
"selectors": {
"userBaseInfo": {
+ "merge": true,
"page": "/",
"fields": {
"id": {},
@@ -64,22 +65,6 @@
}
}
},
- "userExtendInfo": {
- "page": "/users/$user.name$",
- "fields": {
- "seedingSize": {
- "selector": ["table.table-condensed.table-striped.table-bordered:first td:contains('Seeding Size') + td"],
- "filters": ["query.text().trim().sizeToNumber()"]
- },
- "levelName": {
- "selector": "div.content span.badge-user"
- },
- "joinTime": {
- "selector": "div.content h4:contains('Registration date')",
- "filters": ["query.text().trim().replace('Registration date ', '')", "dateTime(query).isValid()?dateTime(query).valueOf():query"]
- }
- }
- },
"common": {
"fields": {
"size": {
diff --git a/resource/sites/chdbits.co/config.json b/resource/sites/chdbits.co/config.json
index b24ae2422..b44a50d02 100644
--- a/resource/sites/chdbits.co/config.json
+++ b/resource/sites/chdbits.co/config.json
@@ -98,6 +98,25 @@
"enabled": false
}
],
+ "torrentTagSelectors": [{
+ "name": "Free",
+ "selector": "img.pro_free"
+ }, {
+ "name": "2xFree",
+ "selector": "img.pro_free2up"
+ }, {
+ "name": "2xUp",
+ "selector": "img.pro_2up"
+ }, {
+ "name": "2x50%",
+ "selector": "img.pro_50pctdown2up"
+ }, {
+ "name": "30%",
+ "selector": "img.pro_30pctdown"
+ }, {
+ "name": "50%",
+ "selector": "img.pro_50pctdown"
+ }],
"searchEntryConfig": {
"merge": true,
"fieldSelector": {
diff --git a/resource/sites/cinemageddon.net/config.json b/resource/sites/cinemageddon.net/config.json
index 9f6058119..d4363cb38 100644
--- a/resource/sites/cinemageddon.net/config.json
+++ b/resource/sites/cinemageddon.net/config.json
@@ -76,14 +76,6 @@
"filters": ["jQuery.map(query.find('td:eq(2)'), (item)=>{return $(item).text();})", "_self.getTotalSize(query)"]
}
}
- },
- "/details.php": {
- "fields": {
- "size": {
- "selector": ["td.rowhead:contains('Size') + td"],
- "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>1)?(query[1]).sizeToNumber():0"]
- }
- }
}
}
}
\ No newline at end of file
diff --git a/resource/sites/cinemageddon.net/details.js b/resource/sites/cinemageddon.net/details.js
index b6c9d1030..1cce162e4 100644
--- a/resource/sites/cinemageddon.net/details.js
+++ b/resource/sites/cinemageddon.net/details.js
@@ -10,6 +10,7 @@
* 初始化按钮列表
*/
initButtons() {
+ this.showTorrentSize();
this.initDetailButtons();
}
@@ -17,7 +18,7 @@
* 获取下载链接
*/
getDownloadURL() {
- let query = $("a[href*='download.php?id=']");
+ let query = $("a.index[href*='download.php?id=']");
let url = "";
if (query.length > 0) {
url = query.attr("href");
@@ -30,12 +31,26 @@
return `${location.origin}/${url}`;
}
+ showTorrentSize() {
+ let query = $("td.rowhead:contains('Size') + td");
+ let size = "";
+ if (query.length > 0) {
+ size = query.text().match(/^[^\(]+/);
+ // attachment
+ PTService.addButton({
+ title: "当前种子大小",
+ icon: "attachment",
+ label: size
+ });
+ }
+ }
+
/**
* 获取当前种子标题
*/
getTitle() {
return $(".frames tr:first td.colhead:first")
- .text()
+ .text()
.trim();
}
}
diff --git a/resource/sites/concertos.live/config.json b/resource/sites/concertos.live/config.json
new file mode 100644
index 000000000..35ce31f18
--- /dev/null
+++ b/resource/sites/concertos.live/config.json
@@ -0,0 +1,146 @@
+{
+ "name": "Concertos",
+ "timezoneOffset": "+0000",
+ "description": "Concertos",
+ "url": "https://concertos.live/",
+ "tags": ["MV"],
+ "schema": "Common",
+ "plugins": [{
+ "name": "种子详情页面",
+ "pages": ["/torrent/"],
+ "scripts": ["/schemas/NexusPHP/common.js", "/schemas/Common/details.js"]
+ }, {
+ "name": "种子列表",
+ "pages": ["/torrents"],
+ "scripts": ["/schemas/NexusPHP/common.js", "/schemas/Common/torrents.js"]
+ }],
+ "host": "concertos.live",
+ "searchEntryConfig": {
+ "page": "/torrents?title=$key$&order_by=created_at&direction=desc",
+ "resultType": "html",
+ "resultSelector": "table.table.table--bordered-big.torrents",
+ "fieldIndex": {
+ "category": 0,
+ "title": 1,
+ "link": 1,
+ "url": 1,
+ "time": 2,
+ "size": 3,
+ "author": 1,
+ "seeders": 4,
+ "leechers": 5,
+ "completed": 6
+ },
+ "fieldSelector": {
+ "title": {
+ "selector": ["a.torrents__title"],
+ "filters": ["query.text()"]
+ },
+ "link": {
+ "selector": ["a.torrents__title"],
+ "filters": ["query.attr('href')"]
+ },
+ "url": {
+ "selector": ["a.torrents__title"],
+ "filters": ["query.attr('href')", "query + '/download'"]
+ },
+ "time": {
+ "selector": [""],
+ "filters": [""]
+ }
+ }
+ },
+ "searchEntry": [{
+ "name": "全部",
+ "enabled": true
+ }],
+ "torrentTagSelectors": [{
+ "name": "Free",
+ "selector": "img[src='images/freeleech.png']"
+ }],
+ "selectors": {
+ "userBaseInfo": {
+ "page": "/",
+ "fields": {
+ "name": {
+ "selector": ["div.user-info"],
+ "filters": ["$(query[0].firstChild).text().trim()"]
+ },
+ "id": {
+ "selector": [".nav > a.nav__link[href*='/user']:first"],
+ "filters": ["query.attr('href').replace('https://concertos.live/user/', '')"]
+ },
+ "isLogged": {
+ "selector": ["div.user-info"],
+ "filters": ["query.length>0"]
+ },
+ "messageCount": {
+ "selector": ["div.info-bar"],
+ "filters": ["query.text().match(/(\\d+)/)", "(query && query.length>=2)?parseInt(query[1]):0"]
+ },
+ "uploaded": {
+ "selector": [".user-info__item > .fa-upload"],
+ "filters": ["query.parent().text().trim().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "downloaded": {
+ "selector": [".user-info__item > .fa-download"],
+ "filters": ["query.parent().text().trim().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "ratio": {
+ "selector": [".user-info__item > .fa-percent"],
+ "filters": ["query.parent().text().trim().replace('Ratio: ', '')"]
+ },
+ "levelName": {
+ "selector": [".user-info__item > .fa-user"],
+ "filters": ["query.parent().text().trim().split(' ')[0]"]
+ }
+ }
+ },
+ "userExtendInfo": {
+ "page": "/user/$user.id$",
+ "fields": {
+ "joinTime": {
+ "selector": ["div.profile-block__age"],
+ "filters": ["dateTime(query.text().replace('Member since ', '')).valueOf()"]
+ },
+ "bonus": {
+ "selector": ["td:contains('BONs') + td"],
+ "filters": ["query.text().trim().replace(' ', '')"]
+
+ },
+ "seeding": {
+ "selector": ["td:contains('Total Seeding') + td"],
+ "filters": ["query.text().match(/(\\d+)/)", "(query && query.length>=2)?parseInt(query[1]):0"]
+ },
+ "seedingSize": {
+ "value": -1
+ }
+ }
+ },
+ "common": {
+ "page": "/torrent/",
+ "fields": {
+ "downloadURL": {
+ "selector": ["a[href*='/download']"],
+ "filters": ["query.attr('href')"]
+ },
+ "size": {
+ "selector": ["td.torrent__meta-title:contains('Size') + td"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>1)?(query[1]).sizeToNumber():0"]
+ },
+ "sayThanksButton": {
+ "selector": ["a[href*='/thank']"],
+ "filters": ["query"]
+ },
+ "downloadURLs": {
+ "selector": ["a.torrents__title"],
+ "filters": ["query.toArray()", "query.map((item)=>{return item.href+'/download'})"]
+ },
+ "confirmSize": {
+ "selector": ["table.table.table--bordered-big.torrents"],
+ "filters": ["query.find('td.torrents__size')"]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/resource/sites/dxdhd.com/config.json b/resource/sites/dxdhd.com/config.json
index 75d5e10eb..92c2ba6f0 100644
--- a/resource/sites/dxdhd.com/config.json
+++ b/resource/sites/dxdhd.com/config.json
@@ -7,51 +7,6 @@
"tags": ["综合"],
"schema": "UNIT3D",
"host": "dxdhd.com",
- "searchEntryConfig": {
- "merge": true,
- "page": "/torrents/filter",
- "queryString": "search=$key$",
- "area": [{
- "name": "IMDB",
- "keyAutoMatch": "^(tt\\d+)$",
- "queryString": "imdb=$key$",
- "replaceKey": [
- "tt", ""
- ]
- }],
- "fieldSelector": {
- "progress": {
- "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle, button.btn.btn-info.btn-circle", ""],
- "switchFilters": [
- ["100"],
- ["0"],
- ["null"]
- ]
- },
- "status": {
- "selector": ["button.btn.btn-success.btn-circle", "button.btn.btn-warning.btn-circle", "button.btn.btn-info.btn-circle"],
- "switchFilters": [
- ["2"],
- ["1"],
- ["3"]
- ]
- }
- },
- "resultType": "html",
- "parseScriptFile": "/schemas/UNIT3D/getSearchResult.js",
- "resultSelector": "div.table-responsive > table:first"
- },
- "searchEntry": [{
- "name": "全部",
- "enabled": true
- }],
- "torrentTagSelectors": [{
- "name": "Free",
- "selector": "i.fas fa-star text-gold"
- }, {
- "name": "2xUp",
- "selector": "i.fas fa-gem text-green"
- }],
"categories": [{
"entry": "*",
"result": "&categories[]=$id$",
@@ -86,26 +41,5 @@
"id": 10,
"name": "XXX"
}]
- }],
- "selectors": {
- "userBaseInfo": {
- "merge": true,
- "page": "/",
- "fields": {
- "name": {
- "selector": ["a[href*='/users/']:first"],
- "filters": ["query[0].href.replace('https://dxdhd.com/users/','')"]
- }
- }
- },
- "userExtendInfo": {
- "merge": true,
- "page": "/users/$user.name$",
- "fields": {
- "id": {
- "selector": ["table.table-condensed.table-striped.table-bordered:eq(1) td:contains('User ID') + td", "table.table-condensed.table-striped.table-bordered:eq(1) td:contains('用户ID') + td", "table.table-condensed.table-striped.table-bordered:eq(1) td:contains('用ID') + td"]
- }
- }
- }
- }
+ }]
}
\ No newline at end of file
diff --git a/resource/sites/filelist.ro/browse.js b/resource/sites/filelist.io/browse.js
similarity index 100%
rename from resource/sites/filelist.ro/browse.js
rename to resource/sites/filelist.io/browse.js
diff --git a/resource/sites/filelist.ro/config.json b/resource/sites/filelist.io/config.json
similarity index 96%
rename from resource/sites/filelist.ro/config.json
rename to resource/sites/filelist.io/config.json
index 651c5b938..71c78cf19 100644
--- a/resource/sites/filelist.ro/config.json
+++ b/resource/sites/filelist.io/config.json
@@ -2,8 +2,8 @@
"name": "FileList",
"timezoneOffset": "+0000",
"description": "FileList",
- "url": "https://filelist.ro/",
- "icon": "https://filelist.ro/favicon.ico",
+ "url": "https://filelist.io/",
+ "icon": "https://filelist.io/favicon.ico",
"tags": ["影视", "综合"],
"schema": "FileList",
"plugins": [{
@@ -15,7 +15,7 @@
"pages": ["/browse.php"],
"scripts": ["/schemas/NexusPHP/common.js", "browse.js"]
}],
- "host": "filelist.ro",
+ "host": "filelist.io",
"searchEntryConfig": {
"page": "/browse.php",
"queryString": "search=$key$&cat=0&searchin=1&sort=2",
diff --git a/resource/sites/filelist.ro/details.js b/resource/sites/filelist.io/details.js
similarity index 100%
rename from resource/sites/filelist.ro/details.js
rename to resource/sites/filelist.io/details.js
diff --git a/resource/sites/filelist.ro/getSearchResult.js b/resource/sites/filelist.io/getSearchResult.js
similarity index 100%
rename from resource/sites/filelist.ro/getSearchResult.js
rename to resource/sites/filelist.io/getSearchResult.js
diff --git a/resource/sites/hd-space.org/config.json b/resource/sites/hd-space.org/config.json
new file mode 100644
index 000000000..079c219b3
--- /dev/null
+++ b/resource/sites/hd-space.org/config.json
@@ -0,0 +1,147 @@
+{
+ "name": "HD-Space",
+ "timezoneOffset": "+0000",
+ "description": "HD-Space",
+ "url": "https://hd-space.org/",
+ "icon": "https://hd-space.org/favicon.ico",
+ "tags": ["影视"],
+ "schema": "Common",
+ "plugins": [{
+ "name": "种子详情页面",
+ "pages": ["/index.php"],
+ "scripts": ["/schemas/NexusPHP/common.js", "details.js"]
+ }],
+ "host": "hd-space.org",
+ "searchEntryConfig": {
+ "page": "/index.php?page=torrents",
+ "queryString": "search=$key$&active=0",
+ "resultType": "html",
+ "resultSelector": "#bodyarea > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td > table > tbody > tr:not(:first-child)",
+ "dataRowSelector": " > tbody > tr:not(:first-child)",
+ "area": [{
+ "name": "IMDB",
+ "keyAutoMatch": "^(tt\\d+)$",
+ "replaceKey": [
+ "tt", "IMDB"
+ ]
+ }],
+ "fieldIndex": {
+ "category": 0,
+ "title": 1,
+ "link": 1,
+ "url": 3,
+ "comments": 2,
+ "time": 4,
+ "size": 5,
+ "author": 6,
+ "seeders": 7,
+ "leechers": 8,
+ "completed”=": 9
+ },
+ "fieldSelector": {
+ "title": {
+ "selector": [""],
+ "filters": ["query.get(0).firstChild", "query.nodeValue||query.innerText||0"]
+ },
+ "link": {
+ "selector": [""],
+ "filters": ["query.children().attr('href')", "'https://hd-space.org/'+query"]
+ },
+ "url": {
+ "selector": [""],
+ "filters": ["query.children().attr('href')", "'https://hd-space.org/'+query"]
+ }
+ }
+ },
+ "searchEntry": [{
+ "name": "全部",
+ "enabled": true
+ }],
+ "torrentTagSelectors": [{
+ "name": "Free",
+ "selector": "img[src='gold/gold.png'], img[src='images/sf.png']"
+ }, {
+ "name": "50%",
+ "selector": "img[src='gold/silver.png']"
+ }],
+ "selectors": {
+ "userBaseInfo": {
+ "page": "/index.php",
+ "fields": {
+ "id": {
+ "selector": "a[href*='index.php?page=usercp']:first",
+ "attribute": "href",
+ "filters": ["query ? query.getQueryString('uid'):''"]
+ },
+ "name": {
+ "selector": "td[align='center'][style='text-align:center;']:contains('Welcome back')>span"
+ },
+ "isLogged": {
+ "selector": ["a[href*='logout.php']"],
+ "filters": ["query.length>0"]
+ },
+ "messageCount": {
+ "selector": ["a[href*='do=pm']"],
+ "filters": ["query.text().match(/(\\d+)/)", "(query && query.length>=2)?parseInt(query[1]):0"]
+ },
+ "uploaded": {
+ "selector": ["td.green:contains('UP')"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "downloaded": {
+ "selector": ["td.red:contains('DL')"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "ratio": {
+ "selector": "td.yellow:contains('Ratio')",
+ "filters": ["parseFloat(query.text().replace(' Ratio: ',''))"]
+ },
+ "levelName": {
+ "selector": ["td[align='center'][style='text-align:center;']:contains('Rank')"],
+ "filters": ["query.text().replace('Rank: ','')"]
+ },
+ "bonus": {
+ "selector": ["td.green:contains('Bonus')"],
+ "filters": ["query.text().replace('Bonus: ','')"]
+ },
+ "seeding": {
+ "selector": ["#menu + table > tbody > tr > td:nth-child(4) b > font:nth-child(2)"]
+ },
+ "seedingSize": {
+ "value": -1
+ }
+ }
+ },
+ "userExtendInfo": {
+ "page": "/index.php?page=usercp&uid=$user.id$",
+ "fields": {
+ "joinTime": {
+ "selector": ["td.header:contains('Joined on') + td"],
+ "filters": ["query[0].innerHTML.replace(' ', '').replace(' ', '')", "dateTime(query).valueOf()"]
+ }
+ }
+ },
+ "common": {
+ "page": "/index.php?page=torrent-details",
+ "merge": true,
+ "fields": {
+ "downloadURL": {
+ "selector": ["a[href*='download.php?id=']"],
+ "filters": ["query.attr('href')"]
+ },
+ "size": {
+ "selector": ["td.header:contains('Size') + td"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "sayThanksButton": {
+ "selector": ["#ty"],
+ "filters": ["query"]
+ }
+ }
+ }
+ },
+ "supportedFeatures": {
+ "imdbSearch": false,
+ "userData": "◐"
+ }
+}
\ No newline at end of file
diff --git a/resource/sites/hd-space.org/details.js b/resource/sites/hd-space.org/details.js
new file mode 100644
index 000000000..1c7eb358b
--- /dev/null
+++ b/resource/sites/hd-space.org/details.js
@@ -0,0 +1,108 @@
+(function ($, window) {
+ console.log("this is details.js");
+ if(/\?page\=torrent-details/.test(window.location.search)){
+ console.log("torrent-details");
+ class App extends window.NexusPHPCommon {
+ init() {
+ this.initButtons();
+ // 设置当前页面
+ PTService.pageApp = this;
+ }
+ /**
+ * 初始化按钮列表
+ */
+ initButtons() {
+ this.showTorrentSize();
+ this.initDetailButtons();
+ }
+
+ /**
+ * 获取下载链接
+ */
+ getDownloadURL() {
+ let query = $("a[href*='download.php']:first");
+ let url = "";
+ if (query.length > 0) {
+ url = query.attr("href");
+ if (url.substr(0, 4) != "http") {
+ url = PTService.site.url + url;
+ }
+ }
+
+ return url;
+ }
+
+ showTorrentSize() {
+ let size = PTService.filters.formatSize(PTService.getFieldValue("size"));
+ PTService.addButton({
+ title: "当前种子大小",
+ icon: "attachment",
+ label: size
+ });
+ }
+ /**
+ * 获取当前种子标题
+ */
+ getTitle() {
+ return $("a[href*='download.php']:first").text().trim();
+ }
+ };
+ (new App()).init();
+ }else if(/\?page\=torrents|seedwanted/.test(window.location.search)){
+ class App extends window.NexusPHPCommon {
+ init() {
+ // super();
+ this.initButtons();
+ this.initFreeSpaceButton();
+ // 设置当前页面
+ PTService.pageApp = this;
+ }
+
+ /**
+ * 初始化按钮列表
+ */
+ initButtons() {
+ this.initListButtons();
+ }
+
+ /**
+ * 获取下载链接
+ */
+ getDownloadURLs() {
+ let links = $("#bodyarea > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td > table, #mcol > table > tbody > tr:nth-child(2) > td > table")
+ .find("a[href*='download.php']")
+ .toArray();
+ let siteURL = PTService.site.url;
+ if (siteURL.substr(-1) != "/") {
+ siteURL += "/";
+ }
+
+ if (links.length == 0) {
+ return this.t("getDownloadURLsFailed"); //"获取下载链接失败,未能正确定位到链接";
+ }
+
+ let urls = $.map(links, item => {
+ let link = $(item).attr("href");
+ if (link && link.substr(0, 4) != "http") {
+ link = siteURL + link;
+ }
+ return link;
+ });
+
+ return urls;
+ }
+
+ /**
+ * 确认大小是否超限
+ */
+ confirmWhenExceedSize() {
+ return this.confirmSize(
+ $("table.mainblockcontenttt:first").find(
+ "td:contains('MiB'),td:contains('GiB'),td:contains('TiB')"
+ )
+ );
+ }
+ }
+ new App().init();
+ }
+})(jQuery, window);
\ No newline at end of file
diff --git a/resource/sites/hd-torrents.org/config.json b/resource/sites/hd-torrents.org/config.json
index 7bd66e233..eb6543ba2 100644
--- a/resource/sites/hd-torrents.org/config.json
+++ b/resource/sites/hd-torrents.org/config.json
@@ -1,11 +1,11 @@
{
"name": "HD-Torrents",
"timezoneOffset": "+0000",
- "description": "HD-Torrents.org - Index",
+ "description": "HD-Torrents.org",
"url": "https://hd-torrents.org/",
"icon": "https://hd-torrents.org/favicon.ico",
"tags": ["综合"],
- "schema": "HD-Torrents",
+ "schema": "Common",
"plugins": [{
"name": "种子详情页面",
"pages": ["/details.php"],
@@ -29,7 +29,7 @@
},
"dataCacheTime": 60
},
- "queryString": "csrfToken=$beforeSearchData.csrfToken$&search=$key$",
+ "queryString": "csrfToken=$beforeSearchData.csrfToken$&search=$key$&active=0",
"area": [{
"name": "标题",
"appendQueryString": "&options=0"
@@ -63,13 +63,13 @@
"name": "Free",
"selector": "img[src*='free.png']"
}, {
- "name": "25%",
+ "name": "75%",
"selector": "img[src*='25.png']"
}, {
"name": "50%",
"selector": "img[src*='50.png']"
}, {
- "name": "75%",
+ "name": "25%",
"selector": "img[src*='75.png']"
}],
"selectors": {
@@ -139,6 +139,20 @@
"filters": ["jQuery.map(query.find('td:eq(1)'), (item)=>{return $(item).text();})", "_self.getTotalSize(query)"]
}
}
+ },
+ "common": {
+ "page": "/details.php",
+ "merge": true,
+ "fields": {
+ "size": {
+ "selector": ["td.detailsleft:contains('Size:') + td"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "sayThanksButton": {
+ "selector": ["#ty"],
+ "filters": ["query"]
+ }
+ }
}
}
}
\ No newline at end of file
diff --git a/resource/sites/hd-torrents.org/details.js b/resource/sites/hd-torrents.org/details.js
index 26eb39f09..b8e5d4799 100644
--- a/resource/sites/hd-torrents.org/details.js
+++ b/resource/sites/hd-torrents.org/details.js
@@ -10,6 +10,7 @@
* 初始化按钮列表
*/
initButtons() {
+ this.showTorrentSize();
this.initDetailButtons();
}
@@ -29,6 +30,14 @@
return url;
}
+ showTorrentSize() {
+ let size = PTService.filters.formatSize(PTService.getFieldValue("size"));
+ PTService.addButton({
+ title: "当前种子大小",
+ icon: "attachment",
+ label: size
+ });
+ }
/**
* 获取当前种子标题
*/
diff --git a/resource/sites/hdbits.org/config.json b/resource/sites/hdbits.org/config.json
index c1ccf0bf8..c18ee5070 100644
--- a/resource/sites/hdbits.org/config.json
+++ b/resource/sites/hdbits.org/config.json
@@ -137,8 +137,8 @@
"filters": ["query.length>0"]
},
"messageCount": {
- "selector": ["span.js-notifications-count"],
- "filters": ["query ? (query.text().match(/(\\d+)/) ? parseInt(query[0]):'0') : '0'"]
+ "selector": ["a.alert-box--pm, span.js-notifications-count"],
+ "filters": ["query.text().match(/(\\d+)/)", "(query && query.length>=2)?parseInt(query[1]):0"]
}
}
},
diff --git a/resource/sites/jpopsuki.eu/config.json b/resource/sites/jpopsuki.eu/config.json
index 160ac6295..9f3340f5c 100644
--- a/resource/sites/jpopsuki.eu/config.json
+++ b/resource/sites/jpopsuki.eu/config.json
@@ -18,6 +18,10 @@
"resultSelector": "table.torrent_table:last > tbody > tr",
"enabled": true
}],
+ "torrentTagSelectors": [{
+ "name": "Free",
+ "selector": "strong:contains('Freeleech!')"
+ }],
"categories": [{
"entry": "*",
"result": "&filter_cat[$id$]=1",
diff --git a/resource/sites/jpopsuki.eu/getSearchResult.js b/resource/sites/jpopsuki.eu/getSearchResult.js
index 0edd7116e..c021aef7b 100644
--- a/resource/sites/jpopsuki.eu/getSearchResult.js
+++ b/resource/sites/jpopsuki.eu/getSearchResult.js
@@ -10,7 +10,7 @@ if (!"".getQueryString) {
};
}
-(function(options) {
+(function(options, Searcher) {
class Parser {
constructor() {
this.haveData = false;
@@ -209,6 +209,7 @@ if (!"".getQueryString) {
fieldIndex.comments == -1
? ""
: cells.eq(fieldIndex.comments).text() || 0,
+ tags: Searcher.getRowTags(site, row),
site: site,
category:
fieldIndex.category == -1
@@ -258,4 +259,4 @@ if (!"".getQueryString) {
let parser = new Parser(options);
options.results = parser.getResult();
console.log(options.results);
-})(options);
+})(options, options.searcher);
diff --git a/resource/sites/karagarga.in/details.js b/resource/sites/karagarga.in/details.js
index edddc5abd..d8885e963 100644
--- a/resource/sites/karagarga.in/details.js
+++ b/resource/sites/karagarga.in/details.js
@@ -10,6 +10,7 @@
* 初始化按钮列表
*/
initButtons() {
+ this.showTorrentSize();
this.initDetailButtons();
}
@@ -17,7 +18,7 @@
* 获取下载链接
*/
getDownloadURL() {
- let query = $("a[href*='down.php']");
+ let query = $("a.index[href*='down.php']");
let url = "";
if (query.length > 0) {
url = query.attr("href");
@@ -27,16 +28,29 @@
return "";
}
- return `${location.origin}/${url}`;
+ return `${location.origin}${url}`;
+ }
+
+ showTorrentSize() {
+ let query = $("td.heading:contains('Size') + td");
+ let size = "";
+ if (query.length > 0) {
+ size = query.text().match(/^[^\(]+/);
+ // attachment
+ PTService.addButton({
+ title: "当前种子大小",
+ icon: "attachment",
+ label: size
+ });
+ }
}
/**
* 获取当前种子标题
*/
getTitle() {
- return $("table.main h1:first aa[href*='browse.php?dirsearch='] +")
+ return $("table.main h1:first")
.text()
- .match(/-(.*)\(/)
.trim();
}
}
diff --git a/resource/sites/moecat.best/config.json b/resource/sites/moecat.best/config.json
index 8f9fef41d..361264e6a 100644
--- a/resource/sites/moecat.best/config.json
+++ b/resource/sites/moecat.best/config.json
@@ -65,5 +65,16 @@
}, {
"name": "50%",
"selector": "img.pro_50pctdown"
- }]
+ }],
+ "selectors": {
+ "/details.php": {
+ "merge": true,
+ "fields": {
+ "downloadURL": {
+ "selector": ["a[title][href*='downhash=']:first"],
+ "filters": ["query.attr('href')"]
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/resource/sites/oppaiti.me/config.json b/resource/sites/oppaiti.me/config.json
index 6e3e598bd..0a8f1e13a 100644
--- a/resource/sites/oppaiti.me/config.json
+++ b/resource/sites/oppaiti.me/config.json
@@ -18,12 +18,12 @@
{
"queryString": "filter_cat[1]=1",
"name": "Movies",
- "enabled": true
+ "enabled": false
},
{
"queryString": "filter_cat[2]=1",
"name": "Anime",
- "enabled": true
+ "enabled": false
},
{
"queryString": "filter_cat[3]=1",
@@ -38,16 +38,30 @@
{
"queryString": "filter_cat[5]=1",
"name": "Audio",
- "enabled": true
+ "enabled": false
},
{
"queryString": "filter_cat[6]=1",
"name": "Other",
- "enabled": true
+ "enabled": false
}
],
+ "selectors": {
+ "userSeedingTorrents": {
+ "page": "/user.php?id=$user.id$",
+ "fields": {
+ "seedingSize": {
+ "selector": ["li:contains('Total Seeding: ') > span"],
+ "filters": ["query.text().sizeToNumber()"]
+ },
+ "bonus": {
+ "selector": ["span.stat > a[href]"],
+ "filters": ["query.text().replace(',', '')"]
+ }
+ }
+ }
+ },
"supportedFeatures": {
- "imdbSearch": false,
- "userData": "◐"
+ "imdbSearch": false
}
}
\ No newline at end of file
diff --git a/resource/sites/pt.hd4fans.org/config.json b/resource/sites/pt.hd4fans.org/config.json
index 8cf3618f6..480df8f2a 100644
--- a/resource/sites/pt.hd4fans.org/config.json
+++ b/resource/sites/pt.hd4fans.org/config.json
@@ -4,7 +4,143 @@
"schema": "NexusPHP",
"url": "https://pt.hd4fans.org",
"icon": "https://pt.hd4fans.org/favicon.ico",
- "tags": ["影视", "兽组"],
+ "tags": [
+ "影视",
+ "兽组"
+ ],
"host": "pt.hd4fans.org",
- "collaborator": "lilungpo"
-}
\ No newline at end of file
+ "collaborator": "lilungpo, tongyifan",
+ "searchEntry": [
+ {
+ "name": "全站",
+ "enabled": true
+ },
+ {
+ "queryString": "cat401=1",
+ "name": "电影",
+ "enabled": false
+ },
+ {
+ "queryString": "cat404=1",
+ "name": "纪录片",
+ "enabled": false
+ },
+ {
+ "queryString": "cat405=1",
+ "name": "动漫",
+ "enabled": false
+ },
+ {
+ "queryString": "cat402=1",
+ "name": "电视剧",
+ "enabled": false
+ },
+ {
+ "queryString": "cat403=1",
+ "name": "综艺",
+ "enabled": false
+ },
+ {
+ "queryString": "cat406=1",
+ "name": "MV",
+ "enabled": false
+ },
+ {
+ "queryString": "cat407=1",
+ "name": "体育",
+ "enabled": false
+ },
+ {
+ "queryString": "cat409=1",
+ "name": "其它",
+ "enabled": false
+ },
+ {
+ "queryString": "cat408=1",
+ "name": "音轨",
+ "enabled": false
+ }
+ ],
+ "categories": [
+ {
+ "entry": "*",
+ "result": "&cat$id$=1",
+ "category": [
+ {
+ "id": 401,
+ "name": "电影"
+ },
+ {
+ "id": 404,
+ "name": "纪录片"
+ },
+ {
+ "id": 405,
+ "name": "动漫"
+ },
+ {
+ "id": 402,
+ "name": "电视剧"
+ },
+ {
+ "id": 403,
+ "name": "综艺"
+ },
+ {
+ "id": 406,
+ "name": "MV"
+ },
+ {
+ "id": 407,
+ "name": "体育"
+ },
+ {
+ "id": 409,
+ "name": "其它"
+ },
+ {
+ "id": 408,
+ "name": "音轨"
+ }
+ ]
+ }
+ ],
+ "torrentTagSelectors": [
+ {
+ "name": "Free",
+ "selector": "img.pro_free, .free_bg, font.free"
+ },
+ {
+ "name": "2xFree",
+ "selector": "img.pro_free2up, font.twoupfree"
+ },
+ {
+ "name": "2xUp",
+ "selector": "img.pro_2up, .twoup_bg, font.twoup"
+ },
+ {
+ "name": "2x50%",
+ "selector": "img.pro_50pctdown2up, .twouphalfdown_bg, font.twouphalfdown"
+ },
+ {
+ "name": "30%",
+ "selector": "img.pro_30pctdown, .thirtypercentdown_bg, font.thirtypercent"
+ },
+ {
+ "name": "50%",
+ "selector": "img.pro_50pctdown, .halfdown_bg, font.halfdown"
+ }
+ ],
+ "searchEntryConfig": {
+ "fieldSelector": {
+ "progress": {
+ "selector": [
+ "div[class='progressarea'] > div"
+ ],
+ "filters": [
+ "query.attr('style').match(/(\\d+(?:\\.\\d+)?)%/)[1]"
+ ]
+ }
+ }
+ }
+}
diff --git a/resource/sites/pt.keepfrds.com/config.json b/resource/sites/pt.keepfrds.com/config.json
index 5d4b6b3aa..d34884a70 100644
--- a/resource/sites/pt.keepfrds.com/config.json
+++ b/resource/sites/pt.keepfrds.com/config.json
@@ -1,5 +1,5 @@
{
- "name": "keepfrds",
+ "name": "PT@KEEPFRDS",
"timezoneOffset": "+0800",
"url": "https://pt.keepfrds.com/",
"icon": "https://pt.keepfrds.com/static/favicon-64x64.png",
diff --git a/resource/sites/pt.sjtu.edu.cn/config.json b/resource/sites/pt.sjtu.edu.cn/config.json
index 07d7e59ce..9873d6e11 100644
--- a/resource/sites/pt.sjtu.edu.cn/config.json
+++ b/resource/sites/pt.sjtu.edu.cn/config.json
@@ -12,6 +12,26 @@
"schema": "NexusPHP",
"host": "pt.sjtu.edu.cn",
"collaborator": "Rhilip",
+ "searchEntryConfig": {
+ "merge": true,
+ "fieldSelector": {
+ "progress": {
+ "selector": ["td.snatched_no_yes, td.snatched_yes_yes", "td.snatched_no_no, td.snatched_yes_no", ""],
+ "switchFilters": [
+ ["100"],
+ ["0"],
+ ["null"]
+ ]
+ },
+ "status": {
+ "selector": ["td.snatched_no_yes, td.snatched_yes_yes", "td.snatched_no_no, td.snatched_yes_no"],
+ "switchFilters": [
+ ["2"],
+ ["3"]
+ ]
+ }
+ }
+ },
"categories": [{
"entry": "*",
"result": "cat$id$=1",
diff --git a/resource/sites/pterclub.com/config.json b/resource/sites/pterclub.com/config.json
index 24bc7ce02..5b70edae9 100644
--- a/resource/sites/pterclub.com/config.json
+++ b/resource/sites/pterclub.com/config.json
@@ -18,7 +18,7 @@
},
"subTitle": {
"selector": ["a[href*='details.php?id='][title]:first"],
- "filters": ["query.parent().find('a, b, div').replaceWith(null).end().text().trim()"]
+ "filters": ["$(query.parent()[0].lastChild).text().trim()"]
},
"progress": {
"selector": [".progbargreen", ".progbarred + .progbarrest", ".progbarred", ".progbarrest", ""],
diff --git a/resource/sites/tjupt.org/config.json b/resource/sites/tjupt.org/config.json
index 67ab6998d..2453abd97 100644
--- a/resource/sites/tjupt.org/config.json
+++ b/resource/sites/tjupt.org/config.json
@@ -151,5 +151,6 @@
}
}
}
- }
+ },
+ "cdn": ["https://www.tjupt.org/"]
}
\ No newline at end of file
diff --git a/resource/sites/u2.dmhy.org/config.json b/resource/sites/u2.dmhy.org/config.json
index fd51e6d39..86af2a287 100644
--- a/resource/sites/u2.dmhy.org/config.json
+++ b/resource/sites/u2.dmhy.org/config.json
@@ -213,7 +213,7 @@
"merge": true,
"fields": {
"sayThanksButton": {
- "selector": ["span#thanksbutton input:button:first"],
+ "selector": ["span#thanksbutton input:button:first:not(:disabled)"],
"filters": ["query"]
}
}
diff --git a/resource/sites/uhdbits.org/getSearchResult.js b/resource/sites/uhdbits.org/getSearchResult.js
index 11d3f4814..e22d47b1a 100644
--- a/resource/sites/uhdbits.org/getSearchResult.js
+++ b/resource/sites/uhdbits.org/getSearchResult.js
@@ -10,7 +10,7 @@ if (!"".getQueryString) {
};
}
-(function(options) {
+(function(options, Searcher) {
class Parser {
constructor() {
this.haveData = false;
@@ -113,8 +113,8 @@ if (!"".getQueryString) {
}
let data = {
- title: title.text(),
- subTitle: subTitle.text(),
+ title: title.text() + ' / ' +subTitle.text(),
+ //subTitle: subTitle.text(),
link,
url: url,
size: cells.eq(fieldIndex.size).html() || 0,
@@ -139,6 +139,7 @@ if (!"".getQueryString) {
fieldIndex.comments == -1
? ""
: cells.eq(fieldIndex.comments).text() || 0,
+ tags: this.getTags(row),
site: site,
entryName: options.entry.name,
category: this.getCategory(cells.find("a[href*='filter_cat']"))
@@ -185,6 +186,47 @@ if (!"".getQueryString) {
return result;
}
+
+ getTags(row){
+ var query = row.find("strong:contains('Free'), strong:contains('2x'), strong:contains('%')");
+ var BASE_TAG_COLORS = {
+ // 免费下载
+ Free: "blue",
+ // 免费下载 + 2x 上传
+ "2xFree": "green",
+ // 2x 上传
+ "2xUp": "lime",
+ // 2x 上传 + 50% 下载
+ "2x50%": "light-green",
+ // 25% 下载
+ "25%": "purple",
+ // 30% 下载
+ "30%": "indigo",
+ // 35% 下载
+ "35%": "indigo darken-3",
+ // 50% 下载
+ "50%": "orange",
+ // 70% 下载
+ "70%": "blue-grey",
+ // 75% 下载
+ "75%": "lime darken-3",
+ // 仅 VIP 可下载
+ VIP: "orange darken-2",
+ // 禁止转载
+ "⛔️": "deep-orange darken-1"
+ };
+ if(query.length > 0) {
+ query = query.text().replace(' ','').replace('↓','');
+ var result = [{
+ name: query,
+ color: BASE_TAG_COLORS[query]
+ }]
+ return result;
+ }
+ }
+
+
+
getCategoryName(id) {
if ($.isEmptyObject(this.categories)) {
let cells = options.page.find(".cat_list:first").find("td");
@@ -209,4 +251,4 @@ if (!"".getQueryString) {
let parser = new Parser(options);
options.results = parser.getResult();
console.log(options.results);
-})(options);
+})(options, Searcher);
diff --git a/resource/sites/www.empornium.me/config.json b/resource/sites/www.empornium.me/config.json
new file mode 100644
index 000000000..82e415446
--- /dev/null
+++ b/resource/sites/www.empornium.me/config.json
@@ -0,0 +1,164 @@
+{
+ "name": "Empornium",
+ "timezoneOffset": "+0000",
+ "description": "EMP",
+ "url": "https://www.empornium.me/",
+ "tags": ["Adult"],
+ "schema": "Common",
+ "plugins": [{
+ "name": "种子列表",
+ "pages": ["/torrents.php"],
+ "scripts": ["/schemas/NexusPHP/common.js", "/schemas/Gazelle/torrents.js"]
+ }],
+ "host": "www.empornium.me",
+ "searchEntryConfig": {
+ "page": "torrents.php?searchtext=$key$",
+ "resultType": "html",
+ "resultSelector": "table.torrent_table.grouping",
+ "dataRowSelector": " > tbody > tr:not(:first-child)",
+ "fieldIndex": {
+ "category": 0,
+ "title": 1,
+ "link": 1,
+ "url": 1,
+ "comments": 3,
+ "time": 4,
+ "size": 5,
+ "author": 9,
+ "seeders": 7,
+ "leechers": 8,
+ "completed": 6
+ },
+ "fieldSelector": {
+ "category": {
+ "selector": ["div[title]"],
+ "filters": ["query.attr('title')"]
+ },
+ "title": {
+ "selector": ["a[onmouseout]"],
+ "filters": ["query.text()"]
+ },
+ "link": {
+ "selector": ["a[onmouseout]"],
+ "filters": ["query.attr('href')"]
+ },
+ "url": {
+ "selector": ["a[title='Download Torrent']"],
+ "filters": ["query.attr('href')"]
+ },
+ "time": {
+ "selector": [""],
+ "filters": ["query.text()"]
+ },
+ "progress": {
+ "selector": ["a[title='Currently Seeding Torrent'], a[title='Previously Snatched Torrent']", "a[title='Previously Grabbed Torrent File']", ""],
+ "switchFilters": [
+ ["100"],
+ ["0"],
+ ["null"]
+ ]
+ },
+ "status": {
+ "selector": ["a[title='Currently Seeding Torrent']", "a[title='Previously Snatched Torrent']", "a[title='Previously Grabbed Torrent File']"],
+ "switchFilters": [
+ ["2"],
+ ["255"],
+ ["1"]
+ ]
+ }
+ }
+ },
+ "searchEntry": [{
+ "name": "全部",
+ "enabled": true
+ }],
+ "torrentTagSelectors": [{
+ "name": "Free",
+ "selector": "span[title='Unlimited Freeleech']"
+ }],
+ "selectors": {
+ "userBaseInfo": {
+ "page": "/index.php",
+ "fields": {
+ "id": {
+ "selector": ["a.username[href*='user.php']:first"],
+ "attribute": "href",
+ "filters": ["query ? query.getQueryString('id'):''"]
+ },
+ "name": {
+ "selector": "a.username"
+ },
+ "isLogged": {
+ "selector": ["#nav_logout"],
+ "filters": ["query.length>0"]
+ },
+ "messageCount": {
+ "selector": ["div.alertbar"],
+ "filters": ["(query && query.length>=1)?11:0"]
+ },
+ "seeding": {
+ "selector": ["#nav_seeding_r"],
+ "filters": ["query.text().match(/(\\d+)/)", "(query && query.length>=2)?parseInt(query[1]):0"]
+ },
+ "uploaded": {
+ "selector": ["td:contains('Up:') + td"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "downloaded": {
+ "selector": ["td:contains('Down:') + td"],
+ "filters": ["query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>=2)?(query[1]).sizeToNumber():0"]
+ },
+ "ratio": {
+ "selector": ["td:contains('Ratio:') + td"],
+ "filters": ["query.text()"]
+ },
+ "bonus": {
+ "selector": ["td:contains('Credits:') + td"],
+ "filters": ["query.text()"]
+ }
+ }
+ },
+ "userExtendInfo": {
+ "page": "/user.php?id=$user.id$",
+ "fields": {
+ "joinTime": {
+ "selector": ["li:contains('Joined:') > span.time"],
+ "filters": ["dateTime(query.attr('title')).valueOf()"]
+ },
+ "levelName": {
+ "selector": ["span.rank"],
+ "filters": ["query.text()"]
+ },
+ "seedingSize": {
+ "selector": ["ul.stats.nobullet > li:contains('Seeding Size:')"],
+ "filters": ["query.text().replace('Seeding Size: ', '')","query.sizeToNumber()"]
+ }
+ }
+ },
+ "common": {
+ "page": "/torrents-details.php",
+ "fields": {
+ "downloadURL": {
+ "selector": ["a[href*='download.php?id=']"],
+ "filters": ["query.attr('href')"]
+ },
+ "size": {
+ "selector": ["td[align='left']:contains('Total Size:') + td"],
+ "filters": ["query.parent().text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)", "(query && query.length>1)?(query[1]).sizeToNumber():0"]
+ },
+ "sayThanksButton": {
+ "selector": ["#ty-button"],
+ "filters": ["query"]
+ },
+ "downloadURLs": {
+ "selector": ["a[href*='download.php?id=']"],
+ "filters": ["query.toArray()"]
+ },
+ "confirmSize": {
+ "selector": ["table.ttable_headinner"],
+ "filters": ["query.find('td.ttable_size')"]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/resource/sites/www.hdarea.co/config.json b/resource/sites/www.hdarea.co/config.json
index cfc4dc2d5..28aa03bc9 100644
--- a/resource/sites/www.hdarea.co/config.json
+++ b/resource/sites/www.hdarea.co/config.json
@@ -200,5 +200,16 @@
"name": "HQ Audio"
}
]
- }]
+ }],
+ "selectors": {
+ "/details.php": {
+ "merge": true,
+ "fields": {
+ "downloadURL": {
+ "selector": ["td.rowfollow:contains('&passkey='):last"],
+ "filters": ["query[0].childNodes[0].textContent"]
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/resource/sites/www.myanonamouse.net/config.json b/resource/sites/www.myanonamouse.net/config.json
new file mode 100644
index 000000000..97f3dad9a
--- /dev/null
+++ b/resource/sites/www.myanonamouse.net/config.json
@@ -0,0 +1,215 @@
+{
+ "name": "MyAnonaMouse",
+ "description": "Friendliness, Warmth and Sharing",
+ "url": "https://www.myanonamouse.net/",
+ "icon": "https://cdn.myanonamouse.net/favicon.ico",
+ "tags": [
+ "电子书",
+ "有声书"
+ ],
+ "schema": "MyAnonaMouse",
+ "host": "www.myanonamouse.net",
+ "collaborator": "tongyifan",
+ "supportedFeatures": {
+ "search": true,
+ "imdbSearch": false,
+ "userData": true,
+ "sendTorrent": true
+ },
+ "plugins": [
+ {
+ "name": "种子详情页面",
+ "pages": [
+ "/t/\\d+"
+ ],
+ "scripts": [
+ "/schemas/NexusPHP/common.js",
+ "details.js"
+ ]
+ },
+ {
+ "name": "种子列表",
+ "pages": [
+ "/tor/browse.php",
+ "/stats/top10Tor.php"
+ ],
+ "styles": [
+ "/libs/album/style.css"
+ ],
+ "scripts": [
+ "/schemas/NexusPHP/common.js",
+ "/libs/album/album.js",
+ "/schemas/Common/torrents.js"
+ ]
+ }
+ ],
+ "searchEntryConfig": {
+ "page": "/tor/js/loadSearch2.php",
+ "resultType": "html",
+ "queryString": "tor%5Btext%5D=$key$&tor%5BsrchIn%5D%5Btitle%5D=true&tor%5BsrchIn%5D%5Bauthor%5D=true&tor%5BsearchType%5D=all&tor%5BsearchIn%5D=torrents&tor%5Bcat%5D%5B%5D=0&tor%5BbrowseFlagsHideVsShow%5D=0&tor%5BsortType%5D=default&tor%5BstartNumber%5D=0&thumbnail=true",
+ "parseScriptFile": "getSearchResult.js",
+ "resultSelector": "table.newTorTable",
+ "skipIMDbId": true,
+ "firstDataRowIndex": 1
+ },
+ "searchEntry": [
+ {
+ "name": "全站",
+ "enabled": true
+ }
+ ],
+ "torrentTagSelectors": [
+ {
+ "name": "Free",
+ "selector": "img[alt='freeleech']"
+ },
+ {
+ "name": "VIP",
+ "selector": "img[alt='VIP']"
+ }
+ ],
+ "selectors": {
+ "userBaseInfo": {
+ "page": "/index.php",
+ "fields": {
+ "id": {
+ "selector": [
+ "li.myInfo > a"
+ ],
+ "attribute": "href",
+ "filters": [
+ "query ? query.match(/(\\d+)/)[1]:''"
+ ]
+ },
+ "name": {
+ "selector": [
+ "a#userMenu"
+ ],
+ "filters": [
+ "query ? query.text().replace(\"↓\", \"\").trim() : ''"
+ ]
+ },
+ "isLogged": {
+ "selector": [
+ "a[href='/preferences/index.php']"
+ ],
+ "filters": [
+ "query.length>0"
+ ]
+ },
+ "messageCount": {
+ "selector": [
+ "a.tmnb, a.tmn, a.tmng"
+ ],
+ "filters": [
+ "query.text().match(/(\\d+)/g)",
+ "query ? query.map(Number).reduce((sum, current) => {return sum + current;}, 0) : 0"
+ ]
+ }
+ }
+ },
+ "userExtendInfo": {
+ "page": "/u/$user.id$",
+ "fields": {
+ "uploaded": {
+ "selector": [
+ "td.rowhead:contains('Uploaded'):eq(0) + td"
+ ],
+ "filters": [
+ "query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)",
+ "(query && query.length==2)?(query[1]).sizeToNumber():0"
+ ]
+ },
+ "downloaded": {
+ "selector": [
+ "td.rowhead:contains('Downloaded'):eq(0) + td"
+ ],
+ "filters": [
+ "query.text().replace(/,/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)",
+ "(query && query.length==2)?(query[1]).sizeToNumber():0"
+ ]
+ },
+ "levelName": {
+ "selector": [
+ "td.rowhead:contains('Class') + td"
+ ],
+ "filters": [
+ "query.text()"
+ ]
+ },
+ "bonus": {
+ "selector": [
+ "a#tmBP"
+ ],
+ "filters": [
+ "query.text().replace(/,/g,'').match(/Bonus: ([\\d.]+)/)",
+ "(query && query.length==2)?parseFloat(query[1]):0"
+ ]
+ },
+ "joinTime": {
+ "selector": [
+ "td.rowhead:contains('Join'):contains('date') + td"
+ ],
+ "filters": [
+ "query.text().split(' (')[0]",
+ "dateTime(query).isValid()?dateTime(query).valueOf():query"
+ ]
+ }
+ }
+ },
+ "userSeedingTorrents": {
+ "page": "/snatch_summary.php",
+ "parser": "getUserSeedingTorrents.js"
+ },
+ "common": {
+ "fields": {
+ "downloadURLs": {
+ "selector": [
+ "a[href*='/tor/download.php/']"
+ ],
+ "filters": [
+ "query.toArray()"
+ ]
+ },
+ "confirmSize": {
+ "selector": [
+ "table.newTorTable > tbody > tr > td:contains(\"MB\")",
+ "table.newTorTable > tbody > tr > td:contains(\"GB\")",
+ "table.newTorTable > tbody > tr > td:contains(\"KB\")",
+ "table.newTorTable > tbody > tr > td:contains(\"TB\")"
+ ],
+ "filters": [
+ "query.text().match(/\\[(.+ ?[ZEPTGMK]?i?B)\\]/)",
+ "(query && query.length==2)?query[1]:0"
+ ]
+ },
+ "downloadURL": {
+ "selector": [
+ "a#tddl"
+ ],
+ "attribute": "href",
+ "filters": [
+ "query"
+ ]
+ },
+ "size": {
+ "selector": [
+ "div#size > div:eq(1) > span"
+ ],
+ "filters": [
+ "query.text().replace(/[, ]/g,'').match(/([\\d.]+ ?[ZEPTGMK]?i?B)/)",
+ "(query && query.length>1)?(query[1]).sizeToNumber():0"
+ ]
+ },
+ "sayThanksButton": {
+ "selector": [
+ "button#giveThanks"
+ ],
+ "filters": [
+ "query"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/resource/sites/www.myanonamouse.net/details.js b/resource/sites/www.myanonamouse.net/details.js
new file mode 100644
index 000000000..64a19cbfd
--- /dev/null
+++ b/resource/sites/www.myanonamouse.net/details.js
@@ -0,0 +1,55 @@
+(function ($, window) {
+ console.log("this is details.js");
+
+ class App extends window.NexusPHPCommon {
+ init() {
+ this.initButtons();
+ // 设置当前页面
+ PTService.pageApp = this;
+ }
+
+ /**
+ * 初始化按钮列表
+ */
+ initButtons() {
+ this.showTorrentSize();
+ this.initDetailButtons();
+ }
+
+ /**
+ * 获取下载链接
+ */
+ getDownloadURL() {
+ let url = PTService.getFieldValue("downloadURL");
+
+ return this.getFullURL(url);
+ }
+
+ /**
+ * 获取种子大小
+ */
+ showTorrentSize() {
+ let size = $("div#size > div:eq(1) > span");
+ // eslint-disable-next-line no-irregular-whitespace
+ size = size.text().match(/([\d.]+[ ]?[ZEPTGMK]?i?B)/);
+ size = (size && size.length > 1) ? size[1] : 0;
+
+ if (size) {
+ PTService.addButton({
+ title: "当前种子大小",
+ icon: "attachment",
+ label: size
+ });
+ }
+ }
+
+ /**
+ * 获取当前种子标题
+ */
+ getTitle() {
+ return $(".TorrentTitle").text();
+ }
+ }
+
+ new App().init();
+})(jQuery, window);
diff --git a/resource/sites/www.myanonamouse.net/getSearchResult.js b/resource/sites/www.myanonamouse.net/getSearchResult.js
new file mode 100644
index 000000000..f8957ab8c
--- /dev/null
+++ b/resource/sites/www.myanonamouse.net/getSearchResult.js
@@ -0,0 +1,131 @@
+/**
+ * 通用搜索解析脚本
+ */
+(function (options, Searcher) {
+ class Parser {
+ constructor() {
+ this.haveData = false;
+ // 判断是否已登录
+ if (
+ options.entry.loggedRegex &&
+ !new RegExp(options.entry.loggedRegex, "").test(options.responseText)
+ ) {
+ // 需要登录后再搜索
+ options.status = ESearchResultParseStatus.needLogin;
+ return;
+ }
+
+ options.isLogged = true;
+
+ this.haveData = true;
+ this.site = options.site;
+ }
+
+ /**
+ * 获取搜索结果
+ */
+ getResult() {
+ if (!this.haveData) {
+ return [];
+ }
+ let selector = options.resultSelector;
+ let dataRowSelector = options.entry.dataRowSelector || "> tbody > tr";
+ selector = selector.replace(dataRowSelector, "");
+ // 获取数据表格
+ let table = options.page.find(selector);
+ // 获取种子列表行
+ let rows = table.find(dataRowSelector);
+ if (rows.length === 0) {
+ // 没有定位到种子列表,或没有相关的种子
+ options.status = ESearchResultParseStatus.torrentTableIsEmpty;
+ return [];
+ }
+ let results = [];
+ let beginRowIndex = options.entry.firstDataRowIndex || 0;
+
+ try {
+ // 遍历数据行
+ for (let index = beginRowIndex; index < rows.length; index++) {
+ const row = rows.eq(index);
+
+ let torrentId = row.attr("id");
+ // 跳过无种子ID的行
+ if (!torrentId) {
+ continue;
+ } else {
+ torrentId = torrentId.match(/tdr-(\d+)/)[1];
+ }
+
+ // 下载链接,无法下载的VIP种子置为ONLY_FOR_VIP
+ let url = row.find(".directDownload").attr("href");
+ if (!url) {
+ url = "ONLY_FOR_VIP"
+ }
+
+ // 解析种子大小
+ let size = row.find("> td:eq(4)").text().split("[")[1].replace("]", "");
+
+ // 解析发布时间和发布者
+ let addedAndUploader = row.find("> td:eq(5)").text().split("[");
+ let time = addedAndUploader[0];
+ let author = addedAndUploader[1].replace("]", "");
+
+ // 做种/下载/完成
+ let seedLeechSnatched = row.find("> td:eq(6) > p");
+ let seeders = parseInt(seedLeechSnatched.eq(0).text());
+ let leechers = parseInt(seedLeechSnatched.eq(1).text());
+ let completed = parseInt(seedLeechSnatched.eq(2).text());
+
+ let data = {
+ title: row.find(".torTitle").text(),
+ subTitle: row.find(".torRowDesc").text(),
+ link: this.getFullURL(`/t/${torrentId}`),
+ url: this.getFullURL(url),
+ size: size || 0,
+ time: time,
+ author: author,
+ seeders: seeders,
+ leechers: leechers,
+ completed: completed,
+ comments: row.find(" >td:eq(2)").text().match(/(\d+) comments/)[1],
+ site: this.site,
+ tags: Searcher.getRowTags(this.site, row),
+ entryName: options.entry.name
+ };
+ results.push(data);
+ }
+ } catch (error) {
+ // 获取种子信息出错
+ options.status = ESearchResultParseStatus.parseError;
+ options.errorMsg = error.stack;
+ }
+
+ // 没有搜索到相关的种子
+ if (results.length === 0 && !options.errorMsg) {
+ options.status = ESearchResultParseStatus.noTorrents;
+ }
+
+ return results;
+ }
+
+ /**
+ * 获取完整的URL地址
+ * @param {string} url
+ */
+ getFullURL(url) {
+ let URL = PTServiceFilters.parseURL(this.site.url);
+ if (url.substr(0, 2) === "//") {
+ url = `${URL.protocol}${url}`;
+ } else if (url.substr(0, 1) === "/") {
+ url = `${URL.origin}${url}`;
+ } else if (url.substr(0, 4) !== "http") {
+ url = `${URL.origin}/${url}`;
+ }
+ return url;
+ }
+ }
+
+ let parser = new Parser(options);
+ options.results = parser.getResult();
+ console.log(options.results);
+})(options, options.searcher);
diff --git a/resource/sites/www.myanonamouse.net/getUserSeedingTorrents.js b/resource/sites/www.myanonamouse.net/getUserSeedingTorrents.js
new file mode 100644
index 000000000..cab3806c8
--- /dev/null
+++ b/resource/sites/www.myanonamouse.net/getUserSeedingTorrents.js
@@ -0,0 +1,74 @@
+(function (options, User) {
+ class Parser {
+ constructor(options) {
+ this.options = options;
+ this.body = null;
+ this.result = {
+ seeding: 0,
+ seedingSize: 0
+ };
+ this.load();
+ }
+
+ /**
+ * 完成
+ */
+ done() {
+ this.options.resolve(this.result);
+ }
+
+ /**
+ * 加载当前做种数据
+ */
+ load() {
+ const types = [
+ "seedUnsat",
+ "seedHnr",
+ "sSat",
+ "upAct"
+ ]
+ for (const type of types) {
+ User.getCookie(options.site, "mam_id").then(mamId => {
+ $.getJSON("https://cdn.myanonamouse.net/json/loadUserDetailsTorrents.php", {
+ uid: options.userInfo.id,
+ iteration: 0,
+ type: type,
+ cacheTime: Math.round(Date.now() / 1000),
+ mam_id: decodeURIComponent(mamId)
+ }).done(data => {
+ data.rows.forEach(item => {
+ this.result.seeding += 1;
+ this.result.seedingSize += item.size.sizeToNumber()
+ })
+
+ // 如果到了最后一个type
+ if (type === types[types.length - 1]) {
+ this.done();
+ }
+ }).fail(error => {
+ console.log(error);
+ this.done();
+ })
+ }).catch(err => {
+ console.log(err);
+ this.done();
+ });
+ }
+ }
+ }
+
+ new Parser(options);
+})(_options, _self);
+/**
+ *
+ _options 表示当前参数
+ {
+ site,
+ rule,
+ userInfo,
+ resolve,
+ reject
+ }
+
+ _self 表示 User(/src/background/user.ts) 类实例
+ */
diff --git a/resource/sites/www.torrentleech.org/getSearchResult.js b/resource/sites/www.torrentleech.org/getSearchResult.js
index 9a5869e4c..172f97239 100644
--- a/resource/sites/www.torrentleech.org/getSearchResult.js
+++ b/resource/sites/www.torrentleech.org/getSearchResult.js
@@ -1,4 +1,4 @@
-(function(options) {
+(function(options, Searcher) {
class Parser {
constructor() {
this.haveData = false;
@@ -42,7 +42,7 @@
completed: item.completed,
comments: item.numComments,
site: site,
- tags: [],
+ tags: this.getTags(item),
entryName: options.entry.name,
category: options.searcher.getCategoryById(
site,
@@ -64,9 +64,17 @@
}
return results;
}
+ getTags(item) {
+ var tag = [{
+ name: "free",
+ color: "blue"
+ }]
+ if(item.tags.indexOf("FREELEECH")>-1)return tag;
+ }
}
+
let parser = new Parser(options);
options.results = parser.getResult();
console.log(options.results);
-})(options);
+})(options, Searcher);
diff --git a/resource/sites/www.torrentseeds.org/config.json b/resource/sites/www.torrentseeds.org/config.json
index 0b2c2b1bc..913e56d86 100644
--- a/resource/sites/www.torrentseeds.org/config.json
+++ b/resource/sites/www.torrentseeds.org/config.json
@@ -15,6 +15,34 @@
"userData": true,
"sendTorrent": true
},
+ "plugins": [
+ {
+ "name": "种子详情页面",
+ "pages": [
+ "/details.php"
+ ],
+ "scripts": [
+ "/schemas/NexusPHP/common.js",
+ "details.js"
+ ]
+ },
+ {
+ "name": "种子列表",
+ "pages": [
+ "^/$",
+ "/browse.php",
+ "/browse_elastic.php"
+ ],
+ "styles": [
+ "/libs/album/style.css"
+ ],
+ "scripts": [
+ "/schemas/NexusPHP/common.js",
+ "/libs/album/album.js",
+ "torrents.js"
+ ]
+ }
+ ],
"selectors": {
"userBaseInfo": {
"page": "/",
diff --git a/resource/sites/www.torrentseeds.org/details.js b/resource/sites/www.torrentseeds.org/details.js
new file mode 100644
index 000000000..58463dc9d
--- /dev/null
+++ b/resource/sites/www.torrentseeds.org/details.js
@@ -0,0 +1,37 @@
+(function ($, window) {
+ console.log("this is details.js");
+ class App extends window.NexusPHPCommon {
+ init() {
+ this.initButtons();
+ // 设置当前页面
+ PTService.pageApp = this;
+ }
+ /**
+ * 初始化按钮列表
+ */
+ initButtons() {
+ this.initDetailButtons();
+ }
+
+ /**
+ * 获取下载链接
+ */
+ getDownloadURL() {
+ let siteURL = PTService.site.url;
+ let url = $("td.details-text-ellipsis:eq(0) > a").attr("href");
+ if (siteURL.substr(-1) != "/") {
+ siteURL += "/";
+ }
+
+ return this.getFullURL(siteURL + url);
+ }
+
+ /**
+ * 获取当前种子标题
+ */
+ getTitle() {
+ return $("div.pull-left > h1").text();
+ }
+ }
+ new App().init();
+})(jQuery, window);
diff --git a/resource/sites/www.torrentseeds.org/torrents.js b/resource/sites/www.torrentseeds.org/torrents.js
new file mode 100644
index 000000000..5aed4d13c
--- /dev/null
+++ b/resource/sites/www.torrentseeds.org/torrents.js
@@ -0,0 +1,50 @@
+(function ($) {
+ console.log("this is torrent.js");
+ class App extends window.NexusPHPCommon {
+ init() {
+ this.initButtons();
+ this.initFreeSpaceButton();
+ // 设置当前页面
+ PTService.pageApp = this;
+ }
+
+ /**
+ * 初始化按钮列表
+ */
+ initButtons() {
+ this.initListButtons();
+ }
+
+ /**
+ * 获取下载链接
+ */
+ getDownloadURLs() {
+ let links = $("a[href$='&ssl=1']").toArray();
+
+ if (links.length == 0) {
+ // "获取下载链接失败,未能正确定位到链接";
+ return this.t("getDownloadURLsFailed");
+ }
+
+ let siteURL = PTService.site.url;
+ if (siteURL.substr(-1) != "/") {
+ siteURL += "/";
+ }
+
+ let urls = $.map(links, item => {
+ let url = $(item).attr("href");
+ return this.getFullURL(siteURL + url.substr(1));
+ });
+
+ return urls;
+ }
+
+ /**
+ * 确认大小是否超限
+ */
+ confirmWhenExceedSize() {
+ return this.confirmSize(PTService.getFieldValue("confirmSize"));
+ }
+ }
+ new App().init();
+})(jQuery);
diff --git a/src/background/user.ts b/src/background/user.ts
index a4d7b1e5f..86e525b2a 100644
--- a/src/background/user.ts
+++ b/src/background/user.ts
@@ -460,4 +460,24 @@ export class User {
}
});
}
+
+ // MAM需要在访问API时传入存于Cookies中的mam_id,构建这个辅助方法以便获取Cookie
+ public getCookie(site: Site, needle: String): Promise {
+ return new Promise((resolve, reject) => {
+ PPF.checkPermissions(["cookies"]).then(() => {
+ this.service.config.getCookiesFromSite(site).then((result) => {
+ for (const cookie of result.cookies) {
+ if (cookie["name"] === needle) {
+ resolve(cookie["value"]);
+ }
+ }
+ resolve("");
+ }).catch(error => {
+ reject(error);
+ });
+ }).catch(error => {
+ reject(error);
+ });
+ });
+ }
}
diff --git a/src/content/index.ts b/src/content/index.ts
index bed5f7c05..1c4ab0ce7 100644
--- a/src/content/index.ts
+++ b/src/content/index.ts
@@ -166,48 +166,69 @@ class PTPContent {
* 初始化符合条件的附加页面
*/
private initPages() {
- if (!this.options.showToolbarOnContentPage) {
- return;
- }
- // 判断当前页面的所属站点是否已经被定义
- this.site = this.getSiteFromHost(window.location.hostname);
+ this.initSiteConfig().then(() => {
+ this.initPlugins();
+ }).catch(() => {
+ APP.debugMode && console.log("initPages 失败");
+ });
+ }
- if (this.site) {
- // 适应多域名
- this.site.url = window.location.origin + "/";
- }
+ /**
+ * 初始化站点配置
+ */
+ private initSiteConfig(): Promise {
+ return new Promise((resolve?: any, reject?: any) => {
+ if (!this.options.showToolbarOnContentPage) {
+ reject();
+ return;
+ }
+ // 判断当前页面的所属站点是否已经被定义
+ this.site = this.getSiteFromHost(window.location.hostname);
- // 如果当前站点未定义,则不再继续操作
- if (this.site && this.site.name) {
- if (typeof this.site.schema === "string") {
- this.schema =
- this.options.system &&
- this.options.system.schemas &&
- this.options.system.schemas.find((item: SiteSchema) => {
- return item.name == this.site.schema;
- });
- } else {
- let site =
- this.options.system &&
- this.options.system.sites &&
- this.options.system.sites.find((item: Site) => {
- return item.host == this.site.host;
- });
- if (site && site.schema && typeof site.schema !== "string") {
- this.schema = site.schema;
- this.schema.siteOnly = true;
+ if (this.site) {
+ // 适应多域名
+ this.site.url = window.location.origin + "/";
+ }
+
+ // 如果当前站点未定义,则不再继续操作
+ if (this.site && this.site.name) {
+ if (typeof this.site.schema === "string") {
+ this.schema =
+ this.options.system &&
+ this.options.system.schemas &&
+ this.options.system.schemas.find((item: SiteSchema) => {
+ return item.name == this.site.schema;
+ });
+ } else {
+ let site =
+ this.options.system &&
+ this.options.system.sites &&
+ this.options.system.sites.find((item: Site) => {
+ return item.host == this.site.host;
+ });
+ if (site && site.schema && typeof site.schema !== "string") {
+ this.schema = site.schema;
+ this.schema.siteOnly = true;
+ }
}
+ // 等待页面选择器加载完成后,再加载插件内容
+ this.initPageSelector().finally(() => {
+ resolve();
+ });
+ } else {
+ reject();
}
- } else {
- return;
- }
+ });
+ }
+ /**
+ * 初始化符合条件的插件
+ */
+ private initPlugins() {
this.positionStorageKey = `pt-plugin-${this.site.host}-position`;
this.scripts = [];
this.styles = [];
-
- this.initPageSelector();
// 初始化插件按钮列表
this.initButtonBar();
this.initDroper();
@@ -949,27 +970,35 @@ class PTPContent {
}
}
- private initPageSelector() {
- this.call(EAction.getSiteSelectorConfig, {
- host: this.site.host,
- name: location.pathname
- })
- .then(result => {
- this.pageSelector = result;
+ /**
+ * 加载页面选择器
+ */
+ private initPageSelector(): Promise {
+ return new Promise((resolve?: any, reject?: any) => {
+ this.call(EAction.getSiteSelectorConfig, {
+ host: this.site.host,
+ name: location.pathname
})
- .catch(() => {
- // 如果没有当前页面的选择器,则尝试获取通用的选择器
- this.call(EAction.getSiteSelectorConfig, {
- host: this.site.host,
- name: "common"
+ .then(result => {
+ this.pageSelector = result;
+ resolve();
})
- .then(result => {
- this.pageSelector = result;
+ .catch(() => {
+ // 如果没有当前页面的选择器,则尝试获取通用的选择器
+ this.call(EAction.getSiteSelectorConfig, {
+ host: this.site.host,
+ name: "common"
})
- .catch(() => {
- // 没有选择器
- });
- });
+ .then(result => {
+ this.pageSelector = result;
+ resolve();
+ })
+ .catch(() => {
+ // 没有选择器
+ resolve();
+ });
+ });
+ });
}
/**
diff --git a/src/options/views/search/SearchTorrent.ts b/src/options/views/search/SearchTorrent.ts
index dba19d12b..cbf8ff505 100644
--- a/src/options/views/search/SearchTorrent.ts
+++ b/src/options/views/search/SearchTorrent.ts
@@ -164,11 +164,11 @@ export default Vue.extend({
const upEvent = "mouseUp.torrentSearch";
$(".search-torrent").off(downEvent);
$(".search-torrent").off(upEvent);
- $(".search-torrent").on(downEvent, e => {
+ $(".search-torrent").on(downEvent, (e) => {
this.shiftKey = e.shiftKey || false;
});
- $(".search-torrent").on(upEvent, e => {
+ $(".search-torrent").on(upEvent, (e) => {
this.shiftKey = false;
});
window.addEventListener("scroll", this.handleScroll);
@@ -376,7 +376,7 @@ export default Vue.extend({
// 豆瓣ID
if (/(douban\d+)/.test(this.key)) {
this.getIMDbIdFromDouban(this.key)
- .then(result => {
+ .then((result) => {
if (typeof result == "string") {
this.searchPayload.imdbId = result;
this.key = result;
@@ -394,7 +394,7 @@ export default Vue.extend({
}
}
})
- .catch(error => {
+ .catch((error) => {
if (searchKeys.cn) {
this.key = searchKeys.cn;
this.search(this.searchPayload);
@@ -454,10 +454,10 @@ export default Vue.extend({
let searchSolution:
| SearchSolution
| undefined = this.options.searchSolutions.find(
- (solution: SearchSolution) => {
- return solution.id === searchSolutionId;
- }
- );
+ (solution: SearchSolution) => {
+ return solution.id === searchSolutionId;
+ }
+ );
if (searchSolution) {
searchSolution.range.forEach((range: SearchSolutionRange) => {
@@ -757,7 +757,7 @@ export default Vue.extend({
searchPayload: this.searchPayload,
result: this.rawDatas
})
- .then(result => {
+ .then((result) => {
this.successMsg = this.$t(
"searchResultSnapshot.createSuccess"
).toString();
@@ -777,7 +777,7 @@ export default Vue.extend({
this.loading = true;
extension
.sendRequest(EAction.getSearchResultSnapshot, null, id)
- .then(data => {
+ .then((data) => {
console.log("loadSearchResultSnapshot", data);
this.key = data.key;
this.searchPayload = data.searchPayload;
@@ -1049,7 +1049,7 @@ export default Vue.extend({
let site = this.options.sites.find((site: Site) => {
// 当定义了CDN列表时,匹配其中之一即可
if (site.cdn) {
- let index = site.cdn.findIndex(cdn => {
+ let index = site.cdn.findIndex((cdn) => {
return cdn.indexOf(host) > -1;
});
if (index > -1) {
@@ -1279,7 +1279,7 @@ export default Vue.extend({
});
file.requestMethod = requestMethod;
- file.onError = (error: any) => {};
+ file.onError = (error: any) => { };
file.start();
},
/**
@@ -1334,7 +1334,7 @@ export default Vue.extend({
this.errorMsg = "";
extension
.sendRequest(EAction.copyTextToClipboard, null, url)
- .then(result => {
+ .then((result) => {
this.successMsg = this.$t(
"searchTorrent.copyLinkToClipboardSuccess"
).toString();
@@ -1360,7 +1360,7 @@ export default Vue.extend({
this.clearMessage();
extension
.sendRequest(EAction.copyTextToClipboard, null, urls.join("\n"))
- .then(result => {
+ .then((result) => {
this.successMsg = this.$t(
"searchTorrent.copySelectedToClipboardSuccess",
{
@@ -1472,10 +1472,10 @@ export default Vue.extend({
`${item.client.name} -> ${item.client.address}` +
(item.path
? ` -> ${this.pathHandler.replacePathKey(
- item.path,
- options.site
- )}`
- : "")
+ item.path,
+ options.site
+ )}`
+ : ""),
}).toString(),
fn: () => {
if (options.url) {
@@ -1517,10 +1517,10 @@ export default Vue.extend({
let title = _this.$vuetify.breakpoint.xs
? item.client.name
: _this
- .$t("searchTorrent.downloadTo", {
- path: `${item.client.name} -> ${item.client.address}`
- })
- .toString();
+ .$t("searchTorrent.downloadTo", {
+ path: `${item.client.name} -> ${item.client.address}`
+ })
+ .toString();
if (item.path) {
title += ` -> ${item.path}`;
@@ -1670,7 +1670,7 @@ export default Vue.extend({
// 过滤标题和副标题
let source = (item.title + (item.subTitle || "")).toLowerCase();
let result = true;
- searchs.forEach(key => {
+ searchs.forEach((key) => {
if (key.trim() != "") {
result = result && source.indexOf(key) > -1;
}
@@ -1761,7 +1761,7 @@ export default Vue.extend({
function getObjectValue(obj: any, path: string) {
return new Function("o", "return o." + path)(obj);
}
- return function(object1: any, object2: any) {
+ return function (object1: any, object2: any) {
var value1 = getObjectValue(object1, field);
var value2 = getObjectValue(object2, field);
if (value1 < value2) {
@@ -1809,7 +1809,7 @@ export default Vue.extend({
extension
.sendRequest(EAction.addTorrentToCollection, null, options)
- .then(result => {
+ .then((result) => {
this.loadTorrentCollections();
console.log(result);
});
@@ -1819,14 +1819,14 @@ export default Vue.extend({
.sendRequest(EAction.deleteTorrentFromCollention, null, {
link: PPF.getCleaningURL(item.link)
})
- .then(result => {
+ .then((result) => {
this.loadTorrentCollections();
});
},
loadTorrentCollections() {
extension
.sendRequest(EAction.getAllTorrentCollectionLinks)
- .then(result => {
+ .then((result) => {
this.torrentCollectionLinks = result;
});
},
@@ -1933,67 +1933,67 @@ export default Vue.extend({
value: this.$store.state.options.searchResultOrderBySitePriority
? "site.priority"
: "site.host",
- visible: this.$vuetify.breakpoint.mdAndUp
+ visible: this.$vuetify.breakpoint.mdAndUp,
},
{
text: this.$t("searchTorrent.headers.title"),
align: "left",
value: "title",
- visible: true
+ visible: true,
},
{
text: this.$t("searchTorrent.headers.category"),
align: "center",
value: "category.name",
width: "150px",
- visible: this.$vuetify.breakpoint.width > 1200
+ visible: this.$vuetify.breakpoint.width > 1200,
},
{
text: this.$t("searchTorrent.headers.size"),
align: "right",
value: "size",
width: "100px",
- visible: this.$vuetify.breakpoint.smAndUp
+ visible: this.$vuetify.breakpoint.smAndUp,
},
{
text: this.$t("searchTorrent.headers.seeders"),
align: "right",
value: "seeders",
width: "60px",
- visible: this.$vuetify.breakpoint.smAndUp
+ visible: this.$vuetify.breakpoint.smAndUp,
},
{
text: this.$t("searchTorrent.headers.leechers"),
align: "right",
value: "leechers",
width: "60px",
- visible: this.$vuetify.breakpoint.mdAndUp
+ visible: this.$vuetify.breakpoint.mdAndUp,
},
{
text: this.$t("searchTorrent.headers.completed"),
align: "right",
value: "completed",
width: "60px",
- visible: this.$vuetify.breakpoint.mdAndUp
+ visible: this.$vuetify.breakpoint.mdAndUp,
},
{
text: this.$t("searchTorrent.headers.time"),
align: "left",
value: "time",
width: "130px",
- visible: this.$vuetify.breakpoint.mdAndUp
+ visible: this.$vuetify.breakpoint.mdAndUp,
},
{
text: this.$t("searchTorrent.headers.action"),
sortable: false,
width: this.$vuetify.breakpoint.mdAndUp ? "130px" : "80px",
align: "center",
- visible: this.$vuetify.breakpoint.smAndUp
- }
+ visible: this.$vuetify.breakpoint.smAndUp,
+ },
];
},
orderHeaders(): Array {
- return this.headers.filter(item => {
+ return this.headers.filter((item) => {
return item.sortable !== false;
});
},
@@ -2017,6 +2017,21 @@ export default Vue.extend({
return true;
}
return false;
+ },
+ // 已选中的种子大小
+ selectedSize(): number {
+ if (this.selected.length > 0) {
+ let totalSize = 0;
+ this.selected.forEach((item: SearchResultItem) => {
+ const size: any = item.size;
+ if (size > 0) {
+ totalSize += size;
+ }
+ });
+
+ return totalSize;
+ }
+ return 0;
}
}
});
diff --git a/src/options/views/search/SearchTorrent.vue b/src/options/views/search/SearchTorrent.vue
index 9f126f98e..f664d5dfd 100644
--- a/src/options/views/search/SearchTorrent.vue
+++ b/src/options/views/search/SearchTorrent.vue
@@ -341,6 +341,7 @@
v-if="$vuetify.breakpoint.smAndUp"
>{{$t('searchTorrent.sendToClient')}} ({{selected.length}})
{{selected.length}}
+ {{ selectedSize | formatSize }}
diff --git a/src/options/views/settings/Backup/Server/Editor.vue b/src/options/views/settings/Backup/Server/Editor.vue
index 799aa17f1..c35e3e432 100644
--- a/src/options/views/settings/Backup/Server/Editor.vue
+++ b/src/options/views/settings/Backup/Server/Editor.vue
@@ -128,7 +128,7 @@ export default Vue.extend({
require: [(v: any) => !!v || "!"],
url: (v: any) => {
return (
- /^(https?):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]$/.test(
+ /^(https?):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;\[\]]+[-A-Za-z0-9+&@#/%=~_|]$/.test(
v
) || this.$t("settings.backup.server.owss.addressTip")
);
diff --git a/src/options/views/settings/DownloadClients/Editor.vue b/src/options/views/settings/DownloadClients/Editor.vue
index 3fc212aca..9ca2fee18 100644
--- a/src/options/views/settings/DownloadClients/Editor.vue
+++ b/src/options/views/settings/DownloadClients/Editor.vue
@@ -93,7 +93,7 @@ export default Vue.extend({
require: [(v: any) => !!v || "!"],
url: (v: any) => {
return (
- /^(https?):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]$/.test(
+ /^(https?):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;\[\]]+[-A-Za-z0-9+&@#/%=~_|]$/.test(
v
) || this.$t("settings.downloadClients.editor.addressTip")
);
diff --git a/src/service/favicon.ts b/src/service/favicon.ts
index a8737690c..38ded5935 100644
--- a/src/service/favicon.ts
+++ b/src/service/favicon.ts
@@ -59,6 +59,11 @@ export class Favicon {
});
}
+ /**
+ * 获取指定站点的图标
+ * @param url 站点地址
+ * @param reset 是否重置
+ */
public get(url: string, reset: boolean = false): Promise {
return new Promise((resolve?: any, reject?: any) => {
let URL = filters.parseURL(url);
@@ -158,7 +163,7 @@ export class Favicon {
link = `${URL.origin}/${link}`;
}
- this.download(`${url}/${link}`)
+ this.download(link)
.then(result => {
if (result && /image/gi.test(result.type)) {
this.transformBlob(result, "base64")
diff --git a/update/index.xml b/update/index.xml
index 946035117..0374cdb47 100644
--- a/update/index.xml
+++ b/update/index.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index c595d7b08..9096460f1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1644,12 +1644,11 @@ aws4@^1.8.0:
integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
axios@^0.19.0:
- version "0.19.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8"
- integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==
+ version "0.19.2"
+ resolved "https://registry.npm.taobao.org/axios/download/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
+ integrity sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc=
dependencies:
follow-redirects "1.5.10"
- is-buffer "^2.0.2"
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
@@ -1702,12 +1701,12 @@ babel-plugin-module-resolver@3.2.0:
balanced-match@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base-64@^0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
+ resolved "https://registry.npm.taobao.org/base-64/download/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
base64-arraybuffer@^0.2.0:
@@ -1751,8 +1750,8 @@ bcrypt-pbkdf@^1.0.0:
bencode@^2.0.0:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/bencode/-/bencode-2.0.1.tgz#667a6a31c5e038d558608333da6b7c94e836c85b"
- integrity sha512-2uhEl8FdjSBUyb69qDTgOEeeqDTa+n3yMQzLW0cOzNf1Ow5bwcg3idf+qsWisIKRH8Bk8oC7UXL8irRcPA8ZEQ==
+ resolved "https://registry.npm.taobao.org/bencode/download/bencode-2.0.1.tgz#667a6a31c5e038d558608333da6b7c94e836c85b"
+ integrity sha1-ZnpqMcXgONVYYIMz2mt8lOg2yFs=
dependencies:
safe-buffer "^5.1.1"
@@ -1802,8 +1801,8 @@ bl@^3.0.0:
blob-to-buffer@^1.2.6:
version "1.2.8"
- resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz#78eeeb332f1280ed0ca6fb2b60693a8c6d36903a"
- integrity sha512-re0AIxakF504MgeMtIyJkVcZ8T5aUxtp/QmTMlmjyb3P44E1BEv5x3LATBGApWAJATyXHtkXRD+gWTmeyYLiQA==
+ resolved "https://registry.npm.taobao.org/blob-to-buffer/download/blob-to-buffer-1.2.8.tgz#78eeeb332f1280ed0ca6fb2b60693a8c6d36903a"
+ integrity sha1-eO7rMy8SgO0MpvsrYGk6jG02kDo=
bluebird@^3.1.1, bluebird@^3.5.5:
version "3.7.2"
@@ -1816,9 +1815,9 @@ bluebird@^3.5.1:
integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
blueimp-md5@^2.10.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.12.0.tgz#be7367938a889dec3ffbb71138617c117e9c130a"
- integrity sha512-zo+HIdIhzojv6F1siQPqPFROyVy7C50KzHv/k/Iz+BtvtVzSHXiMXOpq2wCfNkeBqdCv+V8XOV96tsEt2W/3rQ==
+ version "2.16.0"
+ resolved "https://registry.npm.taobao.org/blueimp-md5/download/blueimp-md5-2.16.0.tgz#9018bb805e4ee05512e0e8cbdb9305eeecbdc87c"
+ integrity sha1-kBi7gF5O4FUS4OjL25MF7uy9yHw=
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
@@ -1860,8 +1859,8 @@ boolbase@^1.0.0, boolbase@~1.0.0:
brace-expansion@^1.1.7:
version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -2495,9 +2494,9 @@ commander@^2.12.1, commander@^2.18.0, commander@^2.20.0, commander@~2.20.3:
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c"
- integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/commander/download/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ integrity sha1-n9YCvZNilOnp70aj9NaWQESxgGg=
commander@~2.19.0:
version "2.19.0"
@@ -2551,7 +2550,7 @@ compression@^1.7.4:
concat-map@0.0.1:
version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.5.0, concat-stream@^1.6.0:
@@ -2652,7 +2651,7 @@ core-js@^2.6.5:
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cosmiconfig@^5.0.0:
@@ -2784,9 +2783,9 @@ crypto-browserify@^3.11.0:
randomfill "^1.0.3"
crypto-js@^3.1.9-1:
- version "3.1.9-1"
- resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8"
- integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b"
+ integrity sha1-hG3RzOL2iqz6FWyFePkmpgm3l2s=
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
@@ -3003,9 +3002,9 @@ dashdash@^1.12.0:
assert-plus "^1.0.0"
dayjs@^1.8.11:
- version "1.8.17"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.17.tgz#53ec413f2a7b02afbea1846d61bb260fa8567cea"
- integrity sha512-47VY/htqYqr9GHd7HW/h56PpQzRBSJcxIQFwqL3P20bMF/3az5c3PWdVY3LmPXFl6cQCYHL7c79b9ov+2bOBbw==
+ version "1.8.27"
+ resolved "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.27.tgz#a8ae63ee990af28c05c430f0e160ae835a0fbbf8"
+ integrity sha1-qK5j7pkK8owFxDDw4WCug1oPu/g=
de-indent@^1.0.2:
version "1.0.2"
@@ -3052,8 +3051,8 @@ decode-uri-component@^0.2.0:
decompress-response@^4.2.0:
version "4.2.1"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
- integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
+ resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
+ integrity sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=
dependencies:
mimic-response "^2.0.0"
@@ -3103,8 +3102,8 @@ defaults@^1.0.3:
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=
dependencies:
object-keys "^1.0.12"
@@ -3442,27 +3441,27 @@ error-stack-parser@^2.0.0:
dependencies:
stackframe "^1.1.0"
-es-abstract@^1.17.0-next.1:
- version "1.17.0-next.1"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172"
- integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==
+es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5:
+ version "1.17.5"
+ resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
+ integrity sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk=
dependencies:
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
has "^1.0.3"
has-symbols "^1.0.1"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
+ is-callable "^1.1.5"
+ is-regex "^1.0.5"
object-inspect "^1.7.0"
object-keys "^1.1.1"
object.assign "^4.1.0"
- string.prototype.trimleft "^2.1.0"
- string.prototype.trimright "^2.1.0"
+ string.prototype.trimleft "^2.1.1"
+ string.prototype.trimright "^2.1.1"
es-to-primitive@^1.2.1:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
- integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
@@ -4119,8 +4118,8 @@ flush-write-stream@^1.0.0:
follow-redirects@1.5.10:
version "1.5.10"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
- integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
+ resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
+ integrity sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=
dependencies:
debug "=3.1.0"
@@ -4238,8 +4237,8 @@ fsevents@~2.1.1:
function-bind@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+ resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=
functional-red-black-tree@^1.0.1:
version "1.0.1"
@@ -4258,8 +4257,8 @@ get-caller-file@^2.0.1:
get-stdin@^7.0.0:
version "7.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
- integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
+ resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
+ integrity sha1-jV3pjxUXGhJcXlFmQ8em0OqKlvY=
get-stream@^3.0.0:
version "3.0.0"
@@ -4479,8 +4478,8 @@ has-flag@^4.0.0:
has-symbols@^1.0.0, has-symbols@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
- integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+ resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=
has-value@^0.3.1:
version "0.3.1"
@@ -4515,8 +4514,8 @@ has-values@^1.0.0:
has@^1.0.0, has@^1.0.3:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=
dependencies:
function-bind "^1.1.1"
@@ -4596,8 +4595,8 @@ hosted-git-info@^2.1.4:
hot-patcher@^0.5.0:
version "0.5.0"
- resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-0.5.0.tgz#9d401424585aaf3a91646b816ceff40eb6a916b9"
- integrity sha512-2Uu2W0s8+dnqXzdlg0MRsRzPoDCs1wVjOGSyMRRaMzLDX4bgHw6xDYKccsWafXPPxQpkQfEjgW6+17pwcg60bw==
+ resolved "https://registry.npm.taobao.org/hot-patcher/download/hot-patcher-0.5.0.tgz#9d401424585aaf3a91646b816ceff40eb6a916b9"
+ integrity sha1-nUAUJFharzqRZGuBbO/0DrapFrk=
hpack.js@^2.1.6:
version "2.1.6"
@@ -4806,7 +4805,7 @@ ignore@^4.0.3, ignore@^4.0.6:
immediate@~3.0.5:
version "3.0.6"
- resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+ resolved "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
import-cwd@^2.0.0:
@@ -5037,15 +5036,10 @@ is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-buffer@^2.0.2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
- integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
-
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
- integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+is-callable@^1.1.4, is-callable@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
+ integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=
is-ci@^1.0.10:
version "1.2.1"
@@ -5081,9 +5075,9 @@ is-data-descriptor@^1.0.0:
kind-of "^6.0.0"
is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=
is-descriptor@^0.1.0:
version "0.1.6"
@@ -5214,10 +5208,10 @@ is-redirect@^1.0.0:
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
-is-regex@^1.0.4:
+is-regex@^1.0.4, is-regex@^1.0.5:
version "1.0.5"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
- integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
+ resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
+ integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=
dependencies:
has "^1.0.3"
@@ -5250,8 +5244,8 @@ is-svg@^3.0.0:
is-symbol@^1.0.2:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
- integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+ resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=
dependencies:
has-symbols "^1.0.1"
@@ -5272,7 +5266,7 @@ is-wsl@^1.1.0:
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
@@ -5432,9 +5426,9 @@ jsprim@^1.2.2:
verror "1.10.0"
jszip@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d"
- integrity sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==
+ version "3.4.0"
+ resolved "https://registry.npm.taobao.org/jszip/download/jszip-3.4.0.tgz#1a69421fa5f0bb9bc222a46bca88182fba075350"
+ integrity sha1-GmlCH6Xwu5vCIqRryogYL7oHU1A=
dependencies:
lie "~3.3.0"
pako "~1.0.2"
@@ -5509,8 +5503,8 @@ levn@^0.3.0, levn@~0.3.0:
lie@~3.3.0:
version "3.3.0"
- resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
- integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
+ resolved "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
+ integrity sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=
dependencies:
immediate "~3.0.5"
@@ -5687,8 +5681,8 @@ lru-cache@^5.1.1:
magnet-uri@^5.1.3:
version "5.2.4"
- resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz#7afe5b736af04445aff744c93a890a3710077688"
- integrity sha512-VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg==
+ resolved "https://registry.npm.taobao.org/magnet-uri/download/magnet-uri-5.2.4.tgz#7afe5b736af04445aff744c93a890a3710077688"
+ integrity sha1-ev5bc2rwREWv90TJOokKNxAHdog=
dependencies:
thirty-two "^1.0.1"
uniq "^1.0.1"
@@ -5815,11 +5809,6 @@ merge2@^1.2.3:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
-merge@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
- integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
-
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -5885,9 +5874,9 @@ mimic-fn@^2.0.0, mimic-fn@^2.1.0:
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mimic-response@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46"
- integrity sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/mimic-response/download/mimic-response-2.1.0.tgz?cache=0&sync_timestamp=1589481326973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
+ integrity sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=
mini-css-extract-plugin@^0.8.0:
version "0.8.0"
@@ -5911,8 +5900,8 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
dependencies:
brace-expansion "^1.1.7"
@@ -6024,7 +6013,7 @@ mri@^1.1.4:
ms@2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
ms@2.1.1:
@@ -6274,8 +6263,8 @@ object-hash@^1.1.4:
object-inspect@^1.7.0:
version "1.7.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
- integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
+ resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
+ integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=
object-is@^1.0.1:
version "1.0.1"
@@ -6284,8 +6273,8 @@ object-is@^1.0.1:
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+ resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4=
object-visit@^1.0.0:
version "1.0.1"
@@ -6296,18 +6285,18 @@ object-visit@^1.0.0:
object.assign@^4.1.0:
version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.1"
has-symbols "^1.0.0"
object-keys "^1.0.11"
-object.getownpropertydescriptors@^2.0.3:
+object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
- integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
+ resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
@@ -6527,7 +6516,12 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-pako@~1.0.2, pako@~1.0.5:
+pako@~1.0.2:
+ version "1.0.11"
+ resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=
+
+pako@~1.0.5:
version "1.0.10"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
@@ -6591,9 +6585,9 @@ parse-passwd@^1.0.0:
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
parse-torrent@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-7.0.1.tgz#669c51a95363550055c7de0957741d6a05575daf"
- integrity sha512-FdF1kBImRLt+ICV4NTz8L+sI2hFlPXAq1tXuw21gKz8EuThyVUFJ/wPfBEyYQrvnBpmGf7cM/LVSOhMRe8MrKw==
+ version "7.1.3"
+ resolved "https://registry.npm.taobao.org/parse-torrent/download/parse-torrent-7.1.3.tgz#5981a0d9381b16297a7af053763068e8da5c9610"
+ integrity sha1-WYGg2TgbFil6evBTdjBo6NpclhA=
dependencies:
bencode "^2.0.0"
blob-to-buffer "^1.2.6"
@@ -6601,7 +6595,6 @@ parse-torrent@^7.0.1:
magnet-uri "^5.1.3"
simple-get "^3.0.1"
simple-sha1 "^3.0.0"
- uniq "^1.0.1"
parse5-htmlparser2-tree-adapter@^5.1.1:
version "5.1.1"
@@ -6679,7 +6672,7 @@ path-parse@^1.0.6:
path-posix@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f"
+ resolved "https://registry.npm.taobao.org/path-posix/download/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f"
integrity sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8=
path-to-regexp@0.1.7:
@@ -7176,8 +7169,8 @@ private@^0.1.6:
process-nextick-args@~2.0.0:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+ resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I=
process@^0.11.10:
version "0.11.10"
@@ -7308,13 +7301,13 @@ querystring@0.2.0:
querystringify@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
- integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
+ resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
+ integrity sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=
queue-microtask@^1.1.2:
version "1.1.2"
- resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.1.2.tgz#139bf8186db0c545017ec66c2664ac646d5c571e"
- integrity sha512-F9wwNePtXrzZenAB3ax0Y8TSKGvuB7Qw16J30hspEUTbfUM+H827XyN3rlpwhVmtm5wuZtbKIHjOnwDn7MUxWQ==
+ resolved "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.1.2.tgz#139bf8186db0c545017ec66c2664ac646d5c571e"
+ integrity sha1-E5v4GG2wxUUBfsZsJmSsZG1cVx4=
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0"
@@ -7356,7 +7349,7 @@ read-pkg@^5.0.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
@@ -7378,6 +7371,19 @@ readable-stream@^3.0.1, readable-stream@^3.0.6, readable-stream@^3.1.1, readable
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -7591,7 +7597,7 @@ requireindex@~1.1.0:
requires-port@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
reselect@^3.0.1:
@@ -7714,7 +7720,7 @@ run-queue@^1.0.0, run-queue@^1.0.3:
rusha@^0.8.1:
version "0.8.13"
- resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a"
+ resolved "https://registry.npm.taobao.org/rusha/download/rusha-0.8.13.tgz#9a084e7b860b17bff3015b92c67a6a336191513a"
integrity sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=
rx-lite-aggregates@^4.0.8:
@@ -7738,14 +7744,19 @@ rxjs@^6.4.0:
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+ resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0=
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.1.1:
+ version "5.2.1"
+ resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -7888,7 +7899,7 @@ set-blocking@^2.0.0:
set-immediate-shim@~1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+ resolved "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
set-value@^2.0.0, set-value@^2.0.1:
@@ -7967,13 +7978,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
simple-concat@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
+ resolved "https://registry.npm.taobao.org/simple-concat/download/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
simple-get@^3.0.1:
version "3.1.0"
- resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
- integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
+ resolved "https://registry.npm.taobao.org/simple-get/download/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
+ integrity sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=
dependencies:
decompress-response "^4.2.0"
once "^1.3.1"
@@ -7981,8 +7992,8 @@ simple-get@^3.0.1:
simple-sha1@^3.0.0:
version "3.0.1"
- resolved "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-3.0.1.tgz#b34c3c978d74ac4baf99b6555c1e6736e0d6e700"
- integrity sha512-q7ehqWfHc1VhOm7sW099YDZ4I0yYX7rqyhqqhHV1IYeUTjPOhHyD3mXvv8k2P+rO7+7c8R4/D+8ffzC9BE7Cqg==
+ resolved "https://registry.npm.taobao.org/simple-sha1/download/simple-sha1-3.0.1.tgz#b34c3c978d74ac4baf99b6555c1e6736e0d6e700"
+ integrity sha1-s0w8l410rEuvmbZVXB5nNuDW5wA=
dependencies:
queue-microtask "^1.1.2"
rusha "^0.8.1"
@@ -8333,21 +8344,39 @@ string.prototype.padstart@^3.0.0:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
-string.prototype.trimleft@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
- integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
+string.prototype.trimend@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
+ es-abstract "^1.17.5"
-string.prototype.trimright@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
- integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
+string.prototype.trimleft@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
+ integrity sha1-RAiqLl1t3QyagHObCH+8BnwDs8w=
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
+ es-abstract "^1.17.5"
+ string.prototype.trimstart "^1.0.0"
+
+string.prototype.trimright@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"
+ integrity sha1-x28c7zDyG7rYr+uNsVEUls+w8qM=
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+ string.prototype.trimend "^1.0.0"
+
+string.prototype.trimstart@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.3.0"
@@ -8358,8 +8387,8 @@ string_decoder@^1.0.0, string_decoder@^1.1.1:
string_decoder@~1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
dependencies:
safe-buffer "~5.1.0"
@@ -8589,7 +8618,7 @@ thenify-all@^1.0.0:
thirty-two@^1.0.1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
+ resolved "https://registry.npm.taobao.org/thirty-two/download/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno=
thread-loader@^2.1.2:
@@ -8832,9 +8861,9 @@ typescript@^3.0.0:
integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==
ua-parser-js@^0.7.20:
- version "0.7.20"
- resolved "https://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
- integrity sha1-dScXi4L2pioPJD0flP0w4+PCEJg=
+ version "0.7.21"
+ resolved "https://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"
+ integrity sha1-hTz5zpP2QvZxdCc8w0Vlrm8wh3c=
uglify-js@3.4.x:
version "3.4.10"
@@ -8910,7 +8939,7 @@ union-value@^1.0.0:
uniq@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ resolved "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
uniqs@^2.0.0:
@@ -8983,8 +9012,8 @@ urix@^0.1.0:
url-join@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
- integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
+ resolved "https://registry.npm.taobao.org/url-join/download/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
+ integrity sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=
url-loader@^1.1.2:
version "1.1.2"
@@ -9028,7 +9057,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-util.promisify@1.0.0, util.promisify@~1.0.0:
+util.promisify@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
@@ -9036,6 +9065,16 @@ util.promisify@1.0.0, util.promisify@~1.0.0:
define-properties "^1.1.2"
object.getownpropertydescriptors "^2.0.3"
+util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha1-a693dLgO6w91INi4HQeYKlmruu4=
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
+
util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
@@ -9140,9 +9179,9 @@ vue-hot-reload-api@^2.3.0:
integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
vue-i18n@^8.11.2:
- version "8.15.1"
- resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.15.1.tgz#90097a08a1e932f645c6b9c404c780d24f6d6224"
- integrity sha512-GBbz8qYCu0U2LNu4IcuFLZiuyninG4k26knvhL7GZG5Ncp4RR2VKDEH6g8gQ6I+UUBCvH2MBQVPSdxWe4DBkPw==
+ version "8.17.6"
+ resolved "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.17.6.tgz#eb894dc1db7f69f505a8df5fed37f8d10aa10980"
+ integrity sha1-64lNwdt/afUFqN9f7Tf40QqhCYA=
vue-loader@^15.7.0:
version "15.7.2"
@@ -9162,9 +9201,9 @@ vue-property-decorator@^7.0.0:
vue-class-component "^6.2.0"
vue-router@^3.0.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b"
- integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ==
+ version "3.2.0"
+ resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.2.0.tgz#da35195ffe37fdf0bec9f5f8f72781d2a7718815"
+ integrity sha1-2jUZX/43/fC+yfX49yeB0qdxiBU=
vue-style-loader@^4.1.0:
version "4.1.2"
@@ -9200,14 +9239,14 @@ vuetify-loader@^1.0.5:
loader-utils "^1.2.0"
vuetify@^1.3.0:
- version "1.5.21"
- resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-1.5.21.tgz#e62b4f3b23fc9db39abf340cc9abea3e3859a051"
- integrity sha512-x0F2mNoWMXVA2ntrmvfjJFU2elaq2WK1tD9wOBu447xUHdZqswziFD82pNtmWRy3TjEXsLj/ZNO8e5dZig+Iqg==
+ version "1.5.24"
+ resolved "https://registry.npm.taobao.org/vuetify/download/vuetify-1.5.24.tgz#d5cf6e7289570d5d05f8832a097cd435d36d37df"
+ integrity sha1-1c9ucolXDV0F+IMqCXzUNdNtN98=
vuex@^3.0.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
- integrity sha512-ha3jNLJqNhhrAemDXcmMJMKf1Zu4sybMPr9KxJIuOpVcsDQlTBYLLladav2U+g1AvdYDG5Gs0xBTb0M5pXXYFQ==
+ version "3.4.0"
+ resolved "https://registry.npm.taobao.org/vuex/download/vuex-3.4.0.tgz#20cc086062d750769fce1febb34e7fceeaebde45"
+ integrity sha1-IMwIYGLXUHafzh/rs05/zurr3kU=
watchpack@^1.6.0:
version "1.6.0"
@@ -9233,14 +9272,13 @@ wcwidth@^1.0.1:
defaults "^1.0.3"
webdav@^2.10.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/webdav/-/webdav-2.10.0.tgz#96601aafa0a16ad1410dc734285817efbc7f101d"
- integrity sha512-wwvVL8IINaQlhHJb2b4z0K1V8nFO5XR+HB+epGfFc2JXqeRRAD68ksq94jl54/JdkHKAr5nlvU9JpW8GML8yBw==
+ version "2.10.2"
+ resolved "https://registry.npm.taobao.org/webdav/download/webdav-2.10.2.tgz#caaa3da2141e742d13e763da960bb413600e0e24"
+ integrity sha1-yqo9ohQedC0T52Palgu0E2AODiQ=
dependencies:
axios "^0.19.0"
base-64 "^0.1.0"
hot-patcher "^0.5.0"
- merge "^1.2.1"
minimatch "^3.0.4"
path-posix "^1.0.0"
url-join "^4.0.1"
@@ -9475,7 +9513,7 @@ wrap-ansi@^6.2.0:
wrappy@1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write@1.0.3:
@@ -9500,18 +9538,17 @@ ws@^6.0.0, ws@^6.2.1:
async-limiter "~1.0.0"
xml2js@^0.4.19:
- version "0.4.22"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz#4fa2d846ec803237de86f30aa9b5f70b6600de02"
- integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==
+ version "0.4.23"
+ resolved "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
+ integrity sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=
dependencies:
sax ">=0.6.0"
- util.promisify "~1.0.0"
xmlbuilder "~11.0.0"
xmlbuilder@~11.0.0:
version "11.0.1"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
- integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+ resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
+ integrity sha1-vpuuHIoEbnazESdyY0fQrXACvrM=
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"