您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Implements "ignore user", quote posts on reply, and visual improvements on the gw2wvw.net forum.
// ==UserScript== // @name GW2WvW.net PvF Expansion Pack 0.5 // @namespace http://www.gw2wvw.net/ // @version 0.5.2 // @description Implements "ignore user", quote posts on reply, and visual improvements on the gw2wvw.net forum. // @author Anvil Pants // @include http://www.gw2wvw.net/* // @grant metadata // @grant GM_getValue // @grant GM_setValue // @run-at document-start // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.js // ==/UserScript== (function ($) { var oldGetStlyes = $.fn.getStyles; jQuery.fn.getStyles = function( elem ) { // Support: IE<=11+, Firefox<=30+ (#15098, #14150) // IE throws on elements created in popups // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" if ( elem.ownerDocument.defaultView.opener ) { return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); } return unsafeWindow.getComputedStyle( elem, null ); }; })(jQuery); // overload isn't working yet /** * Setup */ pvfExpansion = { 'var': { start: new Date().getTime(), session: sessionStorage }, init: function () { if (document.readyState == "interactive") { // Add CSS pvfExpansion.addStyle(); } if (document.readyState == "complete") { //pvfExpansion.cleanerMarkup(); // paths where forum-style content appears if (document.location.href.match(/^http\:\/\/www\.gw2wvw\.net\/(?:comment\/|content\/|topic\/|user$|users\/)/i)) { // hide ignored user posts pvfExpansion.fuckThoseGuys(); pvfExpansion.addForumPostHyperinks(); } pvfExpansion.scrollListener(); } }, addForumPostHyperinks: function() { var searchNodes = document.evaluate("//a[@class='username']", document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null); var resultNodes = []; while (aResult = searchNodes.iterateNext()) { resultNodes.push(aResult); } for (var i in resultNodes) { if ($(resultNodes[i].parentNode).hasClass('author-pane-line')) { var newContainer = document.createElement('div'); newContainer.setAttribute('class', 'author-pane-line author-pane-link-line'); // $(newContainer).insertAfter(resultNodes[i].parentNode); $(resultNodes[i].parentNode.parentNode).append(newContainer); var ignoreLink = document.createElement('a'); ignoreLink.setAttribute('class', 'author-pane-line author-pane-link'); ignoreLink.setAttribute('href', ''); ignoreLink.innerHTML = 'Ignore'; $(ignoreLink).click({asshole: resultNodes[i].innerHTML},function(e){ e.preventDefault(); // in case "works for me" turns to shit // http://stackoverflow.com/questions/24642541/gm-getvalue-is-not-defined-in-injected-code //console.log("GM_setValue: ", GM_setValue("extra_markdown", true) ); if(pvfExpansion.addIgnoreList(e.data.asshole)) { pvfExpansion.fuckThoseGuys(); } }); newContainer.appendChild(ignoreLink); } } }, addForumPostQuote: function() { if (document.location.href.match(/^http\:\/\/www\.gw2wvw\.net\/comment\/reply\/.*?/i)) { // duplicated from cleanerMarkup() $('div.forum-post').find('blockquote').show(); $('div.forum-post').find('div.quote-snip').remove(); var quotedAuthor = $('div.author-name > a.username').text(); var quotedPost = $('div.field-name-comment-body > div.field-items > div.field-item').html(); if (quotedPost === undefined) { quotedPost = $('div.field-name-body > div.field-items > div.field-item').html(); } //console.log(quotedPost); quotedPost = quotedPost.replace(/<p><\/p>|<p>\ \;<\/p>|\ \;/gi,' '); quotedPost = quotedPost.replace(/<br> ?</gi,'<'); quotedPost = quotedPost.replace(/> ?<br>/gi,'>'); //console.log(quotedPost); var quoteBuilt = '[quote='+quotedAuthor+']'+quotedPost+'<p>[/quote]</p><p></p>'; //console.log(quoteBuilt); $('div#edit-comment-body').css(['visibility', 'display'], ['hidden','none']); var ckeditorWaitStop = 50; var ckeditorWait = setInterval(function(){ ckeditorWaitStop++; if((CKEDITOR.instances['edit-comment-body-und-0-value'].status === 'ready') || (ckeditorWaitStop > 25)) { //var ckeditorConfig = JSON.stringify(CKEDITOR.instances['edit-comment-body-und-0-value'].config); CKEDITOR.instances['edit-comment-body-und-0-value'].destroy(true); //CKEDITOR.replace('edit-comment-body-und-0-value', ckeditorConfig); CKEDITOR.replace('edit-comment-body-und-0-value'); CKEDITOR.instances['edit-comment-body-und-0-value'].setData(quoteBuilt); $('input#edit-submit').toggleClass('form-disabled', false).removeAttr('disabled'); clearInterval(ckeditorWait); } }, 100); $('div#edit-comment-body').css(['visibility', 'display'], ['visible','block']); console.log(CKEDITOR.instances['edit-comment-body-und-0-value']); } }, addStyle: function() { var css = document.createElement("style"); css.media = 'all'; css.type = 'text/css'; css.innerHTML = pvfExpansion.var.css; document.querySelector('head').appendChild(css); }, cleanerMarkup: function() { // forum posts: div.forum-post // user page user comments: div.view-userposts li.views-row // user page user content: div.view-usercontent div.node $('div.forum-post, div.view-userposts li.views-row, div.view-usercontent div.node').each(function(i){ var postId = $(this).attr('id'); if ((postId === 'undefined') || !postId) { postId = 'fake-post-id-'+i; } // the "snip" feature is replaced $(this).find('blockquote').show(); $(this).find('div.quote-snip').remove(); // text not wrapped in <p> $(this).find('div.field-item, blockquote, div.author-signature').contents() .filter(function() { // a non-empty text node return ((this.nodeType === 3) && (this.nodeValue) && (this.nodeValue.trim() !== '')); }) .wrap('<p></p>').end(); // pilcrow cancer $(this).find('br').remove(); $(this).find('p').each(function(i){ this.innerHTML = this.innerHTML.replace(/ /ig,' '); if (this.innerHTML.trim() === '') this.remove(); }); $(this).find('blockquote').each(function(i){ this.innerHTML = this.innerHTML.replace(/ /ig,' '); if (this.innerHTML.trim() === '') this.remove(); }); // narrow context to post body $(this).find('div.field-name-body, div.field-name-comment-body, div.views-field-comment-body').each(function(i){ // quote and attribution markup $(this).find('blockquote').each(function(i){ var quoteId = postId+'-quote-'+i; // used p wrapper instead of div.quote-author, move attribution outside of and above p $(this).children('p:first-child').children('em:first-child').detach().insertBefore($(this).children('p:first-child')); // missing div.quote-author wrapper on attribution $(this).children('em:first-child').wrap('<div class="quote-author"></div>').after(' wrote:'); // missing quote-msg class, inconsistent quote-nest-*, which triggers the poorly done "snip" feature $(this).removeClass().addClass('quote-msg').attr('id', quoteId); // remove unneeded "wrote:" text which was repositioned above $(this).children('p:nth-child(2)').each(function(i){ if (this.innerHTML && (this.innerHTML !== 'undefined')) { this.innerHTML = this.innerHTML.replace(/^\s*wrote:\s*/i,''); if (this.innerHTML.trim() === '') { $(this).remove(); } } }); // missing attribution for quote if ($(this).children('.quote-author').length === 0) { $(this).prepend('<div class="quote-author"><em class="placeholder">(unattributed)</em> wrote:</div>'); } // content after quote-author wrapped in new collapsible container $(this).append('<div class="quote-container"></div>'); $(this).children().not('.quote-container, .quote-author').detach().appendTo($(this).children('.quote-container')); // add comment toggle $(this).children('.quote-author').click({quoteId: quoteId},function(e){ $('#'+e.data.quoteId+' > .quote-container:visible').slideUp({ duration: 300, start: function(){ $('#'+e.data.quoteId+' > .quote-author > .quote-toggle-img').attr('src', pvfExpansion.getImage('plus')); } }); $('#'+e.data.quoteId+' > .quote-container:hidden').slideDown({ duration: 300, start: function(){ $('#'+e.data.quoteId+' > .quote-author > .quote-toggle-img').attr('src', pvfExpansion.getImage('minus')); } }); }) .append('<img class="quote-toggle-img" src="'+pvfExpansion.getImage('minus')+'">'); // configure nested quote series // default: first is open, children and siblings are closed if (i > 0) { $(this).children('.quote-container').hide(); $(this).find('.quote-author > .quote-toggle-img').attr('src', pvfExpansion.getImage('plus')); } else { $(this).children('.quote-container').show(); } }); }); }); }, getImage: function(img) { var images = []; images.plus = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAIAAAHDszKLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAG1JREFUeNpi/PfvHwMQQCiAAGKE8iAAIIAYkHlMSOIMAAGEpg5JPYoyFA5AADFg1YOuBbd2JMACdzAaAAggHO4iAHB6kyxR7AC7ywACjIF49+ILKBJch8tCFlyK4GwmJibCcUmCu1HMIzNUGRgA5mA7unbJ2psAAAAASUVORK5CYII='; images.minus = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAIAAAHDszKLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNpi/PfvHwMQQCiAAGKE8iAAIIAYkHlMSOIMAAGEpg5JPYoyFA5AADFg1YOuBbd2JMACdzAaAAggHO4aBAC7ywACjIF49+ILKNJCD2eQ4ncVExMTdtXIElRwCWmqAXd5KdwTk+jOAAAAAElFTkSuQmCC'; return images[img]; }, // http://stackoverflow.com/a/21789375 hereDoc: function(f) { return f.toString().match(/\/\*\s*([\s\S]*?)\s*\*\//m)[1].replace(/(\/\*[\s\S]*?\*) \//g, '$1/'); }, getIgnoreList: function() { var ignoreList = GM_getValue('gw2wvw_ignore'); if (!ignoreList) return []; return JSON.parse(ignoreList); }, addIgnoreList: function(asshole) { asshole = String(decodeURIComponent(asshole)); var confirmed = confirm('Do you want to ignore "'+asshole+'"?'); if (asshole !== 'null' && asshole !== 'undefined' && confirmed) { var ignoreList = GM_getValue('gw2wvw_ignore'); if (!ignoreList) ignoreList = []; else ignoreList = JSON.parse(ignoreList); if (ignoreList.indexOf(asshole) == -1) { ignoreList.push(asshole); GM_setValue('gw2wvw_ignore', JSON.stringify(ignoreList)); } } return confirmed; }, delIgnoreList: function(asshole) { asshole = String(decodeURIComponent(asshole)); var confirmed = confirm('Do you want to stop ignoring "'+asshole+'"?'); if (asshole !== 'null' && asshole !== 'undefined' && confirmed) { var ignoreList = GM_getValue('gw2wvw_ignore'); if (!ignoreList) return; else ignoreList = JSON.parse(ignoreList); if (ignoreList.indexOf(asshole) !== -1) { ignoreList = $.grep(ignoreList, function(value) { return value != asshole; }); GM_setValue('gw2wvw_ignore', JSON.stringify(ignoreList)); } } return confirmed; }, resetIgnoreList: function() { GM_setValue('gw2wvw_ignore', ''); }, fuckThoseGuys: function() { var ignoredUsers = [], hideNodes = [], showNodes = [], ignoreUserAlert = null, searchNodes = null, ignoreList = pvfExpansion.getIgnoreList(); // reset all ignored user alerts $('.ignore-user-alert').remove(); /* Look for quoted posts to ignore. */ $('blockquote > div:first-child > em, blockquote > p:first-child > em').each(function(){ if (this.innerHTML !== 'undefined') { if ($.inArray(this.innerHTML, ignoreList) !== -1) { ignoredUsers.push(this.innerHTML); hideNodes.push($(this).parents('blockquote')); } else { showNodes.push($(this).parents('blockquote')); } } }); /* Look for posts to ignore. */ $('div.author-name > a.username').each(function(){ if (this.innerHTML !== 'undefined') { if ($.inArray(this.innerHTML, ignoreList) !== -1) { ignoredUsers.push(this.innerHTML); hideNodes.push($(this).parents('div.forum-post')); } else { showNodes.push($(this).parents('div.forum-post')); } } }); ignoredUsers = pvfExpansion.uniqueArrayEntries(ignoredUsers); for (var i in showNodes) { $(showNodes[i]).removeClass('ignore-user'); } for (var i in hideNodes) { $(hideNodes[i]).addClass('ignore-user'); ignoreUserAlert = document.createElement('div'); ignoreUserAlert.setAttribute('class', 'ignore-user-alert'); ignoreUserAlert.innerHTML = ' '; $(hideNodes[i]).after(ignoreUserAlert); } if ($(ignoredUsers).length > 0) { // create ignored notice block var ignoredNotice = document.createElement('ul'); ignoredNotice.setAttribute('id', 'ignored-notice'); var ignoredNoticeUser = document.createElement('li'); ignoredNoticeUser.innerHTML = $(ignoredUsers).length+' user'; if ($(ignoredUsers).length > 1) { ignoredNoticeUser.innerHTML = ignoredNoticeUser.innerHTML+'s'; } ignoredNoticeUser.innerHTML = ignoredNoticeUser.innerHTML+' ignored on page:'; ignoredNoticeUser.setAttribute('id', 'ignored-notice-heading'); ignoredNotice.appendChild(ignoredNoticeUser); for (var i in ignoredUsers) { var ignoredNoticeUser = document.createElement('li'); var ignoreLink = document.createElement('a'); ignoreLink.setAttribute('class', 'author-pane-line author-pane-link-line'); ignoreLink.setAttribute('href', ''); ignoreLink.innerHTML = ignoredUsers[i]; $(ignoreLink).click({asshole: ignoredUsers[i]},function(e){ e.preventDefault(); // in case "works for me" turns to shit // http://stackoverflow.com/questions/24642541/gm-getvalue-is-not-defined-in-injected-code //console.log("GM_setValue: ", GM_setValue("extra_markdown", true) ); if(pvfExpansion.delIgnoreList(e.data.asshole)) { pvfExpansion.fuckThoseGuys(); } }); ignoredNoticeUser.appendChild(ignoreLink); ignoredNotice.appendChild(ignoredNoticeUser); } if (document.getElementById('ignored-notice') === null) { // add new ignored notice block document.getElementsByTagName('body')[0].appendChild(ignoredNotice); } else { $('#ignored-notice').replaceWith(ignoredNotice); } } else { $('#ignored-notice').remove(); } }, scrollListener: function() { var scrollPos, anchor, anchorElement; // restore saved scroll position scrollPos = JSON.parse(pvfExpansion.var.session.getItem('gw2wvw_scrollPos')) || { x: 0, url: null }; // get anchor from URL anchor = document.location.href.match(/\#[^\#\s]+$/i); // return to user scroll position // obey the anchor when user hasn't previously scrolled if ((scrollPos.x === 0) && anchor) { anchorElement = document.querySelector(anchor); if (anchorElement) { anchorElement.scrollIntoView(); scrollPos = { x: $(unsafeWindow).scrollTop(), url: document.location.href }; } } else { if (scrollPos && (document.location.href == scrollPos.url)) { $(unsafeWindow).scrollTop(scrollPos.x); } } // on window scroll $(unsafeWindow).scroll(function(){ // save scroll position scrollPos = JSON.parse(pvfExpansion.var.session.getItem('gw2wvw_scrollPos')) || { x: 0, url: null }; scrollPos.x = $(unsafeWindow).scrollTop(); scrollPos.url = document.location.href; pvfExpansion.var.session.setItem('gw2wvw_scrollPos', JSON.stringify(scrollPos)); }); }, // http://stackoverflow.com/a/10192255 uniqueArrayEntries: function(array) { return $.grep(array, function(el, index) { return index === $.inArray(el, array); }); } }; pvfExpansion.var.css = pvfExpansion.hereDoc(function() {/* body.html { background: #080808 !important; margin: 0 !important; padding: 0 !important; } #main, body.overlay, #page, #header, #page-wrapper, #content, #footer-wrapper, #page-title, #menubar, #menubar .sf-menu > li > a, #navigation, #preview #preview-navigation, h1, h2, h3, h4, h5, h6, h7, h8, h9 { background: transparent !important; background-color: transparent !important; background-image: none !important; } h1, h2, h3, h4, h5, h6, h7, h8, h9 { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; } #logo, #header-searchbox, #menubar { margin: 0 !important; padding: 0 !important; } #page-wrapper { width: auto !important; margin: 0 !important; padding: 0 3% 0 3% !important; } #main-wrapper { width: auto !important; margin: 0 !important; padding: 0 !important; } #main { margin: 10px 0 0 0 !important; padding: 0 !important; } .node h2 { border: none !important; margin: 0 0 1em 0 !important; padding: 0 !important; } .node, .panel-pane, .pane-content { background: none !important; border: none !important; } .center-wrapper > .panel-panel { width: 48% !important; } .center-wrapper > .panel-panel.panel-col-last { float: right !important; } .pane-front-page .panel-separator { margin: 0 0 2em 0 !important; } .pane-front-page .view-header { margin: 1em 0 !important; } .pane-front-page .view-content .node { margin: 1em 0 3em 0 !important; } .node ul.rate-fivestar-processed { padding-left: 0 !important; } .node .field-type-taxonomy-term-reference .field-items .field-item:first-child { margin-left: 0 !important; } .view-header a:not(:hover), .tabs li a:not(:hover), .af-button-large:not(:hover), ul.links a:not(:hover), ul.pager a:not(:hover) { background: none !important; } table.sticky-header { background: #222 !important; } .messages.status { background: #511 !important; border-color: #922 !important; color: #ccc !important; } .view-content .views-row, .view-content .views-table, .view-content .views-table td, .view-content .views-table th, .view-content .views-table tr { background: none !important; } .view-content .views-row .content { clear: both !important; } .view-content .views-table{ cell-spacing: 0 !important; } .view-content .views-table th, .view-content .views-table tr:not(.views-row-last):not(:last-child) { border-bottom: 1px solid #555 !important; } .view-userposts li.views-row { background: none !important; list-style: none !important; margin: 1em 0 2em 0 !important; } /** * Superfish Menubar * / #menubar * { border: none !important; } #menubar .sf-menu li { margin: 0 !important; } #menubar .sf-menu li > a { text-indent: -1em !important; padding-left: 2em !important; } #menubar .sf-menu li ol { padding-left: .5em !important; } #menubar .sf-menu > li { margin-bottom: 5px !important; } #menubar .sf-menu > li > a.sf-with-ul { padding-right: 25px !important; } /** * Forms * / form fieldset { border: none !important; } input, select { -webkit-filter: invert(100%) grayscale(100%) !important; filter: invert(100%) grayscale(100%) !important; } .filter-wrapper { background-color: transparent !important; } label { display: inline-block !important; } label[for*='author']:after { content: ": " !important; } .form-item-search-block-form .form-text { background: transparent url(http://www.gw2wvw.net/sites/all/themes/mayo/images/xsearch.png.pagespeed.ic.SZj-eBzZGe.png) no-repeat 2px center !important; padding-left: 30px !important; } /** * Avatars * / .user-picture > a > img, .author-pane-general > .picture > img { background: #000 !important; border: 2px solid #000 !important; border-radius: 10px !important; padding: 0 !important; margin: 2px 10px !important; } /** * Usernames * / .author-name { width: 130px !important; } .username { line-height: 125% !important; word-break: break-all !important; word-break: break-word !important; word-wrap: break-word !important; -moz-hyphens: auto !important; -webkit-hyphens: auto !important; hyphens: auto !important; } /** * Front page * / body.front .node, body.front .panel-pane, body.front .pane-content, body.front .views-row, body.front table, body.front table td { background: none !important; border-color: transparent !important; } /** * Front page videos * / body.front table.cols-2 { border-collapse: separate !important; border-spacing: 10px !important; } body.front table.cols-2 td { position: relative !important; background: #000 !important; -webkit-border-radius: 15px !important; -moz-border-radius: 15px !important; border-radius: 15px !important; overflow-y: hidden !important; width: 50% !important; vertical-align: bottom !important; } body.front table.cols-2 td .views-field-title { position: absolute !important; z-index: 2 !important; top: 0 !important; left: 0 !important; right: 0 !important; background: linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.9) 30%, rgba(0,0,0,0.7) 60%, rgba(0,0,0,0) 100%) !important; height: 100% !important; padding: 0 !important; } body.front table.cols-2 td:not(:hover) .views-field-title { visibility: hidden !important; } body.front table.cols-2 td .views-field-title a { display: block !important; height: 100% !important; padding: .5em .5em 1.5em .5em !important; margin: 0 !important; text-decoration: none !important; } body.front table.cols-2 td .views-field-name, body.front table.cols-2 td .views-field-term-node-tid { position: relative !important; z-index: 3 !important; } body.front .views-field-field-youtube-video a { /** * force aspect ratio on youtube thumbnails * http://www.sitepoint.com/maintain-image-aspect-ratios-responsive-web-design/ * / display: block !important; width: 100% !important; position: relative !important; height: 0 !important; padding: 56.25% 0 0 !important; margin: 0 0 1em 0 !important; overflow: hidden !important; } body.front .views-field-field-youtube-video img { position: absolute !important; display: block !important; max-width: 100% !important; max-height: 100% !important; left: 0 !important; right: 0 !important; top: 0 !important; bottom: 0 !important; margin: auto !important; } /** * Forum tables * / .forum-table-wrap, .forum-table tr, .forum-table td { background: none !important; } .forum-table tr:not(.views-row-last):not(:last-child) { border-bottom: 1px solid #222 !important; } .forum-table tr:hover { background: #222 !important; } .forum-table-topics td.views-field-last-updated { width: auto !important; } /** * Forum posts * / .quote-msg, .quote-msg blockquote { background: none !important; border: 0 !important; border-left: 1px solid #555 !important; color: rgb(102, 102, 102) !important; font-size: 11pt !important; padding: 5px 0 5px 20px !important; margin: 1.5em 0 !important; } .quote-author { display: block !important; margin: 0 !important; padding: 0 !important; } .author-pane-line { font-size: .9em !important; } .author-pane-line.author-name { font-size: 1.5em !important; } .author-signature, .post-edited { border: none !important; color: #666 !important; font-size: .85em !important; margin: 0 0 0 30px !important; padding: 0 !important; } .author-signature > blockquote { border: none !important; margin: 0 !important; padding: 10px 0 !important; } .forum-post { background: none !important; margin: 0 0 30px 0 !important; padding: 10px 20px !important; } .forum-post-panel-main { border: 0 !important; } .forum-post-content { padding: .2em 0 1em 2em !important; } .forum-post-content, .author-signature { /** * Force line wrap * / word-break: break-all !important; word-break: break-word !important; -moz-hyphens: auto !important; -webkit-hyphens: auto !important; hyphens: auto !important; } .forum-post-content p { margin: .75em 0 !important; } .forum-post-content > .field-type-text-with-summary { /** * float clearing caused excessive whitespace in first post of forum thread * / clear: none !important; } .forum-post-footer { border: 0 !important; background: none !important; } .forum-post-info { padding: .3em 0 !important; } .forum-post-title { font-style: italic !important; font-size: .9em !important; padding: 0 2em !important; color: #777 !important; } .forum-post-title:before { content: "Opening Post:" !important; font-style: italic !important; font-size: .9em !important; padding-right: 1em !important; } .forum-jump-links { display: none !important; } .forum-post-footer ul.links, .forum-post-footer ul.links > li { padding-top: 0 !important; padding-right: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important; margin-top: 0 !important; margin-right: 0 !important; margin-bottom: 0 !important; margin-left: 0 !important; } .forum-post-footer ul.links > li > a { padding-top: .3em !important; padding-right: .3em !important; padding-bottom: .3em !important; padding-left: .3em !important; margin-top: 0 !important; margin-right: 0 !important; margin-bottom: 0 !important; margin-left: .3em !important; } .forum-post-footer ul.links > li.last > a { margin-right: -.3em !important; } .forum-post-number { margin-right: 0 !important; } /** * Polls * / .poll > .text, .poll > .total { clear: both !important; margin: 1em 0 !important; } .poll > .bar { background: none !important; margin: 0 !important; } .poll > .bar > .foreground { background: #922 !important; } .poll > .percent { float: right !important; margin-top: -1.75em !important; } .poll .vote-form, .poll .vote-form .choices { margin: 0 !important; text-align: left !important; } /** * Lightbox * / #outerImageContainer, #imageDataContainer, #bottomNavClose { background-color: #000 !important; } /** * ckEditor * / div.textarea-processed { -webkit-filter: invert(90%) brightness(0.8) grayscale(100%) !important; filter: invert(90%) brightness(0.8) grayscale(100%) !important; } /** * PvF Expansion Pack * / .ignore-user { display: none !important; } .ignore-user-alert { background: rgba(10,10,10,0.7) !important; border-radius: 10px !important; color: #666 !important; margin: 1em 20px !important; padding: .5em !important; min-height: 2em !important; } .ignore-user-alert ~ .ignore-user-alert { display: none !important; } #ignored-notice { position: fixed !important; z-index: 10000 !important; top: 0 !important; left: 0 !important; font-size: 10pt !important; background: black !important; border-bottom-left-radius: 7px !important; border-bottom-right-radius: 7px !important; max-height: 25% !important; overflow-y: auto !important; padding: .25em 1em !important; list-style-type: none !important; } #ignored-notice:not(:hover) > li:not(#ignored-notice-heading) { display: none !important; } #ignored-notice:not(:hover), #ignored-notice:not(:hover) * { opacity: 0.5 !important; } .quote-toggle-img { float: right !important; } .forum-post-content .quote-author:hover { cursor: pointer !important; -webkit-filter: invert(100%) !important; filter: invert(100%) !important; } */}); /** * Execute code */ // Initialize again for every readystatechange document.onreadystatechange = function () { pvfExpansion.init(); if (document.readyState == 'complete') { pvfExpansion.addForumPostQuote(); pvfExpansion.cleanerMarkup(); } }; // Initialize for browser forward/back button pvfExpansion.init(); // End of line pvfExpansion.var.end = new Date().getTime(); pvfExpansion.var.time = pvfExpansion.var.end - pvfExpansion.var.start; console.log('PvF Expansion execution time: ' + pvfExpansion.var.time);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址