Generera wordpress-xml från metrobloggen

By Max Berggren Last update Nov 30, 2008 — Installed 80 times.
// ==UserScript==
// @name           Emelie
// @namespace      http://maxberggren.com
// @description    Omvandlar skit-metrobloggen till wordpress-xml som den lägger övest. Bara att klistra in i en xml-fil och ladda upp.
// @include        http://www.metrobloggen.se/*
// ==/UserScript==



var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function htmlEncode(s) {

return s.replace(/&(?!\w+([;\s]|$))/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");

}







var inlaggInnehall = document.getElementsByClassName("inlagg");
var inlaggDatum = document.getElementsByClassName("signatur");
var inlaggPerma = document.getElementsByClassName("lankar");

var inlaggRubbe = document.getElementsByClassName("inlagg");

var inlaggBilder = document.getElementsByTagName("img");


XMLwrapPre = "&lt;item&gt;<br />&lt;title&gt;";

XMLwrapEfterTitel =  "&lt;/title&gt;<br />&lt;link&gt;http://cowboyvspirate.wordpress.com/2008/11/29/duoduo/&lt;/link&gt;<br />&lt;pubDate&gt;Sat, 29 Nov 2008 17:43:49 +0000&lt;/pubDate&gt;<br />&lt;dc:creator&gt;&lt;![CDATA[cowboyvspirate]]&gt;&lt;/dc:creator&gt;<br /><br /><br />&lt;category&gt;&lt;![CDATA[Uncategorized]]&gt;&lt;/category&gt;<br /><br /><br />&lt;description&gt;&lt;/description&gt;<br />&lt;content:encoded&gt;&lt;![CDATA[";


XMLwrapEnd = "]]&gt;&lt;/content:encoded&gt;<br />&lt;excerpt:encoded&gt;&lt;![CDATA[]]&gt;&lt;/excerpt:encoded&gt;<br />&lt;wp:post_id&gt;&lt;/wp:post_id&gt;<br />&lt;wp:post_date&gt;&lt;/wp:post_date&gt;<br />&lt;wp:post_date_gmt&gt;&lt;/wp:post_date_gmt&gt;<br />&lt;wp:comment_status&gt;open&lt;/wp:comment_status&gt;<br />&lt;wp:ping_status&gt;open&lt;/wp:ping_status&gt;<br />&lt;wp:post_name&gt;duoduo&lt;/wp:post_name&gt;<br />&lt;wp:status&gt;publish&lt;/wp:status&gt;<br />&lt;wp:post_parent&gt;0&lt;/wp:post_parent&gt;<br />&lt;wp:menu_order&gt;0&lt;/wp:menu_order&gt;<br />&lt;wp:post_type&gt;post&lt;/wp:post_type&gt;<br />&lt;wp:post_password&gt;&lt;/wp:post_password&gt;<br />&lt;wp:postmeta&gt;<br />&lt;wp:meta_key&gt;_edit_last&lt;/wp:meta_key&gt;<br />&lt;wp:meta_value&gt;5688304&lt;/wp:meta_value&gt;<br />&lt;/wp:postmeta&gt;<br />&lt;wp:postmeta&gt;<br />&lt;wp:meta_key&gt;_edit_lock&lt;/wp:meta_key&gt;<br />&lt;wp:meta_value&gt;1227980632&lt;/wp:meta_value&gt;<br />&lt;/wp:postmeta&gt;<br /><br />&lt;/item&gt;";



XMLhuvud = "&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />&lt;!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. --&gt;<br />&lt;!-- It contains information about your blog's posts, comments, and categories. --&gt;<br />&lt;!-- You may use this file to transfer that content from one site to another. --&gt;<br />&lt;!-- This file is not intended to serve as a complete backup of your blog. --&gt;<br /><br />&lt;!-- To import this information into a WordPress blog follow these steps. --&gt;<br />&lt;!-- 1. Log into that blog as an administrator. --&gt;<br />&lt;!-- 2. Go to Manage: Import in the blog's admin panels. --&gt;<br />&lt;!-- 3. Choose &quot;WordPress&quot; from the list. --&gt;<br />&lt;!-- 4. Upload this file using the form provided on that page. --&gt;<br />&lt;!-- 5. You will first be asked to map the authors in this export file to users --&gt;<br />&lt;!--    on the blog.  For each author, you may choose to map to an --&gt;<br />&lt;!--    existing user on the blog or to create a new user --&gt;<br />&lt;!-- 6. WordPress will then import each of the posts, comments, and categories --&gt;<br />&lt;!--    contained in this file into your blog --&gt;<br /><br />&lt;!-- generator=&quot;WordPress/MU&quot; created=&quot;2008-11-29 17:43&quot;--&gt;<br />&lt;rss version=&quot;2.0&quot;<br />	xmlns:content=&quot;http://purl.org/rss/1.0/modules/content/&quot;<br />	xmlns:wfw=&quot;http://wellformedweb.org/CommentAPI/&quot;<br />	xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot;<br />	xmlns:wp=&quot;http://wordpress.org/export/1.0/&quot;<br />&gt;<br /><br />&lt;channel&gt;<br />	&lt;title&gt;Cowboyvspirate's Blog&lt;/title&gt;<br />	&lt;link&gt;http://cowboyvspirate.wordpress.com&lt;/link&gt;<br />	&lt;description&gt;Just another WordPress.com weblog&lt;/description&gt;<br />	&lt;pubDate&gt;Sat, 29 Nov 2008 17:43:49 +0000&lt;/pubDate&gt;<br />	&lt;generator&gt;http://wordpress.org/?v=MU&lt;/generator&gt;<br />	&lt;language&gt;en&lt;/language&gt;<br />	&lt;wp:wxr_version&gt;1.0&lt;/wp:wxr_version&gt;<br />	&lt;wp:base_site_url&gt;http://wordpress.com/&lt;/wp:base_site_url&gt;<br />	&lt;wp:base_blog_url&gt;http://cowboyvspirate.wordpress.com&lt;/wp:base_blog_url&gt;<br />	&lt;wp:category&gt;&lt;wp:category_nicename&gt;uncategorized&lt;/wp:category_nicename&gt;&lt;wp:category_parent&gt;&lt;/wp:category_parent&gt;&lt;wp:cat_name&gt;&lt;![CDATA[Uncategorized]]&gt;&lt;/wp:cat_name&gt;&lt;/wp:category&gt;<br />	<br />	<br />	<br />	<br />	";


XMLslut = "<br /><br />&lt;/channel&gt;&lt;/rss&gt;";






//DÖDA DATUM
for(var i=0; i<inlaggDatum.length; i++) { inlaggDatum[i].innerHTML = ""; }
for(var i=0; i<inlaggPerma.length; i++) { inlaggPerma[i].innerHTML = ""; }
for(var i=0; i<inlaggBilder.length; i++) { inlaggBilder[i].src = "" + inlaggBilder[i].src; }

//STOPPA IN EN DIV
main = document.getElementById('topBar');
if (main) {
    newElement = document.createElement('div');
    main.parentNode.insertBefore(newElement, main);
    newElement.innerHTML = "";
	newElement.style.margin = '30px';
    
    
//STOPPA IN INNEHÅLL I DEN    

    
    for(var i=inlaggInnehall.length-1; i>=0; i--) {


		


		
		
		//wordData = wordData.replace(/<(SPAN|P|H1|H­ 2){1}.*?>/i,''); 
		//data.replace(/<[//]{0,1}(B|b)[^><]*>/g,"");


		inlaggInnehall[i].innerHTML = inlaggInnehall[i].innerHTML.replace(/<[//]{0,1}(B|b|div|h3|H3)[^><]*>/g,"");
	
		inlaggRubbe = inlaggInnehall[i];
		inlaggRubbe = inlaggRubbe.getElementsByTagName("span");
		inlaggRubbe = htmlEncode(inlaggRubbe[0].innerHTML);
		
		
		
		inlaggInnehall[i].innerHTML = htmlEncode(inlaggInnehall[i].innerHTML);
		
		
		
		inlaggInnehall[i].innerHTML = XMLwrapPre + inlaggRubbe + XMLwrapEfterTitel + inlaggInnehall[i].innerHTML + XMLwrapEnd;
		

		newElement.innerHTML = newElement.innerHTML + inlaggInnehall[i].innerHTML + "<br /><br /><br /><br />";
		
		
	
	}
	
	newElement.innerHTML = XMLhuvud + newElement.innerHTML + XMLslut;

}





for(var i=0; i<inlaggInnehall.length; i++) {

		inlaggInnehall[i].innerHTML = "FETCHED";
	
}