A linken az egyes blokk azonosítók mellett szerepel az, hogy melyik blokk (mi van a blokk címében), itt lentebb viszont
ezt inkább kihagytam.
Tartalma numen kiegészítésével:
// ==UserScript==
// @name HUP
// @namespace http://hup.hu/
// @description HUP Comment Ignore Script
// @include http://hup.hu/*
// @include http://*.hup.hu/*
// ==/UserScript==
kiemelt_szerzok = [ 'szerzo1', 'szerzo2', 'stb.' ];
eltuntetett_szerzok = [ 'szerzo1', 'szerzo2', 'stb.' ];
torolt_szerzok = [ 'szerzo1', 'szerzo2', 'stb.' ];
feeds = new Array(50, 51, 44, 54, 53, 40, 4, 46, 19, 47, 48, 41, 52);
blocks = new Array(13, 5, 30, 4, 31, 6, 15, 32, 25);
named_blocks = new Array('tagadelic-1', 'tagadelic-2', 'user-2', 'user-3');
eltuntetett_divek = new Array();
for (idx in feeds) {
eltuntetett_divek.push('block-aggregator-feed-' + feeds[idx]);
}
for (idx in blocks) {
eltuntetett_divek.push('block-block-' + blocks[idx]);
}
for (idx in named_blocks) {
eltuntetett_divek.push('block-' + named_blocks[idx]);
}
kiemeles_minta = '<div style="background-color: #E77471;" >$1</div>';
eltuntetes_minta = '<div style="background-color: #f6f6eb; color: #f6f6eb;">$1</div>';
torles_minta = '<div style="background-color: #E77471;" >(torolve)</div>';
reg_szerzo = new RegExp( '<a href="/user/\\d+"[^>]+>([^<]+)</a>' );
reg_szoveg = new RegExp( '<div class="content">([\\s\\S]*?)</div>', 'm' );
reg_uj = new RegExp( '<div class="comment comment-new">[\\s\\S]*<a id="new"></a>', 'm' );
c = document.body.innerHTML.split( /(<!-- (?:start|end) main content -->)/im );
b = c[2].split( /(<a id="comment-\d+"><\/a>)/im );
for( uj=0, i=2; i<b.length; i+=2 ){ if( b[i].search( reg_uj )>=0 ){ uj++; } }
if (uj > 0)
s = c[0].replace('>HupWiki</a></li>', '>HupWiki</a></li><li class="menu-1-6-101">'+
'<a href="#new" title="els\u0151 \u00FAj" class="menu-1-6-101">els\u0151 \u00FAj</a></li>' )+c[1]+b[0];
else
s = c[0]+c[1]+b[0];
for( id=0, i=2; i<b.length; i+=2 ){
if( b[i].search( reg_uj )>=0 ){
b[i] = b[i].replace( reg_uj, '<div class="comment comment-new"><a id="new'+((id>0)?id:'')+'"></a>' );
b[i] = b[i].replace( '<span class="new">\u00FAj\u0026nbsp;</span>',
'<span class="new">\u00FAj\u0026nbsp;'+
' <a href="#new'+ (id+1) +'">(\u25BC'+(uj-id-1)+')</a>'+
' <a href="#new'+ (id>1?id-1:'') +'">(\u25B2'+( id )+')</a>'+
' <a href="/tracker">(\u25C4)</a>\u0026nbsp;</span>' );
id++;
}
var szerzo = b[i].split( reg_szerzo );
var minta = kiemelt_szerzok .indexOf(szerzo[1])>=0 ? kiemeles_minta:
eltuntetett_szerzok.indexOf(szerzo[1])>=0 ? eltuntetes_minta:
torolt_szerzok .indexOf(szerzo[1])>=0 ? torles_minta:
null;
s += b[i-1] + (minta? b[i].replace( reg_szoveg, minta ): b[i]);
}
document.body.innerHTML = s+c[3]+c[4];
function getDiv( id )
{
div = 0;
if (document.all) { div = document.all[id];}
else { div= document.getElementById(id);}
if (div)
return div.style;
else
return 0;
}
for (div in eltuntetett_divek) {
dv = getDiv(eltuntetett_divek[div]);
if (dv) {
dv.display = "none";
}
}
space_re = new RegExp('^ +| +$');
for (link in document.links) {
link.href = link.href.replace(spaces_re, '');
}
Update: a linkek elején/végén lévő szóközöket kiveszi a szkript, így nem lesznek "...hup.hu/ /node/..." alakú linkek, hanem csak a helyes "...hup.hu/node/...". Karácsonyi ujjgyakorlatképpen :) Biztosan van ezekre jobb megoldás is, nem vagyok egy javascript guru, ennyire futja.
Hm, miért megy az a rész, hogy
space_re = new RegExp('^ +| +$')$
dollár jellel a végén a pontosvessző helyett? Ezt is javítottam, viszont meglepő.
- Panther blogja
- A hozzászóláshoz be kell jelentkezni
- 908 megtekintés
Hozzászólások
Hm. A document.all melyik böngészőnek kell? Szerintem a elgtöbb már ismeri a getElementById-t, és amelyik nem, annak az userscript is jó eséllyel tárgytalan ;)
továbbá javasolom ehelyett:
dv.visibility = "hidden";
dv.height = 0;
dv.margin = 0;
dv.padding = 0;
ezt:
dv.display = "none";
—-—-—
int getRandomNumber() {
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
Az a getDiv egy 2004-es szkriptből származik. Akkor még szerintem kellett, talán IE-nek, nem emlékszem már.
Eredetileg display: none-t akartam oda írni, de nem működött. Idővel persze leesett, hogy a style attribútummal tér vissza, és nem magával a div-vel :)
- A hozzászóláshoz be kell jelentkezni
afaik IE-re nem kell userscriptnél gondolni ;)
- A hozzászóláshoz be kell jelentkezni
jó-jó, de saját weboldalt írtam főként php-ban, némi js rásegítéssel, és ott meg kellett. És Safarinál is ezt használom, mármint egyelőre csak a régi változatot, ott meg nem tudom, hogy hogyan van :)
- A hozzászóláshoz be kell jelentkezni
http://www.quirksmode.org/compatibility.html
működik, sőt, IE-ben is 5.5-től ;)
—-—-—
int getRandomNumber() {
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
hogy kell hasznalni a hup.user.js-t?
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni
Hm, ezt elfelejtettem, köszi :)
Greasemonkey nevű add-on tudja használni, innen lehet telepíteni:
https://addons.mozilla.org/en-US/firefox/addon/748
Amúgy az elején a blokkok listája úgy jött össze, hogy az oldal forrása alapján igyekeztem csoportosítani az egyes blokk típusokat.
- A hozzászóláshoz be kell jelentkezni
Chromium alatt is működik. Természetesen greasmonkey nélkül :-).
-----
Dropbox tárhely igénylése: https://www.getdropbox.com/referrals/NTI2MzM2MjA5
- A hozzászóláshoz be kell jelentkezni
ok, kossz, megvan.
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni
Kicsit módosítottam: a weboldalamon lévő változat tartalmazza, hogy melyik blokk azonosító melyik blokk a hup-on.
- A hozzászóláshoz be kell jelentkezni
egy bug-ra szaladtam: a nyitooldalon levo cikkek hivatkozasaba (pl. 'kik a hup olvasoi') tesz egy space-t a
"http://hup.hu/" utan, pl. http://hup.hu/%20/cikkek/20091214/kik_a_hup_olvasoi_segits_es_nyerj%20.
Az a pikans egyebkent, hogy a linkben valoban van egy space a hivatkozasban az elejen ill. a vegen, pl.
href=" /cikkek/..../ ". Azonban az FF 3.5.6 a hup.user.js nelkul kepes kezelni a problemat, de a hup.user.js-sel egyutt bezavar a space.
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni
Valóban. Javítottam. Link eleji/végi space-eket kiszedi most már. Kösz az észrevételt, nem foglalkoztam eddig vele, pedig idegesített...
- A hozzászóláshoz be kell jelentkezni
kossz. Valoban lama dolog ez a href extra space-ek
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni