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

New version of shiichan filter

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-25 12:12

// ==UserScript==
// @id             Shiichan
// @name           Shiichan
// @version        1.5
// @namespace      4chan
// @author         FrozenVoid
// @description    Provides Shiichan enchancements
// @include        http://dis.4chan.org/*
// @run-at         document-end
// ==/UserScript==
//preemptively block all content and reveal it only if filter mismatch occurs
GM_addStyle(".label,.label,.namelabel,.navlinks,.postername,.postfieldleft,.emailfield,blockquote,.threadlink,h2{display:none;}")
var fullthreads=1;
var maxrows=7;
var maxcols=140;

function rem(x) x.parentNode.removeChild(x)
function tag(name) unsafeWindow.document.getElementsByTagName(name)
function cla(name) unsafeWindow.document.getElementsByClassName(name)
function id(name)  unsafeWindow.document.getElementById(name)
function log(data) GM_log(data)
function tistr(data)  unsafeWindow.document.title=(data).toString()
function geto(obj) XPCNativeWrapper.unwrap(obj)
function sa(obj,att,val) obj.setAttribute(att,val)
function ga(obj,att) obj.getAttribute(att)
function sall(arr,att,val){ for(i in arr)sa(arr[i],att,val);}
var filter=/postfilter|postfilter2/gim
var namefilter=/namefilter|namefilter2/gim
var a,i,postfilter=filter,linkfilter=filter;
a=tag('textarea');sall(a,'rows',maxrows);sall(a,'cols',maxcols);
if(fullthreads){a=tag('a');//fix thread links
for(i in a)if(a[i].href.search('-')!=-1)a[i].href=a[i].href.replace(/\/\d+\-\d+|\/\d+\-/,'');}
a=tag('blockquote');abl=a.length;
for(var i=0;i<abl;i++){
if(a[i]&& a[i].innerHTML.search(postfilter)==-1){
sa(a[i],"style","display:block");}else{
a[i].parentNode.innerHTML+='[Post filtered]'
//view Selection source for hidden comments
}}
a=cla('threadlink');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=tag('h2');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=cla('postername');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(namefilter)==-1){
sa(a[i],"style","display:inline");}}

Name: Anonymous 2011-11-25 12:25

no1curr

Name: Anonymous 2011-11-25 12:37

My anti-name fag script filtered out OP.

Name: Anonymous 2011-11-25 12:46

Why don't you use the code tags?

Name: Anonymous 2011-11-25 13:18

Filter my anus!

Name: TYRELL JONES 2011-11-25 13:35

Javascript newbie here. How tha fuk do u dis?

Name: Anonymous 2011-11-25 13:37

>>6
smoke trees nigga

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-25 13:46

>>7
write javascript everyday, you can write  .htm file with embedded <script> tags in any editor, test in any JS capable browser.
If you see a site which can be enchanced you write a userscript for it.
if you see a clever .js hack/demo/script reimplement and/or enchance it
I can write 100kb of javascript every day, with minimum of effort.

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 3:47

// ==UserScript==
// @id             Shiichan
// @name           Shiichan
// @version        1.6
// @namespace      4chan
// @author         FrozenVoid
// @description    Provides Shiichan enchancements
// @include        http://dis.4chan.org/*
// @run-at         document-end
// ==/UserScript==
//1.6 update: monospace posts, count filtered post size, and setFilter via menu

GM_addStyle(".label,.label,.namelabel,.navlinks,.postername,.postfieldleft,.emailfield,blockquote,.threadlink,h2{display:none;}")
var fullthreads=1;
var maxrows=7;
var maxcols=140;
FORCE_MONOSPACE=0;
SHOW_FILTERED_SIZE=1;
function rem(x) x.parentNode.removeChild(x)
function tag(name) unsafeWindow.document.getElementsByTagName(name)
function cla(name) unsafeWindow.document.getElementsByClassName(name)
function id(name)  unsafeWindow.document.getElementById(name)
function log(data) GM_log(data)
function tistr(data)  unsafeWindow.document.title=(data).toString()
function geto(obj) XPCNativeWrapper.unwrap(obj)
function sa(obj,att,val) obj.setAttribute(att,val)
function ga(obj,att) obj.getAttribute(att)
function sall(arr,att,val){ for(i in arr)sa(arr[i],att,val);}
function setfilter(data){GM_setValue("filter",data);}
function setfilt(){var data=prompt("Edit filter",GM_getValue("filter",/filter data/gim));
setfilter(data);
}
function getfilter(){return GM_getValue("filter","/123456789/gim");}
GM_registerMenuCommand("SetFilter", setfilt,"s")
var filter=getfilter()
var namefilter=filter;
var a,i,postfilter=filter,linkfilter=filter;
a=tag('textarea');sall(a,'rows',maxrows);sall(a,'cols',maxcols);
if(fullthreads){a=tag('a');//fix thread links
for(i in a)if(a[i].name&&a[i].href.search('-')!=-1)a[i].href=a[i].href.replace(/\/\d+\-\d+|\/\d+\-/,'');}
a=tag('blockquote');abl=a.length;
for(var i=0;i<abl;i++){
if(a[i]&& a[i].innerHTML.search(postfilter)==-1){
if(FORCE_MONOSPACE){a[i].innerHTML="<code>"+a[i].innerHTML+"</code>"}
sa(a[i],"style","display:block");}else{
a[i].parentNode.innerHTML+='[Post filtered:'+(SHOW_FILTERED_SIZE?a[i].textContent.length+' bytes]':']')
//view Selection source for hidden comments
}}
a=cla('threadlink');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=tag('h2');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=cla('postername');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(namefilter)==-1){
sa(a[i],"style","display:inline");}}

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:11

Also complementary script i use for prefill(does not need to be enabled at same time, just a nice thing to have)
// ==UserScript==
// @id             TripCode
// @name           TripFiller
// @version        1.0
// @namespace      All
// @author         FrozenVoid
// @description   
// @include        http://dis.4chan.org/prog/*
// @include        http://dis.4chan.org/read/prog/*
// @run-at         document-end
// ==/UserScript==
EMAIL=""
NAME='name##tripcode';
TEXT=""
function tag(name) unsafeWindow.document.getElementsByTagName(name)
var a=tag('input'),i;
for(i in a){
if(!a[i]) continue;
switch(a[i].name){
case "kotehan":;
a[i].value=NAME;
case "meiru";a[i].value=EMAIL
case "com":a[i].value=TEXT
break;
default:;;break;}}

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:17

// ==UserScript==
// @id             TripCode
// @name           TripFiller
// @version        1.0
// @namespace      All
// @author         FrozenVoid
// @description   
// @include        http://dis.4chan.org/prog/*
// @include        http://dis.4chan.org/read/prog/*
// @run-at         document-end
// ==/UserScript==
//actual version that works(the above was copied from the script with some errors)
EMAIL=""
NAME='name##tripcode';
TEXT=""
function tag(name) unsafeWindow.document.getElementsByTagName(name)
var a=tag('input'),i;
for(i in a){
if(!a[i]) continue;
switch(a[i].name){
case "kotehan":;
a[i].value=NAME;break
case "meiru":a[i].value=EMAIL;break
case "com":a[i].value=TEXT;break
default:;;break;}}

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:22

// ==UserScript==
// @id             TripCode
// @name           TripFiller
// @version        1.1
// @namespace      All
// @author         FrozenVoid
// @description   
// @include        http://dis.4chan.org/prog/*
// @include        http://dis.4chan.org/read/prog/*
// @run-at         document-end
// ==/UserScript==
//another fix so it loads from pref menu
function setTrip(){var data=prompt("Edit name/tripcode",GM_getValue("name",""));
GM_setValue("name",data)}
GM_registerMenuCommand("SetTrip", setTrip,"t")
EMAIL=""
NAME=GM_getValue("name","");
TEXT=""
function tag(name) unsafeWindow.document.getElementsByTagName(name)
var a=tag('input'),i;
for(i in a){
if(!a[i]) continue;

switch(a[i].name){
case "kotehan":;
a[i].value=NAME;break
case "meiru":a[i].value=EMAIL;break
case "com":a[i].value=TEXT;break
default:;;break;}}

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:30

// ==UserScript==
// @id             TripCode
// @name           TripFiller
// @version        1.3
// @namespace      All
// @author         FrozenVoid
// @description   
// @include        http://dis.4chan.org/prog/*
// @include        http://dis.4chan.org/read/prog/*
// @run-at         document-end
// ==/UserScript==
//refactoring
function tag(name){return unsafeWindow.document.getElementsByTagName(name)}
function filldata(){
var a=tag('input'),i;
var EMAIL=GM_getValue("email","");
var NAME=GM_getValue("name","");
var  TEXT=GM_getValue("text","");
for(i in a){
if(!a[i]) continue;

switch(a[i].name){

case "kotehan":;
a[i].value=NAME;break
case "meiru":a[i].value=EMAIL;break
case "com":a[i].value=TEXT;break
default:;;break;}}}
function setTrip(){var data=prompt("Edit name/tripcode",GM_getValue("name",""));
GM_setValue("name",data);filldata();}
function setMail(){var data=prompt("Edit email",GM_getValue("email",""));GM_setValue("email",data);filldata();}
function setText(){var data=prompt("Edit default text",GM_getValue("text",""));
GM_setValue("text",data);filldata();}

GM_registerMenuCommand("SetText", setText,"e")
GM_registerMenuCommand("SetMail", setMail,"m")
GM_registerMenuCommand("SetTrip", setTrip,"t")

filldata();

Name: Anonymous 2011-11-30 4:41

>>12,13

Where's version 1.2?

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:43

It was in the middle of refactoring, with a slightly simpler filldata/no filldata at end of Setfuncs

Name: Anonymous 2011-11-30 4:51

>>15

REFACTOR MY ANUS

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 4:52

// ==UserScript==
// @id             TripCode
// @name           TripFiller
// @version        1.4
// @namespace      All
// @author         FrozenVoid
// @description   
// @include        http://dis.4chan.org/prog/*
// @include        http://dis.4chan.org/read/prog/*
// @run-at         document-end
// ==/UserScript==
//fixes textarea fill
function tag(name){return unsafeWindow.document.getElementsByTagName(name)}
function filldata(){
var a=tag('input'),c=tag("textarea"),i;
var EMAIL=GM_getValue("email","");
var NAME=GM_getValue("name","");
var  TEXT=GM_getValue("text","");
for(i in c){c[i].value=TEXT;}
for(i in a){
if(!a[i]) continue;

switch(a[i].name){

case "kotehan":;
a[i].value=NAME;break
case "meiru":a[i].value=EMAIL;break

default:;;break;}}}
function setTrip(){var data=prompt("Edit name/tripcode",GM_getValue("name",""));
GM_setValue("name",data);filldata();}
function setMail(){var data=prompt("Edit email",GM_getValue("email",""));GM_setValue("email",data);filldata();}
function setText(){var data=prompt("Edit default text",GM_getValue("text",""));
GM_setValue("text",data);filldata();}

GM_registerMenuCommand("SetText", setText,"e")
GM_registerMenuCommand("SetMail", setMail,"m")
GM_registerMenuCommand("SetTrip", setTrip,"t")

filldata();

Name: Anonymous 2011-11-30 4:59

// @include        http://dis.4chan.org/prog/*
>
// @include        http://dis.4chan.org/read/prog/*

Oh great, don't know what's worse, Frozenvoid's ENTERPRISE QUALITY code or Shii[sub]t[/sup]chan's URL parser.

Admit it FV, you wrote this board.

Name: Anonymous 2011-11-30 5:01

oh fuck it

Name: Anonymous 2011-11-30 5:35

