- // ==UserScript==
- // @name PT Copy Seed Info
- // @version 0.2
- // @description 复制PT详情页的信息便于转载,简介部分自动转为 BBCode 格式,可以点击标题、副标题、详情部分进行复制,目前支持 HDHome、PTHome、南洋、柠檬、杜比、烧包、BTSchool
- // @author zhangnew
- // @namespace https://zhangnew.com/
- // @homepage https://zhangnew.com/
- // @match https://www.pthome.net/details.php?id=*
- // @match https://pt.btschool.club/details.php?id=*
- // @match https://hdhome.org/details.php?id=*
- // @match https://nanyangpt.com/details.php?id=*
- // @match https://leaguehd.com/details.php?id=*
- // @match https://www.hddolby.com/details.php?id=*
- // @match https://ptsbao.club/details.php?id=*
-
- // @require https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js
- // @require https://cdn.jsdelivr.net/npm/toastr@2.1.4/toastr.min.js
- // @resource toastr_css https://cdn.jsdelivr.net/npm/toastr@2.1.4/build/toastr.min.css
-
- // @grant GM_addStyle
- // @grant GM_getResourceText
- // @grant GM_notification
- // @grant GM_setClipboard
- // ==/UserScript==
-
- GM_addStyle(GM_getResourceText('toastr_css'));
- toastr.options.timeOut = 5000;
-
- (function() {
- 'use strict';
-
- var kdescr_origin = document.getElementById('kdescr');
- var kdescr = kdescr_origin.cloneNode(true);
- // 去掉声明部分
- var sm = kdescr.getElementsByTagName('div')[0];
- if(sm && sm.id === 'ad_torrentdetail'){
- kdescr.removeChild(sm);
- }
- if(window.location.host.indexOf('nanyangpt') > -1){
- kdescr.removeChild(kdescr.getElementsByTagName('fieldset')[0]);
- }
- if(window.location.host.indexOf('leaguehd') > -1){
- var b = kdescr.getElementsByTagName('b');
- kdescr.removeChild(b[b.length-1]);
- }
- if(window.location.host.indexOf('ptsbao') > -1){
- var fieldset = kdescr.getElementsByTagName('fieldset');
- kdescr.removeChild(fieldset[fieldset.length-1]);
- kdescr.removeChild(fieldset[fieldset.length-1]);
- }
-
- var BBCode = htmlToBBCode(kdescr.innerHTML);
- addCopyFun(kdescr_origin, '简介', BBCode);
-
- var title = document.getElementById('top');
- var title_content = title.innerHTML.split(' ')[0];
- addCopyFun(title, '标题', title_content);
-
- var title_2 = document.getElementsByClassName('rowfollow')[1];
- if(window.location.host.indexOf('ptsbao') > -1){
- title_2 = document.getElementsByClassName('rowfollow')[2];
- }
- var title_2_content = title_2.innerText;
- addCopyFun(title_2, '副标题', title_2_content);
-
- toastr.success('PT Copy Seed Info 已激活.');
-
- function addCopyFun(el, type, content) {
- el.addEventListener('click',(event) => {
- //toastr.info(event.target.id);
- GM_setClipboard(content);
- toastr.success(type + ":复制成功");
- });
- };
-
- function htmlToBBCode(html) {
- html = html.replace(/<pre(.*?)>(.*?)<\/pre>/gmi, "[code]$2[/code]");
-
- html = html.replace(/<h[1-7](.*?)>(.*?)<\/h[1-7]>/, "\n[h]$2[/h]\n");
-
- html = html.replace(/<br(.*?)>/gi, "\n");
- html = html.replace(/<textarea(.*?)>(.*?)<\/textarea>/gmi, "\[code]$2\[\/code]");
- html = html.replace(/<b>/gi, "[b]");
- html = html.replace(/<i>/gi, "[i]");
- html = html.replace(/<u>/gi, "[u]");
- html = html.replace(/<\/b>/gi, "[/b]");
- html = html.replace(/<\/i>/gi, "[/i]");
- html = html.replace(/<\/u>/gi, "[/u]");
- html = html.replace(/<em>/gi, "[b]");
- html = html.replace(/<\/em>/gi, "[/b]");
-
- html = html.replace(/<legend>(.*?)<\/legend>/gmi, ""); //删除"引用"两个字
- html = html.replace(/<fieldset>/gi, "[quote]"); //处理引用
- html = html.replace(/<\/fieldset>/gi, "[/quote]");
-
- html = html.replace(/<strong>/gi, "[b]");
- html = html.replace(/<\/strong>/gi, "[/b]");
- html = html.replace(/<cite>/gi, "[i]");
- html = html.replace(/<\/cite>/gi, "[/i]");
- html = html.replace(/<font color="(.*?)">(.*?)<\/font>/gmi, "[color=$1]$2[/color]");
- html = html.replace(/<font color=(.*?)>(.*?)<\/font>/gmi, "[color=$1]$2[/color]");
- html = html.replace(/<link(.*?)>/gi, "");
- html = html.replace(/<li(.*?)>(.*?)<\/li>/gi, "[*]$2");
- html = html.replace(/<ul(.*?)>/gi, "[list]");
- html = html.replace(/<\/ul>/gi, "[/list]");
- html = html.replace(/<div>/gi, "\n");
- html = html.replace(/<\/div>/gi, "\n");
- html = html.replace(/<td(.*?)>/gi, " ");
- html = html.replace(/<tr(.*?)>/gi, "\n");
-
- html = html.replace(/<img(.*?)src="(.*?)"(.*?)>/gi, "[img]$2[/img]");
- html = html.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, "[url=$2]$4[/url]");
-
- html = html.replace(/<head>(.*?)<\/head>/gmi, "");
- html = html.replace(/<object>(.*?)<\/object>/gmi, "");
- html = html.replace(/<script(.*?)>(.*?)<\/script>/gmi, "");
- html = html.replace(/<style(.*?)>(.*?)<\/style>/gmi, "");
- html = html.replace(/<title>(.*?)<\/title>/gmi, "");
- html = html.replace(/<!--(.*?)-->/gmi, "\n");
-
- html = html.replace(/\/\//gi, "/");
- html = html.replace(/http:\//gi, "http://");
- html = html.replace(/https:\//gi, "https://");
-
- html = html.replace(/<(?:[^>'"]*|(['"]).*?\1)*>/gmi, "");
- html = html.replace(/\r\r/gi, "");
- html = html.replace(/\[img]\//gi, "[img]");
- html = html.replace(/\[url=\//gi, "[url=");
-
- html = html.replace(/(\S)\n/gi, "$1 ");
-
- html = html.replace(/\s /gi, " "); //处理简介里面的 IMDb 链接
-
- return html;
- };
- })();