Skip to content

Instantly share code, notes, and snippets.

@jodaka
Created February 12, 2013 15:20
Show Gist options
  • Save jodaka/4770591 to your computer and use it in GitHub Desktop.
Save jodaka/4770591 to your computer and use it in GitHub Desktop.
var __articleView=function(e,t){var n=" .__av-body-hidden{display:none!important}.__av-overlay{position:absolute;height:100%;width:100%;margin:0;border:0}.__av-body{background-color:#FFF;margin:0;height:100%;width:100%}.__av-body p:empty,.__av-body div:empty{display:none}.__av-body-lh0 ul,.__av-body-lh0 p,.__av-body-lh0 div{padding-bottom:1em}.__av-body-lh1 ul,.__av-body-lh1 p,.__av-body-lh1 div{padding-bottom:1.5em}.__av-body-lh2 ul,.__av-body-lh2 p,.__av-body-lh2 div{padding-bottom:2em}.__av-body-lh0 p,.__av-body-lh0 div,.__av-body-lh0 li,.__av-body-lh0 pre,.__av-body-lh0 a{line-height:1em!important}.__av-body-lh1 p,.__av-body-lh1 div,.__av-body-lh1 li,.__av-body-lh1 pre,.__av-body-lh1 a{line-height:1.3em!important}.__av-body-lh2 p,.__av-body-lh2 div,.__av-body-lh2 li,.__av-body-lh2 pre,.__av-body-lh2 a{line-height:1.7em!important}.__av-body-bg0{background-color:#FFF!important}.__av-body-bg1{background-color:#515151!important}.__av-body-bg2{background-color:#CACACA!important}.__av-body-bg3{background-color:#FEFEFE!important}.__av-body-bg4{background-color:#A69D94!important}.__av-body-bg5{background-color:#FEF2DA!important}.__av-body-bg0 *{color:#000!important}.__av-body-bg1 *{color:#FFF!important}.__av-body-bg2 *{color:#515151!important}.__av-body-bg3 *{color:#6c6058!important}.__av-body-bg4 *{color:#fafdf2!important}.__av-body-bg5 *{color:#000!important}.__av-content{margin:0 auto;width:80%;font-size:2.2ex;overflow-y:scroll!important;overflow-x:hidden}.__av-content p,.__av-content pre,.__av-content pre *,.__av-content div,.__av-content cite{font-size:2.2ex!important;font-style:normal!important;background-color:transparent!important;text-align:left}.__av-body-m0 .__av-content{width:90%}.__av-body-m1 .__av-content{width:80%}.__av-body-m2 .__av-content{width:70%}div.__av-author,div.__av-date{display:inline-block;opacity:0.3;font-size:2ex!important}.__av-author{margin-right:1ex}.__av-title{padding-top:1.5ex;margin:0.7ex 0 0.3ex 0;font-size:4.2ex!important;line-height:2.3ex}.__av-article{padding-top:4ex}.__av-content img{display:block}.__av-tagline{border-bottom:1px solid #000;padding:1em 0 0.3em 0;opacity:0.3}.__av-meta{border-top:1px solid black;padding:2ex 0 0 0;margin:2ex 0 0 0;opacity:0.5}.__av-meta ul{margin:0 0 0 2.5ex;padding:0}.__av-meta li{list-style:square!important;padding-bottom:1ex}.__av-meta .metaName{font-weight:bold}div.__av-noarticle{margin:4ex;padding:3ex;border-radius:1ex;font-size:4ex!important;color:#F2F2F2!important;background-color:#BF6363!important}.__av-touchOverlay,.__av-touchCanvasOverlay{opacity:0.5;height:100%;background-color:#FFF;width:100%;z-index:2147483646;position:fixed;top:0;bottom:0;right:0;left:0}.__av-touchCanvasOverlay{opacity:1;background-color:transparent;z-index:2147483647}",r=function(){var e=t.documentElement,n=Array.prototype.splice.call(t.getElementsByTagName("meta"),0),r={title:"",date:"",author:"",keywords:"",description:""};for(var i=0;i<n.length;i++){var s=n[i],o=s.getAttribute("itemprop"),u=s.getAttribute("property"),a=s.getAttribute("name");o=o&&o.toLowerCase(),u=u&&u.toLowerCase(),a=a&&a.toLowerCase(),(a==="title"||u==="og:title"||a==="dc.title")&&r.title===""&&(r.title=s.getAttribute("content"));if(o==="author"||a==="author"||a==="dc.creator")r.author=s.getAttribute("content");if(a==="pubdate"||a==="dc.date"||o==="datepublished"||a==="dat"||a==="originalpublicationdate"||a==="dc.date.issued"||a==="sailthru.date"||u==="article:published_time")r.date=s.getAttribute("content");if(a==="keywords"||a==="sailthru.tags")r.keywords=s.getAttribute("content");if(a==="description"||u==="og:description"||a==="sailthru.description")r.description=s.getAttribute("content")}return r.url=location.origin+location.pathname,r.date!==""&&/\dT\d/.test(r.date)&&(r.date=r.date.replace(/^([\d-]+)T([\d:]+).*/,"$1 $2")),r},i=function(){"use strict";var e={};return e.overlapLimit=25,e.returnSelectedElements=function(n){var r=function(e){e=e.parentNode;var n={x:0,y:0};while(e&&e!==t.body)n.x+=e.scrollLeft,n.y+=e.scrollTop,e=e.parentNode;return n},i=function(e){var n=e.getBoundingClientRect(),i=r(e),s=t.defaultView.getComputedStyle(e,null).position==="fixed",o={x:t.body.scrollLeft,y:t.body.scrollTop};return{x:parseInt(n.left,10)+i.x+(s?0:o.x)-t.documentElement.clientLeft,y:parseInt(n.top,10)+i.y+(s?0:o.y)-t.documentElement.clientTop,w:e.offsetWidth,h:e.offsetHeight}},s=function(e,n){var r;while(e&&e!==t.body){e=e.parentNode,r=n.length;while(r--)if(e===n[r])return!1}return!0},o=function(t){var n,r,s=i(t),o=e.region,u=0;s.x0=s.x,s.y0=s.y,s.x1=s.x+s.w,s.y1=s.y+s.h;if(s.x1-s.x0===0||s.y1-s.y0===0)u=0;else if(s.x0>=o.x0&&s.y0>=o.y0&&s.x1<=o.x1&&s.y1<=o.y1)u=100;else if(s.x0<o.x0&&s.y0<o.y0&&s.x1>o.x1&&s.y1>o.y1)n=(s.x1-s.x0)*(s.y1-s.y0),r=(o.x1-o.x0)*(o.y1-o.y0),u=100*r/n;else if(!(o.x0>=s.x1||o.y1<=s.y0||o.x1<=s.x0||o.y0>=s.y1)){n=(s.x1-s.x0)*(s.y1-s.y0);var a=[s.x0,s.x1,o.x0,o.x1],f=[s.y0,s.y1,o.y0,o.y1],l=function(e,t){return e>t};a.sort(l),f.sort(l),u=100*Math.abs(a[1]-a[2])*Math.abs(f[1]-f[2])/n}return Math.round(u)},u=function(){var n=t.body.getElementsByTagName("*"),r=n.length,i=[],u=[];while(r--)o(n[r])>e.overlapLimit&&i.push(n[r]);r=i.length;while(r--)s(i[r],i)&&u.push(i[r]);return u};e.region=n,e.nodes=u(),typeof e._callback=="function"&&e._callback({nodes:e.nodes,coords:e.region})},{init:function(t,n){typeof n=="function"&&(e._callback=n),e.returnSelectedElements(t)}}}(),s=function(e){var t=e.getElementsByClassName("instapaper_body")[0],n=e.getElementsByClassName("instapaper_title")[0];if(t){var r=Array.prototype.slice.call(t.getElementsByClassName("instapaper_ignore"),0);for(var i=0,s=r.length;i<s;i++)r[i].parentNode.removeChild(r[i]);t=t.outerHTML||""}return n=n&&n.outerHTML||"",[n,t]},o=function(e,n){var r={};r["thesun.co.uk"]=function(){var e=n.getElementById("bodyText");if(!e)return["",""];var t=n.getElementById("image-container");t&&e.insertBefore(t,e.firstChild);var r=n.body.getElementsByClassName("flag-author")[0];return r&&(r=r.innerText.replace(/By /i,"")),e=e&&e.innerHTML||"",["",e,r?{author:r}:null]},r["time.com"]=function(){var e=n.body.getElementsByClassName("item-container")[0];return e=e&&e.innerHTML||"",["",e]},r["news.yahoo.com"]=function(){var e=n.body.getElementsByClassName("yom-art-content")[0];return e=e&&e.innerHTML||"",["",e]},r["lenta.ru"]=function(){var e=n.body.querySelector(".b-topic__content .b-topic__title-image"),t=n.body.querySelector(".b-topic__content .b-text");return e=e&&e.innerHTML||"",t=t&&t.innerHTML||"",["","<div>"+e+"<br />"+t+"</div>"]},r["espn.go.com"]=function(){var e=n.body.querySelector(".story-container .article");return e||(e=n.body.getElementsByClassName("mod-container")[0]),e=e&&e.innerHTML||"",["",e]},r["usatoday.com"]=function(){var e=t.body.querySelector('div[itemprop="articleBody"]');if(e){e=e.cloneNode(!0);var n=e.querySelector(".blog-tag-cloud");n&&n.parentNode.removeChild(n),e=e.outerHTML}return["",e]},r["cnn.com"]=function(){var e=n.documentElement.innerHTML,t=/<!--startclickprintinclude-->([\s\S]*?)<!--endclickprintinclude-->/img,r=e.match(t);return["",r!==null?r.join("\n"):""]},r["telegraph.co.uk"]=function(){var e,t=n.body.getElementsByClassName("ssImg")[0];t=t?t.parentNode.innerHTML:"";var r=n.getElementById("mainBodyArea");r=r?'<div class="article">'+t+r.innerHTML+"</div>":"";var i=n.querySelector(".bylineBody a");return i||(i=n.querySelector('.byline a[rel="author"]')),i&&(i=i.textContent.trim()),["",r,i?{author:i}:null]},r["nytimes.com"]=function(){var e=n.body.getElementsByClassName("articleHeadline")[0],t=Array.prototype.slice.call(n.body.getElementsByClassName("articleBody"),0),r="";for(var i=0,s=t.length;i<s;i++)r+=t[i].innerHTML;return[e&&e.innerHTML,r]},r["foxnews.com"]=function(){var e=n.body.getElementsByClassName("entry-title")[0],t=n.body.getElementsByClassName("article-text")[0],r=n.body.getElementsByClassName("article-ct")[0];return r=r&&r.innerHTML,t=t&&t.innerHTML,[e&&e.innerHTML,+r+t]};for(var i in r)if(r.hasOwnProperty(i)&&e.indexOf(i)>-1)return r[i](n);return null},u=function(t,u){var a={};a.DEBUG=!1;var f=function(){return!0};a.__onScroll=f,a.__onError=f,a.statusURL="http://localhost/articleview/",a.meta=r(),a.gotData=!1,a.foundGoodArticle=!1,a.settings={REMOVE_QUESTIONABLE_OPTIONS:!0,USE_CLASSNAMES_WEIGH:!0,minTextThreshold:200,paragraphThreshold:15,minImageWidth:100,minImageHeight:100,regexps:{badCandidates:/ad-break|-ad|ads|agegate|byline|combx|comment|community|date|disqus|extra|facebook|foot|header|links|menu|pager|pagination|popup|print|remark|rss|share|shoutbox|sidebar|sponsor|time|tweet|twitter/i,tolerableCandidate:/and|article|body|column|main|shadow/i,negative:/combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|share|shopping|tags|tool|widget/i,positive:/article|body|blog|content|entry|hentry|main|page|pagination|post|readability|text|story/i,divToPElements:/<(a|blockquote|dl|div|img|ol|p|pre|table|ul)/i,killBreaks:/(<br\s*\/?>(\s|&nbsp;?)*){1,}/g},overlayClass:"__av-overlay",bodyClass:"__av-body",overlay:{bg:0,lh:0,m:0}},typeof __articleViewSavedSettings!="undefined"&&(a.settings.overlay=__articleViewSavedSettings),a.data={title:null,article:null,meta:null,coords:null};var l=function(e){return a.DEBUG&&console&&typeof console[e]=="function"?function(){console[e].apply(console,Array.prototype.slice.call(arguments,0))}:f};return a.dbg={log:l("log"),warn:l("warn"),error:l("error")},a.sendStatus=function(e){var t=a.statusURL+"?";for(var n in e)e.hasOwnProperty(n)&&(t+=n+"="+encodeURIComponent(e[n])+"&");a.dbg.log("sending status to "+t),t=t.replace(/&$/,"");var r=new Image;r.src=t},a.countLinksAmount=function(e){var t=Array.prototype.slice.call(e.getElementsByTagName("a"),0),n=0;for(var r=0,i=t.length;r<i;r++)n+=a.getInnerText(t[r]).length;return n===0?0:n/a.getInnerText(e).length},a.trimString=function(e){e=e.replace(/^\s+/,"");for(var t=e.length-1;t>=0;t--)if(/\S/.test(e.charAt(t))){e=e.substring(0,t+1);break}return e},a.selectBestFrame=function(e){a.dbg.log("--> checking for frames");var t=e.getElementsByTagName("frame");if(t.length===0)return a.dbg.log("--> no frames found"),e.body;var n=0,r=null;for(var i=0;i<t.length;i++){var s=t[i].offsetWidth+t[i].offsetHeight,o=!1;try{var u=t[i].contentWindow.document.body;o=!0}catch(f){a.dbg.warn("frame ",t[i]," doesn't provide access to body")}o&&s>n&&(n=s,r=t[i])}if(r!==null){var l=e.createElement("body");return l.innerHTML=r.contentWindow.document.body.innerHTML,l}return a.dbg.warn("frames found, but all of them were unsable"),e.body},a.getInnerText=function(e){var t="";if(e&&e.length>0&&typeof e.textContent=="undefined"){var n=u.createElement("div");n.innerHTML=e,e=n}return a.trimString(e.textContent.trim())},a.cleanStyles=function(e){var t=e.getElementsByTagName("*");for(var n=t.length-1;n>=0;n--)t[n].removeAttribute("id"),t[n].removeAttribute("class"),t[n].removeAttribute("style")},a.cleanByTags=function(e,t){!t instanceof Array&&(t=[t]);for(var n=t.length-1;n>=0;n--){var r=e.getElementsByTagName(t[n]);for(var i=r.length-1;i>=0;i--)r[i].parentNode.removeChild(r[i])}},a.cleanLineBreaks=function(e){try{e.innerHTML=e.innerHTML.replace(a.settings.regexps.killBreaks,"<br />")}catch(t){return!1}},a.recursiveMarkupCleaning=function(e){var t=e.querySelectorAll("*");for(var n=0,r=t.length;n<r;n++){var i=t[n];if(i.tagName==="A")i.setAttribute("target","_blank");else if(i.children&&i.children.length===1&&i.textContent.trim()===i.children[0].textContent.trim()&&i.parentNode){i.parentNode.replaceChild(i.children[0],i),a.recursiveMarkupCleaning(e);break}}},a.cleanEmptyTags=function(e){var t=function(e){e.parentNode&&e.parentNode.removeChild(e)},n=function(e){var n=new Image;n.src=e?e.getAttribute("src"):null;if(!n.src)return t(e),!1;n.onload=r},r=function(){if(this.width<a.settings.minImageWidth||this.height<a.settings.minImageHeight)a.dbg.log(" ----> removing image due to small size",this),t(this)},i=Array.prototype.slice.call(e.getElementsByTagName("*"),0),s,o;for(var u=0,f=i.length;u<f;u++){var l=i[u];if(l.tagName.toUpperCase()==="BR")continue;if(l.tagName.toUpperCase()==="IMG"){var c=new Image;c.src=l.src,s=c.width,o=c.height;if(!s||!o){n(l);continue}if(s<a.settings.minImageWidth||o<a.settings.minImageHeight||/spacer/.test(l.src)){var h=l.parentNode;a.dbg.log(" ---> removing image due to small size",l),t(l),h&&(!h.children||h.children.length<2)&&a.getInnerText(h)===""&&t(h);continue}continue}var p=0,d=0;if(l.children&&l.children.length>0){var v=l.getElementsByTagName("img");for(var m=0,g=v.length;m<g;m++){if(!v[m])continue;s=v[m].getAttribute("width")||(v[m].style.width?parseInt(v[m].style.width,10):0),o=v[m].getAttribute("height")||(v[m].style.height?parseInt(v[m].style.height,10):0);if(!s||!o){n(v[m]),p++;continue}s>a.settings.minImageWidth&&o>a.settings.minImageHeight&&p++}}if(p===0&&a.getInnerText(l).length===0){t(l);continue}l.removeAttribute("class"),l.removeAttribute("style"),l.removeAttribute("id"),l.removeAttribute("onclick"),l.removeAttribute("ondblclick"),l.removeAttribute("onmouseover"),l.removeAttribute("onmouseout")}a.recursiveMarkupCleaning(e),a.cleanSpamTags(e,["div","ul","span"])},a.cleanSpamTags=function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=Array.prototype.slice.call(e.getElementsByTagName(r),0);for(var s=0,o=i.length;s<o;s++){var u=a.countLinksAmount(i[s]);if(u>.3&&i[s].parentNode){i[s].parentNode.removeChild(i[s]);continue}}}},a.cleanArticle=function(e){a.cleanEmptyTags(e,["p","div","textnode","a"]),a.cleanByTags(e,["h1","h2"]),a.cleanLineBreaks(e),a.cleanStyles(e)},a.getArticle=function(e){a.cleanByTags(e.documentElement,["script","noscript","object","embed","iframe","style"]);var t=e.documentElement.getElementsByTagName("*"),n=[];for(var r=0,i=t.length;r<i;r++){if(!t[r])continue;var s=t[r],o=s.tagName.toUpperCase();if(a.settings.REMOVE_QUESTIONABLE_OPTIONS){var u=s.className+" "+s.id;if(o!=="BODY"&&u.search(a.settings.regexps.badCandidates)!==-1&&u.search(a.settings.regexps.tolerableCandidate)===-1){s.parentNode.removeChild(s);continue}}(o==="P"||o==="TD"||o==="PRE")&&n.push(s);if(o==="DIV"&&s.innerHTML.search(a.settings.regexps.divToPElements)===-1){var f=e.createElement("p");f.innerHTML=s.innerHTML,s.parentNode.replaceChild(f,s),n.push(f)}}var l=a.setScore(n),c=null;for(r=l.length-1;r>=0;r--){a.dbg.log(l[r],l[r]._score);if(!c||l[r]._score>c._score)c=l[r]}a.dbg.log("=====> we got candidate",c);if(c===null||c.tagName.toUpperCase==="BODY")e.body._score||(a.setNodeScore(e.body),c=e.body);if(a.getInnerText(c).length<a.settings.minTextThreshold){if(a.settings.REMOVE_QUESTIONABLE_OPTIONS)return a.dbg.warn(" >> turning off QUESTIONABLE "),a.settings.REMOVE_QUESTIONABLE_OPTIONS=!1,a.getArticle(e);if(a.settings.USE_CLASSNAMES_WEIGH)return a.dbg.log(" >> turning off USE_CLASSNAMES_WEIGH "),a.settings.USE_CLASSNAMES_WEIGH=!1,a.getArticle(e)}return a.countLinksAmount(c)<.3&&(a.foundGoodArticle=!0),a.cleanArticle(c),c},a.scoreByClassName=function(e){var t=0;if(!a.settings.USE_CLASSNAMES_WEIGH)return 0;var n=function(e){var t=0;for(var n=0;n<e.length;n++)e[n].type==="string"&&e[n].value!==""&&(e[n].value.search(a.settings.regexps.negative)!==-1&&(t-=25),e[n].value.search(a.settings.regexps.positive)!==-1&&(t+=35));return t};return t+=n([{value:e.className,type:typeof e.className},{value:e.id,type:typeof e.id}]),t},a.setNodeScore=function(e){e._score=0;switch(e.tagName.toUpperCase()){case"DIV":e._score+=5;break;case"PRE":case"TD":case"BLOCKQUOTE":e._score+=3;break;case"ADDRESS":case"OL":case"UL":case"DL":case"DD":case"DT":case"LI":case"FORM":e._score-=3;break;case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"TH":e._score-=5}e._score+=a.scoreByClassName(e)},a.setScore=function(e){var t=[];for(var n=e.length-1;n>=0;n--){var r=e[n].parentNode,i=r?r.parentNode:null,s=a.getInnerText(e[n]);if(!r||typeof r.tagName=="undefined"||s.length<25)continue;r&&typeof r._score=="undefined"&&(a.setNodeScore(r),t.push(r)),i&&typeof i._score=="undefined"&&typeof i.tagName!="undefined"&&(a.setNodeScore(i),t.push(i));var o=1;o+=s.split(",").length,o+=Math.min(Math.floor(s.length/100),5),r&&(r._score+=o/1.2),i&&(i._score+=o/1.4)}return t},a.getTitle=function(e){if(a.meta.title!=="")return a.meta.title;var t="",n=function(t){for(var n=0;n<t.length;n++){var r=e.getElementsByTagName(t[n])[0];if(typeof r!="undefined")return a.getInnerText(r)}return""};t=u.title,t===""&&(t=n(["h1","h2","h3"]));var r=t,i=new RegExp("^s*"+location.hostname+"s*[:-—//]*s+(.*?)");switch(!0){case/\s::\s/.test(r):t=r.replace(/(.*?)::.*/g,"$1");break;case/\s[\/|]+\s/.test(r):t=r.replace(/(.*?)[\/|].*/g,"$1");break;case i.test(r):t=r.replace(i,"$1");break;case/\s-|–\s/.test(r):t=r.split(/\s-|–\s/).sort(function(e,t){return t.length-e.length})[0]}return t},a.tryExtractors=function(t){var n,r=function(e){if(e!==null){if(e.length===3&&typeof e[2]=="object")for(var t in e[2])e[2]&&e[2][t]&&e[2].hasOwnProperty(t)&&a.meta.hasOwnProperty(t)&&(a.meta[t]=e[2][t]);if(!(e[1]&&e[1].length>0&&a.getInnerText(e[1]).length>=a.settings.minTextThreshold))return!1;var r=u.createElement("div");return r.innerHTML=(e[0]&&e[0].length>0?"<h1>"+e[0]+"</h1>":"")+e[1],n=[r],!0}return!1},i=[];return typeof s=="function"&&r(s(u))?(a._gotInstapaperResult=!0,a.foundGoodArticle=!0,a.dbg.log(" got result from instapaper "),n):typeof o=="function"&&r(o(e.location.hostname,u))?(a.dbg.log("got result from extractors "),n):t},a.prepareData=function(e){a.ammendMeta();if(!e||!e instanceof Array||e.length===0)e=u.body?[u.body]:[u.documentElement],e=a.tryExtractors(e);var t=u.createElement("body");for(var n=0,r=e.length;n<r;n++)t.appendChild(e[n].cloneNode(!0));var i=u.implementation.createDocument(null,"html",null);i.documentElement.appendChild(t);var s=a.getTitle(i);a.dbg.log(" --> found title ",s);var o=a._gotInstapaperResult?t.firstChild:a.getArticle(i);return a.dbg.log(" --> found article ",o),a.data.title=s,o},a.injectCSS=function(e){var t=u.createElement("style");t.setAttribute("type","text/css"),t.appendChild(u.createTextNode(e)),typeof t!="undefined"&&u.getElementsByTagName("head")[0].appendChild(t)},a.addClass=function(e,t){e.className.indexOf(" "+t+" ")===-1&&(e.className+=" "+t)},a.removeClass=function(e,t){if(e.className.indexOf(t)!==-1){var n=new RegExp(t,"g");e.className=e.className.replace(n,"").trim()}},a.showOverlay=function(t){t||(a.overlay=u.createElement("iframe"),a.overlay.src="about:blank",a.overlay.className=a.settings.overlayClass,u.documentElement.appendChild(a.overlay));var r=a.settings.bodyClass+" ";for(var i in a.settings.overlay)a.settings.overlay.hasOwnProperty(i)&&(r+=" "+a.settings.bodyClass+"-"+i+a.settings.overlay[i]);var s='<div class="__av-noarticle">Sorry no article found. Tap to return to Browser View </div>',o='<div class="__av-tagline">'+location.hostname+" </div>",f='<head><style type="text/css">'+n+" </style>"+'<meta name="viewport" content="width=device-width, user-scalable=no" />'+"</head>"+'<body class="'+r+'">'+'<div class="__av-content">'+(a.foundGoodArticle?"":s)+o+'<h1 class="__av-title">'+a.data.title+"</h1>"+(a.meta.author!==""?'<div class="__av-author">By '+a.meta.author+"</div>":"")+(a.meta.date!==""?'<div class="__av-date">'+a.meta.date+"</div>":"")+'<div class="__av-article">'+a.data.article.innerHTML+"</div>"+a.printMetadata()+"</div>"+"</body>";a._articleHTML=f,a._articleText=a.foundGoodArticle?'<div class="__av-content">'+o+'<h1 class="__av-title">'+a.data.title+"</h1>"+(a.meta.author!==""?'<div class="__av-author">By '+a.meta.author+"</div>":"")+(a.meta.date!==""?'<div class="__av-date">'+a.meta.date+"</div>":"")+'<div class="__av-article">'+a.data.article.innerHTML+"</div>"+a.printMetadata()+"</div>":"";if(!t){a.overlay.contentWindow.document.open("text/html","replace"),a.overlay.contentWindow.document.write(f),a.overlay.contentWindow.document.close(),a.injectCSS(n);if(!a.foundGoodArticle)var l=a.overlay.contentWindow.document.getElementsByClassName("__av-noarticle")[0],c=l.addEventListener("touchend",function(e){e.target.className==="__av-noarticle"&&(l.removeEventListener(c),__articleView.turnOff())});var h=null,p=function(t,n){if(!a._scrollingData){var r=e.localStorage.getItem("__av-reading-position");r?(r=JSON.parse(r),a._scrollingData=r instanceof Array?r:[]):a._scrollingData=[]}var i=!1;for(var s=0,o=a._scrollingData.length;s<o;s++)if(a._scrollingData[s].url===t){a._scrollingData[s].val=n,i=!0;break}i||(a._scrollingData.push({url:t,val:n}),a._scrollingData.length>25&&(a._scrollingData=a._scrollingData.slice(24)));try{e.localStorage.setItem("__av-reading-position",JSON.stringify(a._scrollingData))}catch(u){}};a.overlay.contentWindow.onscroll=function(){h&&clearTimeout(h),h=setTimeout(function(){p(location.origin+location.pathname,a.overlay.contentWindow.pageYOffset)},200)},a.addClass(u.body,"__av-body-hidden");var v=0;try{var m=e.localStorage.getItem("__av-reading-position");m?m=JSON.parse(m):m=[];if(m instanceof Array){var g=location.origin+location.pathname;for(var y=0,b=m.length;y<b;y++)if(m[y].url===g){v=m[y].val;break}}}catch(w){}a.lpr=v}},a.ammendMeta=function(){if(a.meta.author===""){var e=u.querySelector(".vcard .fn");e||(e=u.querySelector(".hcard .fn")),e||(e=u.getElementsByClassName("byline")[0]),e||(e=u.querySelector('a[rel="author"]')),e&&(a.meta.author=a.getInnerText(e).trim())}if(!a.meta.date){var t=u.getElementsByTagName("time")[0];t||(t=u.getElementsByClassName("date")[0]),t&&(a.meta.date=t.innerText.trim())}},a.printMetadata=function(){var e='<div class="__av-meta"><ul>';for(var t in a.meta)a.meta[t]!==""&&(e+='<li><span class="metaName"> '+t+":</span> "+a.meta[t]+"</li>");return e+"</ul></div>"},a.hideOverlay=function(){var e=u.getElementsByClassName(a.settings.overlayClass)[0];e&&(a.overlay.contentWindow.onscroll=null,u.documentElement.removeChild(e)),a.removeClass(u.body,"__av-body-hidden")},a.prepareDataFromSelection=function(e){var t=u.createElement("div");for(var n=0,r=e.length;n<r;n++)t.appendChild(e[n].cloneNode(1));return a.cleanByTags(t,["script","noscript","object","embed","iframe","style"]),a.cleanStyles(t),a.foundGoodArticle=1,t},a.run=function(e){var t=e&&e.nodes||[];a.data.coords=e&&e.coords||null,a.dbg.log("creating article view. Params ",t);var n;!t||!t instanceof Array||t.length===0?n=a.prepareData(t):n=a.prepareDataFromSelection(t),n===""&&t&&(a.dbg.warn("Unable to recover article from dom nodes ",t),a.dbg.warn("Trying to find article in the complete body "),n=a.prepareData()),a.data.article=n,a.showOverlay(e&&e.silent),a.gotData=!0;if(typeof a._callback=="function")try{a._callback()}catch(r){}},a.changeSettings=function(e){var t=u.getElementsByClassName(a.settings.overlayClass)[0];if(!t)return!1;t=t.contentWindow.document.body;var n=["bg","lh","m"];typeof e=="undefined"&&(e=a.settings.overlay);for(var r=0;r<n.length;r++)typeof e[n[r]]!="undefined"&&(a.removeClass(t,a.settings.bodyClass+"-"+n[r]+a.settings.overlay[n[r]]),a.settings.overlay[n[r]]=e[n[r]],a.addClass(t,a.settings.bodyClass+"-"+n[r]+a.settings.overlay[n[r]]))},a.getData=function(e,t){typeof t!="function"&&(t=function(e){a.sendStatus({article:"<doctype html><html><head><title>test</title><style></style><script></script></head><body>"+e.article+"</body></html>"})});var n=function(e,t){if(typeof e=="function")try{e(t)}catch(n){}};if(a.gotData){var r=a.data;return r.settings=a.settings.overlay,r.meta=a.meta,r.article=a.foundGoodArticle?a._articleText:"",r.gotArticle=a.foundGoodArticle,n(t,r),r}a.turnOn(e,function(){a.getData(null,t)},"silent")},a.handleSpecialEvents=function(t){t?(e.onerror=a.__onError,e.onscroll=a.__onScroll):(typeof e.onerror=="function"&&(a.__onError=e.onerror),e.onerror=function(e,t,n){a.dbg.error(e,t,n),a.sendStatus({status:"error"})},typeof e.onscroll=="function"&&(a.__onScroll=e.onScroll),e.onscroll=null)},a.turnOn=function(e,t,r){a.handleSpecialEvents(),r||a.injectCSS(n),typeof t=="function"?a._callback=t:a._callback=function(){a.sendStatus({status:"ArticleView ready",scroll:a.lpr})},e&&typeof e=="object"?i.init(e,function(e){e.silent=r,a.run(e)}):a.run({silent:r}),r||Helper.loadSettings(a.settings.overlay.bg,a.settings.overlay.lh,a.settings.overlay.m)},a.turnOff=function(){a.dbg.log("removing article view"),a.hideOverlay(),a.handleSpecialEvents("release")},{turnOn:a.turnOn,turnOff:a.turnOff,changeSettings:a.changeSettings,getData:a.getData}}(e,t);return u}(window,window.document),Helper={loadSettings:function(e,t,n){__articleView.changeSettings({bg:e,lh:t,m:n})}};
@maksimr
Copy link

maksimr commented Feb 13, 2013

What is it?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment