Fix for Digg's Link Problem

By pile0nades Last update Oct 10, 2006 — Installed 453 times.
// ==UserScript==
// @name           Fix for Digg's Link Problem
// @namespace      http://pile0nades.wordpress.com/
// @description    When a link is posted between two parentheses "(http://google.com/)" the right paren is included in the address, which breaks it. This Greasemonkey script fixes it.
// @include        http://*digg.com/*
// ==/UserScript==

var link, rightparen, bits, i, j;
var b0rked = get("//div[@class='c-body-inside']//a");
var shit = [
  ")",
  escape("}")
]
var notshit = [
  "(",
  escape("{")
]

for(i=0; i<b0rked.snapshotLength; i++) {
  link = b0rked.snapshotItem(i);

  for(j=0; j<shit.length; j++) {
    if(
      link.href.indexOf(shit[j]) != -1 &&
      link.href.indexOf(notshit[j]) == -1
    ) {
      bits = unescape(link.href.substring(link.href.indexOf(shit[j]), link.href.length));
      link.href = link.href.substring(0, link.href.indexOf(shit[j]));
      link.innerHTML = link.href;

      rightparen = document.createTextNode(bits);
      link.parentNode.insertBefore(rightparen, link);
      link.parentNode.insertBefore(link, rightparen);
    }
  }
}



// xpath function
function get(query) {
  return document.evaluate(
    query,
    document,
    null,
    XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
    null
  );
}