Still waiting for version 1.5

Name: F r o z e n V o i d !!mJCwdV5J0Xy2A21 2011-11-30 6:13

// ==UserScript==
// @id             Shiichan
// @name           Shiichan
// @version        1.7
// @namespace      4chan
// @author         FrozenVoid
// @description    Provides Shiichan enchancements
// @include        http://dis.4chan.org/*
// @run-at         document-end
// ==/UserScript==
//1.7 merged tripfiller code
GM_addStyle(".label,.label,.namelabel,.navlinks,.postername,.postfieldleft,.emailfield,blockquote,.threadlink,h2{display:none;}")
var fullthreads=1;
var maxrows=7;
var maxcols=140;
FORCE_MONOSPACE=0;
SHOW_FILTERED_SIZE=1;
function rem(x) x.parentNode.removeChild(x)
function tag(name) unsafeWindow.document.getElementsByTagName(name)
function cla(name) unsafeWindow.document.getElementsByClassName(name)
function id(name)  unsafeWindow.document.getElementById(name)
function log(data) GM_log(data)
function tistr(data)  unsafeWindow.document.title=(data).toString()
function geto(obj) XPCNativeWrapper.unwrap(obj)
function sa(obj,att,val) obj.setAttribute(att,val)
function ga(obj,att) obj.getAttribute(att)
function sall(arr,att,val){ for(i in arr)sa(arr[i],att,val);}
function setfilter(data){GM_setValue("filter",data);}
function setfilt(){var data=prompt("Edit filter",GM_getValue("filter",/filter data/gim));
setfilter(data);
}
function getfilter(){return GM_getValue("filter","/123456789/gim");}
GM_registerMenuCommand("SetFilter", setfilt,"s")
var filter=getfilter()
var namefilter=filter;
var a,i,postfilter=filter,linkfilter=filter;
a=tag('textarea');sall(a,'rows',maxrows);sall(a,'cols',maxcols);
if(fullthreads){a=tag('a');//fix thread links
for(i in a)if(a[i].name&&a[i].href.search('-')!=-1)a[i].href=a[i].href.replace(/\/\d+\-\d+|\/\d+\-/,'');}
a=tag('blockquote');abl=a.length;
for(var i=0;i<abl;i++){
if(a[i]&& a[i].innerHTML.search(postfilter)==-1){
if(FORCE_MONOSPACE){a[i].innerHTML="<code>"+a[i].innerHTML+"</code>"}
sa(a[i],"style","display:block");}else{
a[i].parentNode.innerHTML+='[Post filtered:'+(SHOW_FILTERED_SIZE?a[i].textContent.length+' bytes]':']')
//view Selection source for hidden comments
}}
a=cla('threadlink');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=tag('h2');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(linkfilter)==-1){
sa(a[i],"style","display:block");}}

a=cla('postername');for(i=0;i<a.length;i++){
if(a[i]&&a[i].innerHTML.search(namefilter)==-1){
sa(a[i],"style","display:inline");}}

function filldata(){
var a=tag('input'),c=tag("textarea"),i;
var text=GM_getValue("text",""),name=GM_getValue("name",""),email=GM_getValue("email","");
if(text)for(i in c){if(c[i].name=='com')c[i].value=text}
if(email)for(i in a){if(a[i].name=='meiru')a[i].value=email}
if(name)for(i in a){if(a[i].name=='kotehan')a[i].value=name}}

function setpro(x){
var data=prompt("Edit "+x,GM_getValue(x,""));
GM_setValue(x,data);filldata();}
function setTrip(){setpro("name")}
function setMail(){setpro("email")}
function setText(){setpro("text")}
GM_registerMenuCommand("setText",setText)
GM_registerMenuCommand("setTrip",setTrip)
GM_registerMenuCommand("setMail",setMail)
filldata();

Name: Anonymous 2011-11-30 8:23

check 'em

Name: Anonymous 2011-11-30 10:34

>>22
holy fuck !!!

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