Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

/prog/ userscript

Name: Anonymous 2011-01-24 8:08

it occurs to me that it should be possible for userscripts to do "collaborative moderation" on a website:

* use a userscript to add an (ignore) link to the header of each post. clicking it will add the post to the localStorage ignore-list and thus hide it.

* use ignore >>1,3-4 reason to signal to others that you've ignored those posts (and why).

* clients can decide for themselves what do if ignore directives are found in a thread (tentatively use, pop up a dialog, check tripcode... whatever)

could someone write this for us?

Name: Anonymous 2011-01-24 8:49

>>1
ignore >>- LOLOLOLOLOLO
Then repeat 100 times.

Name: Anonymous 2011-01-24 9:45

// ==UserScript==
// @name          /prog/ commander
// @version       2011 PRO DELUXE
// @namespace     tag:killitwithFIRE
// @description   YOU'RE DEAD TO ME
// @include       http://dis.4chan.org/prog/*
// @include       http://dis.4chan.org/read/prog/*
// ==/UserScript==

function showThread(thread,a)
{
  delete localStorage['hide_' + threadID]
  a.onclick = function() { hideThread(this.parentNode.parentNode.parentNode,this) }
  a.innerHTML = 'hide '
 
  delete thread.style.height
  delete thread.style.overflow
}

function hideThread(thread,a)
{
  localStorage['hide_' + threadID] = true
  a.onclick = function() { showThread(this.parentNode.parentNode.parentNode,this) }
  a.innerHTML = 'show '
 
  thread.style.height = '2em'
  thread.style.overflow = 'hidden'
}

if ( window.location.pathname == '/prog/')
{
  var threads = document.getElementsByClassName('thread');
  for (var i = 0; i < threads.length; i++) {
    var thread = threads[i];
    var navLinks = thread.getElementsByClassName('navlinks')[0];
    var threadID = thread.
      getElementsByTagName('h2')[0].
      getElementsByTagName('a')[0].name;
   
    var a = document.createElement('a')
    a.href = window.location + "#"
    navLinks.insertBefore( a, navLinks.childNodes[0])
   
    if ( localStorage['hide_' + threadID] ) hideThread(thread,a)
    else showThread(thread,a)
  }
}

Name: Anonymous 2011-01-24 11:43

What happens when you ignore a post with ignores? Should that be treated as a way of ignoring a faulty ignore definition, or of hiding a valid ignore definition? Would we have IGNORE WARS??

Name: Anonymous 2011-01-24 12:55

Look, ignore directives will at least need to be signed by a private key so users can decide what sources to trust.  Then, directives should be exchanged elsewhere in a saged thread so as not to increase the spam level.

Name: Anonymous 2011-01-24 13:02

>>20
Now if there only was some identification functionality built into the board software, and maybe it could even use salted keys so that they couldn't be bruteforced...

Name: >>20 2011-01-24 13:02

Signatures also make revocation easy.

Name: Anonymous 2011-01-26 7:47

I prefer the imageboard userscripts which have capabilities such as:
- hide specific threads or posts
- queued reporting of offending posts/threads
- hide/filter posts by various criteria (usually complex regular expressions on name/mail/post/tripcode/etc)
- additional spam-detection code, such as filtering images of specific parameters (imageboard-specific)

While such scripts are of little use if a board has little content to offer, it can be quite useful on slow boards with high PSNRs, which sometimes get some influx of noise (/b/ invasion would be such an example, or some new annoying tripfag). I tend to make use of such a script to attain a more enjoyable experience. Having one for /prog/ would be useful, as it would allow individual users to judge what they want and what they don't want to see. Sadly, I can't be bothered to code something like this as textboards are slow enough that the noise isn't that huge of an issue to look at (most of the time).

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List