ACG Forum View

By landlord Last update Apr 16, 2009 — Installed 202 times. Daily Installs: 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1

There are 12 previous versions of this script.

// ==UserScript==
// @name           ACG Forum View
// @namespace      forumview
// @description    A dirty hack: provides links to the printable version of threads; currently works on vbulletin, discuz and phpwind, which should cover 90% of major acg forum. (deprecated)
// @include        http://*.popgo.net/bbs/forumdisplay.php*
// @include        http://popgo.net/bbs/forumdisplay.php*
// @include        http://bbs.saraba1st.com/forum*
// @include        http://www.saraba1st.com/forum*
// @include        http://bbs.sumisora.com/thread*
// @include        http://www.sumisora.com/bbs/thread*
// @version        1.2.2
// ==/UserScript==

function forumprint(event){
  Items = document.getElementsByTagName('a');
  //vbulletin
  rexa = /showthread\.php/i;
  rexb = /goto|pagenumber|page|post/i;
  //discuz
  rexc = /thread-/i;
  rexd = /-1-1\.html/i;
  rexe = /viewthread\.php/i;
  rexf = /page/i;
  //phpwind
  rexg = /read\.php/i;
  rexh = /page|thread/i;
  rexi = /read-htm-tid/i;
  rexj = /a_ajax/i;
  //discuz nt
  rexl = /showtopic-/i;
  rexm = /archiver/i;
  var i = 0;
  //quick fix to avoid looping forever, not fixing the actual problem...
  while (i < Items.length && i < 1000) {
    var thread = Items[i];
    //vbulletin
    if(rexa.test(thread.href) && !rexb.test(thread.href)) {
      var url = thread.href.replace(/showthread\.php\?/i, "printthread.php?perpage=500&");
      var newnode = thread.parentNode.parentNode;
      var newlink = document.createElement('a');
      newlink.href = url;
      newlink.target = '_blank';
      newlink.appendChild(document.createTextNode('[print]'));
      if(newnode.id == "") {
        newnode.appendChild(newlink);
      }
    }
    //discuz
    if((rexc.test(thread.href) && rexd.test(thread.href)) || (rexe.test(thread.href) && rexf.test(thread.href))) {
      var url = thread.href.replace(/thread/i, "archiver/tid");
      var urla = thread.href.replace(/thread-/i, "viewthread.php\?action=printable&tid=");
      var urla = urla.replace(/-1-1\.html/i,"")
      var newnode = thread.parentNode;
      var newlink = document.createElement('a');
      var newlinka = document.createElement('a');
      newlink.href = url;
      newlink.target = '_blank';
      newlink.appendChild(document.createTextNode('[archive]'));
      newlinka.href = urla;
      newlinka.target = '_blank';
      newlinka.appendChild(document.createTextNode('[print]')); 
      if(newnode.id !== "") {
        newnode.appendChild(newlink);
        newnode.appendChild(newlinka);
      }
    }
    //phpwind
    if((rexg.test(thread.href) && !rexh.test(thread.href)) || (rexi.test(thread.href) && !rexh.test(thread.href))) {
      var url = thread.href.replace(/read\.php\?tid\=/i, "simple/index.php\?t");
      var url = url.replace(/read\.php\?tid\-/i, "simple/index.php\?t");
      var url = url.replace(/read-htm-tid-/i, "simple/index.php\?t");
      var url = url.replace(/\.html/i, "");
      url += "\.html"; 
      var newnode = thread.parentNode;
      var newlink = document.createElement('a');
      newlink.href = url;
      newlink.target = '_blank';
      newlink.appendChild(document.createTextNode('[simple]'));
      if(rexj.test(thread.id)) {
        newnode.appendChild(newlink);
      }
    }
    //discuz nt
    //to do
    i++;
  }
}

forumprint();