您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds the date and author of an article to its associated snippet.
// ==UserScript== // @name Infowars : Date & Author // @author Scott Michaels // @namespace http://se7en-soft.com // @description Adds the date and author of an article to its associated snippet. // @include https://www.infowars.com/* // @version 1.0.1 // @grant metadata // @grant GM_xmlhttpRequest // ==/UserScript== (function(){ const nav = navigator; const codeName = nav.appCodeName; const product = nav.product; const vendor = nav.vendor; const articles = []; const observeDOM = (function(){ const MutationObserver = window.MutationObserver || window.WebKitMutationObserver, eventListenerSupported = window.addEventListener; return function(obj, callback){ if( MutationObserver ){ // define a new observer const obs = new MutationObserver(function(mutations, observer){ if( mutations[0].addedNodes.length || mutations[0].removedNodes.length ) callback(); }); // have the observer observe foo for changes in children obs.observe( obj, { childList:true, subtree:true }); } else if( eventListenerSupported ){ obj.addEventListener('DOMNodeInserted', callback, false); obj.addEventListener('DOMNodeRemoved', callback, false); } }; })(); const fixer = { fetchRemotePage: (href, callback) => { try{ GM_xmlhttpRequest({ method: "GET", url: href, onload: function(r){ const page = r.responseText; if(callback) callback.call(this, page); } }); }catch(e){ //alert(e); } }, addExtraInfo: () => { if(articles.length){ let i = 0; for(i; i < articles.length; i++){ const x = articles[i]; let anchor = x.querySelector("article > div.article-content > h3 > a"); if(!anchor){ anchor = x.querySelector("div.article-content > h3 > a"); } //remove the article from the 'articles' array articles.splice(i, 1); if(anchor){ const processed = anchor.getAttribute("data-processed"); if(processed) continue; try{ anchor.setAttribute("data-processed", "true"); fixer.fetchRemotePage(anchor.href, (page) => { const elHtml = document.createElement("html"); elHtml.innerHTML = page; let author = ""; let authorLink = ""; let authorM = elHtml.getElementsByClassName("author")[0]; if(authorM.querySelector("a[rel='author']")){ author = authorM.querySelector("a[rel='author']").textContent; authorLink = authorM.querySelector("a").href; } else { let text = authorM.textContent; if(text.indexOf("|") !== -1){ author = text.split("|")[0].trim(); } else if (authorM.querySelector("a")) { author = authorM.querySelector("a").textContent.trim(); } else { author = authorM.textContent.trim(); if(author.endsWith("-")){ author = author.substring(0, author.length - 1).trim(); } } } const articleDate = elHtml.getElementsByClassName("date")[0].textContent; const authorElm = document.createElement("span"); if(!authorLink){ authorElm.textContent = author + " | " + articleDate; } else { const link = document.createElement("a"); link.href = authorLink; link.textContent = author; link.setAttribute("target", "_blank"); link.setAttribute("rel", "author"); link.style = "color:#194e8e !important;"; authorElm.appendChild(link); const span = document.createElement("span"); span.textContent = ` | ${articleDate}`; authorElm.appendChild(span); } authorElm.style = "font-size: 11pt;font-family:'proxima-nova', sans-serif;color:#898989;font-weight:500;"; const entrySubtitle = x.querySelector("div.article-content>h4.entry-subtitle"); if(entrySubtitle){ //console.log(entrySubtitle); entrySubtitle.parentNode.insertBefore(authorElm, entrySubtitle); } else { anchor.parentNode.insertBefore(authorElm, anchor.nextSibling); anchor.parentNode.insertBefore(document.createElement("br"), anchor.nextSibling); } }); } catch(ex){ alert(ex); } } } } }, init: () => { let arties = document.getElementsByTagName("article"); for(let x of arties){ const anchor = x.querySelector("article > div.article-content > h3 > a"); if(anchor && anchor.getAttribute("data-processed")) continue; articles.push(x); } arties = document.getElementsByClassName("related-article"); for(let x of arties){ const anchor = x.querySelector("div.article-content > h3 > a"); if(anchor && anchor.getAttribute("data-processed")) continue; articles.push(x); } } } document.onreadystatechange = () => { if(document.readyState === "complete"){ fixer.init(); fixer.addExtraInfo(); observeDOM(document.getElementsByClassName('articles-wrap')[0], function(){ const arties = document.getElementsByTagName("article"); //document.getElementsByClassName("article"); for(let x of arties){ if(articles.indexOf(x) === -1) articles.push(x); } fixer.addExtraInfo(); }); } } })();