// ==UserScript== // @name Bonnae News With Text // @namespace https://github.com/harryhare/Bonnae-News // @version 0.4 // @description for Bonnae broadcast on douban.com // @author harryhare // @match https://www.douban.com/** // @include https://www.douban.com/** // @grant GM_xmlhttpRequest // @connect upaste.me // @connect slexy.org // @connect paste2.org // @downloadURL none // ==/UserScript== /* http://upaste.me/xxxxx https://slexy.org/view/xxxxx https://paste2.org/xxxxx */ var url_prefix=new Map(); url_prefix['upaste.me']='http://upaste.me/'; url_prefix['slexy.org']='https://slexy.org/view/'; url_prefix['paste2.org']='https://paste2.org/'; const default_prefix='upaste.me'; const max_code_length=100; var url_node=new Map(); var url_getContent=new Map(); url_getContent['upaste.me']=getContent1; url_getContent['slexy.org']=getContent2; url_getContent['paste2.org']=getContent3; function getContent1(doc){ return doc.getElementsByTagName('textarea')[0].innerHTML; } function getContent2(doc){ return doc.getElementsByClassName('text')[0].innerHTML; } function getContent3(doc){ return doc.getElementsByClassName('highlight code')[0].innerHTML; } function getContent(response){ var parser=new window.DOMParser(); var x=response.response; var xmlDoc=parser.parseFromString(x,"text/html"); var url=response.finalUrl; var text=''; var reg=/https?:\/\/([a-zA-Z0-9]+\.[a-z]+)\//g; var result=reg.exec(url); if(result && result.length>1 && result[1] && url_getContent[result[1]]){ return url_getContent[result[1]](xmlDoc); } return ""; } function attachContent(response){ if(response.status!=200){ return; } var node=url_node[response.finalUrl]; if(!node){ return; } var text=getContent(response); if(!text){ return; } node.innerHTML=text; node.style='height:52px; overflow: hidden;' } function onClick(e){ //console.log(e.target.attachId); var n3=url_node[e.target.attachId]; if(e.target.innerHTML=='收起'){ e.target.innerHTML='展开'; n3.style='height:52px; overflow: hidden;'; }else{ e.target.innerHTML='收起'; n3.style=''; } } (function() { 'use strict'; var targets=document.querySelectorAll('.new-status .status-item[data-uid="1540691"] .mod .bd .status-saying blockquote p'); for(let i=0;imax_code_length){ continue; } var reg=/([a-zA-Z0-9]{4,})\s*\(([a-z0-9]+.[a-z]+)\)/g; var reg2=/([a-zA-Z0-9]{10,})/g; var result=reg.exec(content); var href=''; var find=false; if(result && result.length>2 && result[2]){ href=url_prefix[result[2]]+result[1]; find=true; } if(!find){ result=reg2.exec(content); if(result && result.length>1){ href=url_prefix[default_prefix]+result[1]; find=true; } } if(find){ t=t.parentElement; var n0=document.createElement('div'); var n1=document.createElement('p'); var a=document.createElement('a'); var b=document.createElement('button'); t.parentElement.appendChild(n0); n0.appendChild(n1); n1.appendChild(a); n1.appendChild(b); a.textContent=href; a.setAttribute('href',href); b.innerHTML='展开'; b.attachId=href; b.onclick=onClick; var text=document.createElement('p'); n0.appendChild(text); url_node[href]=text; text.id=href; GM_xmlhttpRequest({ method: "GET", url: href, onload: attachContent, }); } } })();