diff --git a/preview.html b/preview.html
index 0f0388d..34155c0 100644
--- a/preview.html
+++ b/preview.html
@@ -4,8 +4,8 @@
-
-
+
+
diff --git a/rss.xsl b/rss.xsl
index a26b254..6c1ed58 100644
--- a/rss.xsl
+++ b/rss.xsl
@@ -19,7 +19,7 @@
@@ -60,7 +60,7 @@
-

+
(
,
)
diff --git a/rsspreview.js b/rsspreview.js
index bcde828..0d6bc9c 100644
--- a/rsspreview.js
+++ b/rsspreview.js
@@ -11,36 +11,209 @@
window.hasRun = true;
- var rootNode = document.getRootNode().documentElement;
- // for chrome
- var d = document.getElementById("webkit-xml-viewer-source-xml");
- if (d && d.firstChild)
- rootNode = d.firstChild;
+ function xhrdoc(url, type, cb) {
- const rootName = rootNode.nodeName.toLowerCase();
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, true);
+
+ xhr.responseType = 'document';
+ xhr.overrideMimeType('text/' + type);
+
+ xhr.onload = function () {
+ if (xhr.readyState === xhr.DONE) {
+ if (xhr.status === 200) {
+ var resp = (type=="xml") ? xhr.responseXML : xhr.response;
+ cb(resp);
+ }
+ }
+ };
+
+ xhr.send(null);
+
+ }
- var isRSS1 = false;
- if (rootName == "rdf" || rootName == "rdf:rdf") {
- if (rootNode.attributes['xmlns']) {
- isRSS1 = (rootNode.attributes['xmlns'].nodeValue.search('rss') > 0)
+
+ function applyxsl(xmlin, xsl, node, doc=document) {
+
+ var xsltProcessor = new XSLTProcessor();
+ xsltProcessor.importStylesheet(xsl);
+
+ var fragment = xsltProcessor.transformToFragment(xmlin, doc);
+ node.appendChild(fragment);
+
+ }
+
+ function formatdescriptions() {
+
+ // unescapes descriptions to html
+
+ var tohtml = document.getElementsByClassName("feedEntryContent");
+ for (var i = 0; i 0)
+ i = Math.floor( Math.log(size) / Math.log(1024) );
+ return ( size / Math.pow(1024, i) ).toFixed(2) * 1 + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i];
+ };
+
+ var encsz = document.getElementsByClassName("enclosureSize");
+ for (var i = 0; iFeed URL';
+ }
- var url = "preview.html?" + encodeURIComponent(feed_url);
- url = chrome.extension.getURL(url);
+ function detect() {
- // redirect to preview page with feed url as query string
- window.location.replace(url);
+ var rootNode = document.getRootNode().documentElement;
+
+ // for chrome
+ var d = document.getElementById("webkit-xml-viewer-source-xml");
+ if (d && d.firstChild)
+ rootNode = d.firstChild;
+
+ const rootName = rootNode.nodeName.toLowerCase();
+
+
+ var isRSS1 = false;
+ if (rootName == "rdf" || rootName == "rdf:rdf") {
+ if (rootNode.attributes['xmlns']) {
+ isRSS1 = (rootNode.attributes['xmlns'].nodeValue.search('rss') > 0)
+ }
+ }
+
+
+ if ( rootName == "rss" || rootName == "channel" // rss2
+ || rootName == "feed" // atom
+ || isRSS1 ) {
+
+
+ return rootNode;
+
+ }
+
+ return null;
}
+
+ function extensionimages() {
+
+ var extimgs = document.getElementsByClassName("extImg");
+ for (var i = 0; i