Twitter Inspector

By invader Last update Oct 29, 2007 — Installed 136 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// Brian Shaler's AutoSmile for Flickr
// version 1.0
// 2007.10.21
// Copyright (c) 2007 - Brian Shaler
// Brian's Interwebs: // http://brian.shaler.name/
// Brian's Blog: // http://brianshaler.com/blog/
// brian@shaler.name // Feedback is ALWAYS appreciated!
// --------------------------------------------------------------------
// This is a Greasemonkey user script.
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// --------------------------------------------------------------------
// ==UserScript==
// @name          Twitter Inspector
// @namespace     http://brian.shaler.name/twitter/inspector/
// @description   Displays profile design settings when you view a Twitter user's profile.
// @include       http://twitter.com/*
// ==/UserScript==

body = document.getElementsByTagName("body")[0];

if (body.id == "profile")
{
  styles = document.getElementsByTagName("style");
  side = document.getElementById("side");

  for (var i = 0; i<styles.length; i++)
  {
    if (styles[i].innerHTML.indexOf("body") > -1)
    {
      pieces = styles[i].innerHTML.split("}");
      for (var j = 0; j<pieces.length; j++)
      {
        pieces[j] = pieces[j].split("\n").join("");
        pieces[j] = pieces[j].split(": ").join(":");
        targ = pieces[j].split("{");
        if (targ.length == 2)
        {
          targ[0] = targ[0].split(" ").join("");
          sub = targ[1].split(";");
          for (var k = 0; k<sub.length; k++)
          {
            key = sub[k].substring(0, sub[k].indexOf(":"));
            val = sub[k].substring(key.length + 1, sub[k].length);
            key = key.split(" ").join("");
            if (targ[0] == "body" && key == "background-color")
            {
              myBackgroundColor = val;
            }
            if (targ[0] == "body" && key == "background")
            {
              myBGImage = "<a href='"+val.substring(val.indexOf("url(")+4, val.indexOf(")"))+"'>Link</a>";
            }
            if (targ[0] == "body" && key == "color")
            {
              myTextColor = val;
            }
            if (targ[0] == "h2.thumb,h2.thumba" && key == "color")
            {
              myNameColor = val;
            }
            if (targ[0] == "a" && key == "color")
            {
              myLinkColor = val;
            }
            if (targ[0] == "#side" && key == "background-color")
            {
              mySideFillColor = val;
            }
            if (targ[0] == "#side" && key == "border")
            {
              mySideBorderColor = val.substring(val.indexOf("#"), val.length);
            }
          }
        }
      }
    }
  }
  div = document.createElement("div");
  div.className = "section";
  side.insertBefore(div, null);
  innerhtml = "<br class='clear' /><div class='section-header'><h1>Profile Settings</h1></div>";
  innerhtml += "<ul class='stats'>";
  innerhtml += "<li><span class='label'>Background</span><span class='stats_count'>"+myBackgroundColor+"</span></li>";
  innerhtml += "<li><span class='label'>BG Image</span><span class='stats_count'>"+myBGImage+"</span></li>";
  innerhtml += "<li><span class='label'>Text</span><span class='stats_count'>"+myTextColor+"</span></li>";
  innerhtml += "<li><span class='label'>Name</span><span class='stats_count'>"+myNameColor+"</span></li>";
  innerhtml += "<li><span class='label'>Link</span><span class='stats_count'>"+myLinkColor+"</span></li>";
  innerhtml += "<li><span class='label'>Sidebar Fill</span><span class='stats_count'>"+mySideFillColor+"</span></li>";
  innerhtml += "<li><span class='label'>Sidebar Border</span><span class='stats_count'>"+mySideBorderColor+"</span></li>";
  innerhtml += "</ul>";
  div.innerHTML = innerhtml;
}