Main Page: Difference between revisions

From GreaseSpot Wiki
Jump to navigationJump to search
m (This Script changes the top of all myspace pages to green. excluding the homepage and other profile pages. anywhere it has a blue header normally will be changed. Also removes the header ads.)
(Replace us.o link with a page for script hosting links.)
(21 intermediate revisions by 13 users not shown)
Line 1: Line 1:
// ==UserScript==
'''GreaseSpot''' is community documentation for [[user script]]ing with [[Greasemonkey]].
// @name            Green Head Myspace
// @namespace      Platypus
// @include        http://*.myspace.com/*
// @exclude        http://home.myspace.com/*
// ==/UserScript==
function do_platypus_script() {
remove_it(window.document,document.getElementById('leaderboard'),null,null,null);
set_style_script(window.document,document.getElementById('googlebar'),"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[1]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[2]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.getElementById('nav1000000'),"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[3]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[4]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[5]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[6]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[7]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.getElementById('topnav'),"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[2]/A[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/SCRIPT[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[2]/SPAN[1]/DIV[1]/FORM[1]/DIV[2]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"background-color: green;",null,null);
set_style_script(window.document,document.getElementById('leftNav'),"color: green;background-color: green;",null,null);
set_style_script(window.document,document.evaluate('/HTML[1]/BODY[1]/DIV[1]/DIV[1]/DIV[3]/UL[1]/LI[7]/UL[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,"color: white;background-color: gray;",null,null);
}; // Ends do_platypus_script
window.addEventListener("load", function() { do_platypus_script() }, false);
var gplatypusBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService);
var mystrings = gplatypusBundle.createBundle("chrome://platypus/locale/platypusCore.properties");
var platypusplatypuscouldntfi1 = mystrings.GetStringFromName("platypusplatypuscouldntfi1");
var platypusthisusuallyhappens = mystrings.GetStringFromName("platypusthisusuallyhappens");


//
<!-- I'm not fond of the mess of HTML here, but it's especially helpful to have an attractive and easy-to-use main page. -->
//  Mon Dec 19 15:59:37 2005 -- Scott R. Turner
<table style='min-width: 35em; max-width: 60em; margin: 1em auto; float: none;' class='infobox'>
//  Short, uncommented file containing all the code to implement Platypus
<tr>
//  actions. Can be "included" into the Platypus script.
<th style='width: 50%; text-align: center;'>For All Users</th>
//
<th style='width: 50%; text-align: center;'>For Script Authors</th>
//
</tr>
//
<tr>
function walk_down(node, func) {
<td>
  if (node.nodeType == 1) {
* [[Greasemonkey Manual]]
    if (node.tagName != "IMG") func(node);
* [[FAQ]]
    if (node.childNodes.length != 0)
* [[Troubleshooting (Users)]]
      for (var i=0; i<node.childNodes.length; i++)
* [[User Script Hosting]]
walk_down(node.childNodes.item(i),func);
</td>
  }
<td>
}
* [[Avoid Common Pitfalls in Greasemonkey]]
function make_bw(doc, node) {
* [[Greasemonkey Manual:API|API reference]]
  walk_down(node,
* [[Troubleshooting (Script Authors)]]
            function (node) {
* [[Security]]
      if (node.tagName != 'A') {
* [[Tutorials]]
  node.bgcolor = "white";
* [[:Category:Coding Tips]]
  node.color = "black";
* [[:Category:Scripting context]]
  node.style.backgroundColor = "white";
</td>
  node.style.color = "black";
</tr>
  node.style.backgroundImage = "";
</table>
      }});
}
function center_it(doc, node) {
  var center_node = doc.createElement ("CENTER");
  node.parentNode.insertBefore(center_node, node);
  node.parentNode.removeChild(node); 
  center_node.appendChild(node);
  return center_node;
};
function erase_it(doc, node) {
  var offset_height = node.offsetHeight;
  var offset_width = node.offsetWidth;
  var replacement_div = doc.createElement ("DIV");
  replacement_div.setAttribute('style',
      "height: "+offset_height+"; width: "+offset_width+";");
  node.parentNode.insertBefore(replacement_div, node);
  node.style.display = "none";
  return replacement_div;
};
function smart_remove(doc, node) {
    if (node.parentNode.childNodes.length == 1) {
smart_remove(doc, node.parentNode);
    } else {
remove_it(doc, node);
    };
};
function remove_it(doc, node) {
  if (doc == null || node == null) return;
  if (!node.parentNode) return;
  node.style.display = "none";
  doc.last_removed_node = node;
};
function script_paste(doc, where, what) {
    var new_node = what.cloneNode(true);
    new_node.style.display = "";
    where.parentNode.insertBefore(new_node, where);
};
function isolate(doc, node) {
  if (!node.parentNode) return;
  node.parentNode.removeChild(node);
  while (doc.body.childNodes.length > 0) {
    doc.body.removeChild(doc.body.childNodes[0]);
  };
  var replacement_div = doc.createElement ("DIV");
  replacement_div.setAttribute('style',
      "margin: 0 2%; text-align: left");
  replacement_div.appendChild(node);
  doc.body.appendChild(replacement_div);
};
function set_style_script(doc, element, new_style) {
    element.setAttribute('style', new_style);
};
function modify_single_url(doc, match_re, replace_string, node) {
    if (node.href) {
node.href = node.href.replace(match_re, replace_string);
    };
};
function do_modify_url_it(doc, node, match_re, replace_string, global_flag) {
    match_re = new RegExp(match_re);
    if (global_flag) {
var allurls = doc.getElementsByTagName('A');
for(var i = 0, url; url = allurls[i]; i++)
  modify_single_url(doc, match_re, replace_string, url);
    } else {
modify_single_url(doc, match_re, replace_string, node);
    };
};
function do_modify_html_it(doc, element, match_re, replace_string) {
    match_re = new RegExp(match_re);
    if (element.innerHTML) {
element.innerHTML = element.innerHTML.replace(match_re, replace_string);
    };
};
function relax(doc, node) {
  walk_down(node, function (node) {
      node.style.width = 'auto';
      node.style.marginLeft = '0pt';
      node.style.marginRight = '0pt';
      if (node.width) node.width = null; });
}
function fix_page_it(doc, node) {
    doc.background = null;
    doc.bgColor = "white";
    if (doc.style) {
      doc.style.backgroundColor = "white";
      doc.style.backgroundImage = "none";
      if (doc.style.color == "white") {
doc.style.color = "black";
      };
      if (doc.text == "white") {
doc.text = "black";
      };
    };
    doc.body.background = null;
    doc.body.bgColor = "white";
    if (doc.body.style) {
      doc.body.style.backgroundColor = "white";
      doc.body.style.backgroundImage = "none";
      if (doc.body.style.color == "white") {
doc.body.style.color = "black";
      };
      if (doc.body.text == "white") {
doc.body.text = "black";
      };
    };
};
function insertAfter(newNode, target) {
    var parent = target.parentNode;
    var refChild = target.nextSibling;
    if(refChild != null)
parent.insertBefore(newNode, refChild);
    else
parent.appendChild(newNode);
};
function html_insert_it(doc, element, new_html, before, insert_as_block) {
  var new_element;
  if (insert_as_block) {
    new_element = doc.createElement ("DIV");
  } else {
    new_element = doc.createElement ("SPAN");
  };
  new_element.innerHTML = new_html;
  if (before) {
      element.parentNode.insertBefore(new_element, element);
  } else {
      insertAfter(new_element, element);
  };
};
function auto_repair_it(doc, node) {
  Dump("In auto_repair_it...");
  var biggest_elem = find_biggest_elem(doc);
  Dump("biggest_elem = "+biggest_elem);
  isolate(doc, biggest_elem);
  Dump("After isolate.");
  relax(doc, biggest_elem);
  Dump("After relax.");
  make_bw(doc, biggest_elem);
  Dump("After make_bw.");
  fix_page_it(doc, biggest_elem);
  Dump("After fix_page_it.");
};
function find_biggest_elem(doc) {
  const big_element_limit = 0.25;
  var size_of_doc = doc.documentElement.offsetHeight *
      doc.documentElement.offsetWidth;
  var body = doc.body;
  var size_of_body = body.offsetHeight * body.offsetWidth;
  if (size_of_body < (0.80 * size_of_doc)) {
      size_of_body = size_of_doc;
  };
  var max_size = 0;
  var max_elem = doc;
  /*
  var allElems = doc("//*",
    doc, null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
  Dump("allElems = "+allElems);
  Dump("allElems.snapshotLength = "+allElems.snapshotLength);
  for (var i = 0; i < allElems.snapshotLength; i++) {
    var thisElem = allElems.snapshotItem(i);
  */
   
  var allElems = doc.getElementsByTagName("*");
  Dump("allElems = "+allElems);
  Dump("allElems.snapshotLength = "+allElems.length);
  for (var i = 0; i < allElems.length; i++) {
      var thisElem = allElems[i];
      var thisElem_size = thisElem.offsetHeight * thisElem.offsetWidth;


      if (thisElem_size < size_of_body &&
Last resort?
  thisElem_size > max_size &&
Try reading the [[Getting Help]] page.
  !contains_big_element(thisElem, size_of_body * big_element_limit)) {
<br><br><br><br><br><br><br><br><br><br><br><br>
  max_size = thisElem_size;
  max_elem = thisElem;
      };
  };
  Dump("Max elem = "+max_elem.tagName);
  return max_elem;
};


function contains_big_element(node, limit) {
<!--
    if (node.childNodes.length != 0)
arantius: I want the main page to be clean and clear, a portal to documents that themselves may lead to content. These links are noisy and not terribly helpful. I plan on reworking their content to be easier to navigate through and adding them back.
for (var i=0; i<node.childNodes.length; i++) {
    var child = node.childNodes.item(i);
    var child_size = child.offsetHeight * child.offsetWidth;
    if (child_size > limit) return true;
};
    return false;
};


function platypus_do(win, func_name, o, other, other2, other3) {
* [[Controlling userscripts in sub windows]]
    var func = eval(func_name);
* [[Security tips]]
    var doc = null;
* [[Cross-browser userscripting]]
    if (func == null) return;
-->
    if (!o) {
Warning(platypusplatypuscouldntfi1+
func_name+platypusthisusuallyhappens);
    };
    doc = win.document;
    func(doc, o, other, other2, other3);
};
 
//.user.js

Revision as of 14:18, 3 March 2014