diff --git a/resource/sites/bitbr/config.json b/resource/sites/bitbr/config.json index 340f1d1bb..e86ce7ded 100644 --- a/resource/sites/bitbr/config.json +++ b/resource/sites/bitbr/config.json @@ -5,7 +5,7 @@ "url": "https://bitbr.cc/", "icon": "https://bitbr.cc/favicon.ico", "tags": [ - "影视", + "综合", "成人" ], "host": "bitbr.cc", diff --git a/resource/sites/sportscult.org/config.json b/resource/sites/sportscult.org/config.json new file mode 100644 index 000000000..7c0355dea --- /dev/null +++ b/resource/sites/sportscult.org/config.json @@ -0,0 +1,451 @@ +{ + "name": "sportscult", + "timezoneOffset": "+0000", + "description": "sportscult", + "url": "https://sportscult.org/", + "icon": "https://sportscult.org/favicon.ico", + "tags": [ + "体育" + ], + "schema": "Common", + "collaborator": "枕头啊枕头", + "plugins": [ + { + "name": "种子详情页面", + "pages": [ + "/index.php" + ], + "scripts": [ + "/schemas/NexusPHP/common.js", + "details.js" + ] + } + ], + "host": "sportscult.org", + "searchEntryConfig": { + "page": "/index.php?page=torrents", + "queryString": "search=$key$&active=0", + "resultType": "html", + "resultSelector": "#bodyarea > table > tbody > tr > td:nth-child(2) > div > .block-content > div > div > div table:nth-child(4) > tbody > tr:nth-child(2) > td > table > tbody > tr:not(:first-child)", + "dataRowSelector": " > tbody > tr:not(:first-child)", + "fieldIndex": { + "title": 1, + "link": 1, + "url": 2, + "time": 4, + "size": 3, + "seeders": 5, + "leechers": 6, + "completed": 7 + }, + "fieldSelector": { + "title": { + "selector": [ + "" + ], + "filters": [ + "query.get(0).firstChild", + "query.nodeValue||query.innerText||0" + ] + }, + "link": { + "selector": [ + "" + ], + "filters": [ + "query.children().attr('href')", + "'https://sportscult.org/'+query" + ] + }, + "url": { + "selector": [ + "" + ], + "filters": [ + "query.children().attr('href')", + "'https://sportscult.org/'+query" + ] + } + } + }, + "searchEntry": [ + { + "name": "全部", + "enabled": true + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=47&active=1&gold=0", + "name": "EPL", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=41&active=1&gold=0", + "name": "American Football", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=54", + "name": "AutoMotoRacing", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=17", + "name": "Athletics", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=51", + "name": "Baseball", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=34", + "name": "Bodybuilding/Fitness", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=50", + "name": "Golf", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=29", + "name": "Boxing", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=19", + "name": "BrainGames", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=36", + "name": "BreakDance", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=40", + "name": "Golf", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=23", + "name": "Cycling", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=31", + "name": "Documentary", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=1", + "name": "European Basketball", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=6", + "name": "European Soccer", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=37", + "name": "Extreme Sports", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=9", + "name": "Fight Sports", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=32", + "name": "Formula1", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=45", + "name": "GAA (Gaelic)", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=8", + "name": "Golf", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=22", + "name": "Gymnastics", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=39", + "name": "Handball", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=2", + "name": "International Basket", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=25", + "name": "IceHockey", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=4", + "name": "International Soccer", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=42", + "name": "KHL", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=35", + "name": "KickBoxing/Muay Thai", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=43", + "name": "La Liga", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=15", + "name": "MotorSport", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=24", + "name": "MLB/Baseball", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=28", + "name": "MMA", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=11", + "name": "NBA/WNBA", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=3", + "name": "NCAA Basket/Football", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=5", + "name": "NFL", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=27", + "name": "NHL", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=26", + "name": "Olympic games", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=7", + "name": "Rugby", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=44", + "name": "Serie A", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=38", + "name": "Snooker/Pool", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=30", + "name": "Streetball", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=18", + "name": "Swimming/Aquatics", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=46", + "name": "AFL(AustralianFB)", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=12", + "name": "Tennis", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=20", + "name": "Volleyball/Beach", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=21", + "name": "Weightlifting", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=16", + "name": "WinterSport", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=33", + "name": "Wrestling/Grapling", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=48", + "name": "Uncategorised", + "enabled": false + }, + { + "queryString": "index.php?page=torrents&search=$key$&category=53", + "name": "Cricket", + "enabled": false + } + ], + "torrentTagSelectors": [ + { + "name": "Free", + "selector": "img[src='gold/gold.gif']" + }, + { + "name": "50%", + "selector": "img[src='gold/silver.gif']" + } + ], + "selectors": { + "userBaseInfo": { + "page": "/index.php", + "merge": true, + "fields": { + "id": { + "selector": "a[href*='index.php?page=usercp']:first", + "attribute": "href", + "filters": [ + "query ? query.getQueryString('uid'):''" + ] + }, + "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" + ] + } + } + }, + "userExtendInfo" :{ + "page": "/index.php?page=usercp&uid=$user.id$", + "merge": true, + "fields": { + "uploaded": { + "selector": "td.header:contains('Uploaded:') + td", + "filters": [ + "(query && query.length > 0) ? query.text().sizeToNumber():0" + ] + }, + "downloaded": { + "selector": "td.header:contains('Downloaded:') + td", + "filters": [ + "(query && query.length > 0) ? query.text().sizeToNumber():0" + ] + }, + "ratio": { + "selector": "td.header:contains('Ratio:') + td", + "filters": [ + "parseFloat(query.text().trim())" + ] + }, + "levelName": { + "selector": "td.header:contains('Rank:') + td" + }, + "bonus": { + "selector": [ + "td.green:contains('Bonus')" + ], + "filters": [ + "query.text().replace('(Bonus ','').replace(')','')" + ] + }, + "seeding": { + "value": "N/A" + }, + "seedingSize": { + "value": -1 + }, + "name": { + "selector": "td.header:contains('User') + td" + }, + "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 + } +} \ No newline at end of file diff --git a/resource/sites/sportscult.org/details.js b/resource/sites/sportscult.org/details.js new file mode 100644 index 000000000..2ca98054a --- /dev/null +++ b/resource/sites/sportscult.org/details.js @@ -0,0 +1,146 @@ +(function ($, window) { + if(/\?page\=torrent-details/.test(window.location.search)){ + 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)){ + console.log("this is torrents.js"); + 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) > div > .block-content > div > div > div table:nth-child(4) > 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( + $("#bodyarea > table > tbody > tr > td:nth-child(2) > div > .block-content > div > div > div table:nth-child(4) > tbody > tr:nth-child(2) > td > table").find( + "td:contains('MB'),td:contains('GB'),td:contains('TB'),td:contains('MiB'),td:contains('GiB'),td:contains('TiB')" + ) + ); + } + + + /** + * 下载拖放的种子 + * @param {*} data + * @param {*} callback + */ + downloadFromDroper(data, callback) { + if (typeof data === "string") { + data = { + url: data, + title: "" + }; + } + + console.log(data); + + if (!data.url) { + PTService.showNotice({ + msg: this.t("invalidURL") //"无效的链接" + }); + callback(); + return; + } + + if (data.url.substr(0, 1) === "/") { + data.url = `${location.origin}${data.url}`; + } else if (data.url.substr(0, 4) !== "http") { + data.url = `${location.origin}/${data.url}`; + } + + this.sendTorrentToDefaultClient(result) + .then(result => { + callback(result); + }) + .catch(result => { + callback(result); + }); + } + } + new App().init(); + } +})(jQuery, window); \ No newline at end of file