|
Post Reply |
Tweet | Thread Tools |
#1
|
|||
|
|||
![]() |
#2
|
|||
|
|||
![]() Last edited by midorinet; 2nd August 2011 at 11:17 PM. |
#3
|
|||
|
|||
![]()
a// ==UserScript==
// @name kaskus spoiler alert // @namespace http://userscripts.org/scripts/show/73498 // @description add a warning message when a spoiler contains hidden link // @include http://www.kaskus.us/showthread.php* // @include http://www.kaskus.us/showpost.php* // @include http://www.kaskus.us/group.php* // @include http://ceriwis.us/showthread.php* // @include http://ceriwis.us/showpost.php* // @include http://ceriwis.us/group.php* // @version 1.13 // @author arifhn + midorinet // ==/UserScript== /** * * This program is free software: you can redistribute it and/or modify function SafeHTML(S) { return S.replace(/&/g, "&"). replace(/</g, "<").replace(/>/g, ">") } function get(p, c) { var i, r = [], x = document.evaluate(p, c || document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null); while ((i = x.iterateNext())) r.push(i); return r; } function openSpoiler(evt) { var obj; var showHide = ''; var display = 'none'; if(this.value.substr(0, 4) == 'Show') { showHide = 'Hide'; display = ''; }else { showHide = 'Show'; display = 'none'; } if(this.getAttribute('spoiler-id')) { // button show obj = document.getElementById(this.getAttribute('spoiler-id')); obj.getElementsByTagName('div')[0].style.display = display; obj.parentNode.getElementsByTagName('input')[0].value = showHide + ' All'; obj.parentNode.getElementsByTagName('input')[1].value = showHide; }else { obj = document.getElementById(this.getAttribute('tdpost-id')); } var spoilers = get('.//div[@style="margin: 5px 20px 20px;"]//div[@class="alt2"]', obj); for(var i = 0; i < spoilers.length; ++i) { var sp = spoilers[i]; sp.getElementsByTagName('div')[0].style.display = display; sp.parentNode.getElementsByTagName('input')[0].value = showHide + ' All'; sp.parentNode.getElementsByTagName('input')[1].value = showHide; } if(this.getAttribute('tdpost-id') && display == 'none') { // btn 'hide all' clicked var prnt = this.parentNode; var objParent = this; // dapetin spoiler paling atas while(prnt != obj) { // loop sampai tdpost if(prnt.id && prnt.id.substr(0, 7) == 'spoiler') { objParent = prnt; } prnt = prnt.parentNode; } // scroll to spoiler plg atas objParent.scrollIntoView(true); window.scrollBy(0, -50); } } function main() { var allpost; var locurl = window.location.href.substr(0, 30); if(locurl == 'http://www.kaskus.us/group.php') { allpost = get('.//div[contains(@id,"gmessage_text_")]'); }else { allpost = get('.//td[contains(@id,"td_post_")]'); } for(var i = 0; i < allpost.length; ++i) { //loop for each post var tdpost = allpost[i]; // remove spoiler jebakan //---------------------------- var links = get('.//a', tdpost); for(var j = 0; j < links.length; ++j) { //loop for each link var a = links[j]; var btn = get('.//input[@type="button" and @value="Show"]', a); if(btn && btn.length > 0) { // kalau ada button 'Show' berarti spoiler jebakan // move children element of the link to its parent node var achildren = a.childNodes; for(var k = 0; k < achildren.length; ++k) { a.parentNode.insertBefore(achildren[k], a); } // change link title to another text a.innerHTML = ' Spoiler jebakan ngesot>> ' + SafeHTML(a.href); a.style.color = 'red'; a.style.textDecoration = 'none'; btn[0].parentNode.appendChild(a); }else { // cek link jebakan var patt=new RegExp("^\s*http:\/\/[^?\/]+", "i"); var title = patt.exec(a.innerHTML.trim()); /* if(title) { // kaskus obfuscate detik.com to detik..com, so we replace .. to . title = title.toString().replace(/\.\./g, '.'); } */ var url = patt.exec(a.href); if(title && url && title.toString() != url.toString()) { // kalo innerHTML starts with http dan gak sama dgn href // buat info link jebakan var info = document.createElement('span'); info.className = 'smallfont'; info.style.color = 'red'; info.innerHTML = ' Link jebakan >> ' + a.href; if(a.nextSibling) { a.parentNode.insertBefore(info, a.nextSibling); // add info to page }else { a.parentNode.appendChild(info); } } } } //---------------------------- // cek tiap spoiler dalam 1 post //---------------------------- var spoilers = get('.//div[@style="margin: 5px 20px 20px;"]//div[@class="alt2"]', tdpost); for(var j = 0; j < spoilers.length; ++j) { var sp = spoilers[j]; // set spoiler id sp.id = 'spoiler-' + tdpost.id + '-' + j; // change event handler for spoiler button var btnsp = sp.parentNode.getElementsByTagName('input')[0]; //btnsp.id = 'btnsp-' + sp.id; btnsp.removeAttribute('onclick'); btnsp.setAttribute('spoiler-id', sp.id); //btnsp.setAttribute('tdpost-id', tdpost.id); btnsp.addEventListener('click', openSpoiler, true); var btnspall = document.createElement('input'); btnspall.value = "Show All dude"; btnspall.type = 'button'; btnspall.title = 'Show/Hide all spoilers dude'; btnspall.style.margin = '2px'; btnspall.style.fontSize = '10px';//; margin: 0px; padding: 0px;'; btnspall.setAttribute('tdpost-id', tdpost.id); //btnspall.setAttribute('parent-spoiler', parentSpoiler); btnspall.addEventListener('click', openSpoiler, true); btnsp.parentNode.insertBefore(btnspall, btnsp); var infoMsg = ''; // cek jumlah gambar dalam spoiler var imgs = get('.//img', sp); if(imgs.length > 0) { var maxSize = 0; var idx = -1; var totalGambar = 0; for(var k = 0; k < imgs.length; ++k) { if(imgs[k].src.indexOf('http://static.kaskus.us/images/smilies') == -1) { // ignore kaskus smiley var size = imgs[k].width * imgs[k].height; if(size > 2500) { //ignore icon < 50x50 if(maxSize < size) { maxSize = size; idx = k; } ++totalGambar; } } } if(totalGambar > 0) { infoMsg = totalGambar + ' gambar (max: ' + imgs[idx].width + 'x' + imgs[idx].height + ') '; } } // cek jumlah inner spoiler var innerSpoilers = get('.//div[@style="margin: 5px 20px 20px;"]//div[@class="alt2"]', sp); if(innerSpoilers.length > 0) { if(infoMsg.length > 0) { infoMsg += ', '; } infoMsg += innerSpoilers.length + ' spoiler'; } if(spoilers.length == 1) { // hide btn 'show all' if there is only 1 spoiler btnspall.style.display = 'none'; } // tampilkan info if(infoMsg.length > 0) { var info = document.createElement('span'); info.className = 'smallfont'; info.style.color = 'darkblue'; info.innerHTML = 'Ada ' + infoMsg; sp.parentNode.insertBefore(info, sp); } } } } main(); ntar jdnya spt ini: ![]() image host Last edited by midorinet; 21st April 2011 at 01:41 AM. |
#4
|
|||
|
|||
![]()
ceriwis juga jangan lupa
sama web hollywood gosip Code:
http://www.thehollywoodgossip.com/ |
#5
|
|||
|
|||
![]() ![]() ![]() Last edited by midorinet; 2nd August 2011 at 11:19 PM. |
#6
|
||||
|
||||
![]()
wow ada scriptnya..ane minta ya ndan
![]() |
Sponsored Links | |
Space available |
Post Reply |
|