Feedly Colorful Listview Mod

Feedly Colorful Listview Mod working with Chrome

当前为 2016-09-13 提交的版本,查看 最新版本

// ==UserScript==
// @name           Feedly Colorful Listview Mod
// @id             FeedlyColorfulListviewMod
// @version        0.0.8.20160913
// @description    Feedly Colorful Listview Mod working with Chrome
// @namespace      https://greasyfork.org/pl/users/66016-marcindabrowski
// @match          *://*.feedly.com/*
// @grant          GM_addStyle
// @run-at         document-end
// ==/UserScript==
var ColorfulListView = function () {
	this.initialize.apply(this, arguments);
};

ColorfulListView.prototype = {
	initialize:function () {
		this.colors = {};
	},
    makeColor:function (str) {
		var h = 0;
        for (var i = 0; i < str.length; i++) {
            h += str.charCodeAt(i);
        }
		return {"h":(h%36+1)*10, "s":30 + (h%5+1)*10};
	},
	color:function (item) {
		var itemid = item.id.replace(/^([^=]+).*$/, "$1");
		item.setAttribute("data-color", itemid);
		if (this.colors[itemid]!==undefined) return null;
		this.colors[itemid] = this.makeColor(itemid);
		GM_addStyle(
			"div[data-color='" + itemid + "'] {background:hsl(" + this.colors[itemid]['h'] + "," + this.colors[itemid]['s'] + "%,80%) !important;}"	+
            "div[data-color='" + itemid + "']:hover {background:hsl(" + this.colors[itemid]['h'] + "," + this.colors[itemid]['s'] + "%,70%) !important;}"
		);
	}
};
var mo = new MutationObserver(function (mutations) {
	var colorfulListViewObj = new ColorfulListView();
	mutations.forEach(function (mutation) {
		Array.prototype.slice.call(mutation.addedNodes).forEach(function (node) {
			if (node.className===undefined || node.className.indexOf("u0Entry")==-1) return null;
			if (node.getAttribute("data-color")!==null) return null;
			colorfulListViewObj.color(node);
		});
	});
});
mo.observe(document.getElementById("box"), {childList:true, subtree:true});