您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Experimental script to enhance xchan.pw
当前为
// ==UserScript== // @name Xchan Gold Alpha // @version 0.0.0.2 // @description Experimental script to enhance xchan.pw // @include https://xchan.pw/* // @include http://xchan.pw/* // @require https://cdn.jsdelivr.net/jquery.timeago/1.4.1/jquery.timeago.js // @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js // @namespace https://greasyfork.org/users/2657 // ==/UserScript== //Hijacks //Hijacks//Location hack function expandthread(){}; function addpreviewevents(){}; hijack = expandthread; hijack2 = addpreviewevents; location.replace("javascript:"+ hijack +""); //Hijacks//Quick Reply Preview Image $("[name='imagefile']:eq(1)").change(function () { if (window.FileReader) { var Reader = new FileReader(); var file = this.files[0]; window.file2 = file; var previewarea = $('.qrpreviewer'); if (file.type.indexOf("video") > -1) { previewarea.html(''); Reader.onload = function (event) { previewarea.append([' <video width="100" height="88" controls><source src="'+ event.target.result +'" type="'+ window.file2.type +'">Your browser does not support the video tag.</video>'].join('')); } Reader.readAsDataURL(file); } else { previewarea.html(''); Reader.onload = function (event) { previewarea.show().append(['<img style="max-height:88px;max-width:100px;" src="' + event.target.result + '" alt="">'].join('')); } Reader.readAsDataURL(file); }; } }); //Hijacks//Quick Reply Replacer $('#qr_form').draggable(); $(document).mousemove(function (e) { window.pageX = e.pageX; window.pageY = e.pageY; }); $(document).on('click', ".qrp", function() { tidrpt = $(this).attr('title'); tidrpts = tidrpt.split(' '); var threadid = tidrpts[0]; var replyto = tidrpts[1]; var meval = ""; $('#qr_info').html("Reposta ao post: " + replyto + " na thread: " + threadid); $('#qr_name').val($.cookie("name")); $('#qr_postpassword').val($.cookie("postpassword")); $('#qr_threadid').val(threadid); meval += $('#qr_message').val(); $('#qr_message').val(meval + ">>" + replyto + "\n"); $('#qr_form').css({ 'left' : window.pageX, 'top' : window.pageY, 'display' : 'block' }).fadeIn('slow'); $('#qr_name').get(0).type = 'password'; $( '.namecheck' ).appendTo( '.qr_new' ); $('.postblock:contains("Mensagem"):eq(1)').append($('.movepreview')); }); $(document).on('click', "img[alt='Close']", function() { $( '.namecheck' ).appendTo( '.new' ); }); function prepqrp(){ $('a[title="Resposta Rápida"]').each(function() { var onc = $(this).attr('onclick'); oncf = onc.replace('javascript:qr(','').replace(',', '').replace(');', ''); //oncfs = oncf.split(' '); $(this).attr('onclick', ''); $(this).attr('title', oncf); $(this).attr('class', 'qrp'); }); }; //Hijacks//Expand Thread $(document).on('click', ".expandthread", function() { var tid = $(this).parent().attr('onclick'); tids = tid.split("'"); var c = tids[1]; var d = tids[3]; var e = $("#replies" + c + d); if (e.length) { e.prepend(_('Expanding thread') + '...<br /><br />'); e.load(ku_boardspath + '/expand.php?board=' + d + '&threadid=' + c, {}, function (a, b) { if (!a) { e.html(_("something went wrong (blank response)")) } if (b == "error") { alert(_('Something went wrong...')) } delandbanlinks(this); loop(); }) } return false }); //Hijacks//Hover $("<style>").text(".reflinkpreview {display:none!important;} div[class^='floater'], .hold {min-width: 0; z-index: 9999; margin: 0 !important; display: block !important; max-width: 808.5px; background:grey; font-family: 'Trebuchet MS','Tahoma','Verdana','Arial',sans-serif; font-size: 13px; text-align: left;}").appendTo("head"); $('.logo').append('<div class="previews"></div>'); $(document).on('mouseenter', 'a[class^="ref|"]', function() { $('.floater').attr('class', 'hold'); var c = $(this).attr("class").split('|'); var d = $("<div></div>").addClass('floater').attr({ style : "position:absolute;width:400px;" }); if ($('#postform [name=board]').val() == c[1] && $('#reply' + c[3]).length && (($('#thumb' + c[3]).length && $('#thumb' + c[3] + " img:first-child").attr("src").lastIndexOf("thumb") != -1) || !$('#thumb' + c[3]).length)) { var f = true; d.html($("#reply" + c[3]).parents("table").html()) } else { d.html('Carregando...').toggle("normal"); $.get(ku_boardspath + '/read.php?b=' + c[1] + '&t=' + c[2] + '&p=' + c[3] + '&single', {}, function (a, b) { if (b != "success") { alert('wut') } else { if (a) { d.html(a) } else { d.html(_("something went wrong (blank response)")) } } }) } $('.previews').append(d).slideDown( "slow" ); //loop(); if (f) { //d.toggle("normal") }; $('.floater') .css("top",$(this).offset().top) .css("left",($(this).offset().left-100)) }); $(document).on('mouseleave', '.previews', function() { $('.floater').remove(); $('.hold').remove(); }); //Start $( document ).ready(function() { loop(); $('#favicon').remove(); $('link[rel="shortcut icon"]').remove(); $('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">'); //addpreviewevents2(); $('#qr_form').find('.postblock:contains("Mensagem")').append('<div class="qrpreviewer"></div>'); $('.qrpreviewer').attr('style', 'background:none; border:0px; width:100px; padding:0px; position:relative; '); }); window.dt = ""; //Menu $(".navbar").after("<div class='optionslink hov' style='display:inline;cursor: pointer; cursor: hand; width:auto;'><b>[Opções de Script]</b></div>") $(".navbar").after("<div class='optionsmenu' style='display:none;background:rgb(199, 199, 199);font-weight:bold;padding:3px;cursor: pointer; cursor: hand;'></div>") $('.optionsmenu').append(' <span class="capture hov">[Capturar Pagina]</span> <span class="Dcatalog hov">[Catalogo]</span> <span class="merger hov">[Unir Imagens]</span>'); $(document).on('mouseenter', ".hov", function() { $(this).css('background', 'orange'); }).on('mouseleave', ".hov", function() { $(this).css('background', 'rgb(199, 199, 199)'); }); $(document).on('click', ".optionslink", function() { $(".optionsmenu").css("display","block"); $('.optionslink').html("<b><font color='red'>[Fechar]</font></b>"); $('.optionslink').attr('class', 'optionslinkclose hov'); }); $(document).on('click', ".optionslinkclose", function() { $(".optionsmenu").css("display","none"); $('.optionslinkclose').html("<b>[Opções de Script]</b>"); $('.optionslinkclose').attr('class', 'optionslink hov'); }); $(document).on('click', ".menubut", function() { $('.menu').attr('display', 'block'); }); //Image Merger $(document).on('click', ".merger", function() { $('body').prepend('<br><div style="display:inline-block;border:1px solid;width:auto;height:auto;" class="workspace"><center></div>'); $('.workspace').before('<input class="maintCostField" type="file"/> Width:<input class="width" type="text"/> Height:<input class="height" type="text"/> <button class="savemerge" type="button">Salvar</button>'); }); $(document).on('click', ".savemerge", function() { target = $('.workarea') html2canvas(target, { onrendered: function(canvas) { Canvas2Image.saveAsJPEG(canvas) } }); }); $(document).on('change', '.maintCostField', function(){ if (window.FileReader) { var Reader = new FileReader(); var file = this.files[0]; var previewarea = $('.workspace'); Reader.onload = function (event) { previewarea.append(['<img class="dra" style="max-width:100%;max-height:100%;" src="' + event.target.result + '" alt="">'].join('')); } Reader.readAsDataURL(file); } }); $(document).on('click', '.dra', function(){ $(this).draggable(); }); $(document).on('change', '.width', function(){ wid = $(this).val() + "px"; $('.workspace').css('width', wid); }); $(document).on('change', '.height', function(){ wid = $(this).val() + "px"; $('.workspace').css('height', wid); }); //Debug $(document).on('click', ".capture", function() { html2canvas(document.body, { onrendered: function(canvas) { Canvas2Image.saveAsJPEG(canvas) } }); }); // Catalog $("<style>").text(".catalogimg > img {max-width:100%;max-height:100%;} .catalogitem {margin-bottom:10px;}").appendTo("head"); $(document).on('click', ".Dcatalog", function() { $('.catalog').remove(); $('body').prepend('<div class="catalog" style="background: dimgray;border: solid 1px;overflow-y:scroll;overflow-x:hidden;width:240px;height:650px;position:fixed;top:100px;left:10px;"><table id="catalogt"><tbody><div class="closecat hov" style="font-size: 15px;font-weight: bold;position:fixed;top:80px;left:10px;color:red;font-size:11px;cursor: pointer; cursor: hand;">[Fechar Catalogo]</div></tbody></table></div>'); $.get("https://xchan.pw/b/catalog.html", function (data) { $(data).find('a[class^="ref|"]').each(function () { var href = $(this).attr('href'); var c = $(this).attr("class").split('|'); var d = $("<span></span>").addClass('catalogimg').attr({ style : "max-width:220px;background:#F7F7F7;" }); var g = $("<div></div>").addClass('catalogtext').attr({ style : "overflow-x:hidden;overflow-y:scroll;max-height:200px;max-width:220px;background:#F7F7F7;" }); $.get(ku_boardspath + '/read.php?b=' + c[1] + '&t=' + c[2] + '&p=' + c[3] + '&single', {}, function (a, b) { if (b != "success") { alert('wut') } else { if (a) { var z = $('<img />').html(a).find('.thumb').removeClass(); var y = $('<blockquote>').html(a).find('blockquote'); d.html(z); g.html(y); } else { d.html(_("something went wrong (blank response)")) } } }) var wrap = $("<div></div>").addClass('catalogitem').append(d).wrapInner('<a href='+ href +'>').append(g); $('#catalogt').append(wrap); }); }); }); $(document).on('click', ".closecat", function() { $('.catalog').remove(); }); //Relative Time function reltime() { $('.time').remove(); $( "label:contains('@')" ).each(function() { var vovar = $(this).contents().map(function() { if( this.nodeType === 3 ) { return this.data; } }).get().join(''); vovar1 = vovar.split("@"); vovardate = vovar1[0].split("/"); vovaryear = vovardate[2].split(" "); vovarmonth = vovardate[1] - 1; vovartime = vovar1[1].split(":"); tiem = new Date(vovaryear[0], vovarmonth, vovardate[0], vovartime[0], vovartime[1]) tiemiso = tiem.toISOString(); tiemago = jQuery.timeago(tiemiso); $( this ).append( '<span class="time">( <bold>' + tiemago + ' </bold>)</span>' ); }); }; //Name Box Fixes $('input[name="name"]').get(0).type = 'password'; $( 'input[name="name"]' ).focus(function() { $('input[name="name"]').get(0).type = 'text'; $('#qr_name').get(0).type = 'text'; }); $( 'input[name="name"]' ).focusout(function() { $('input[name="name"]').get(0).type = 'password'; $('#qr_name').get(0).type = 'password'; }); $( 'input[name="name"]:first' ).wrap( '<span class="new"></span>' ); $( '#qr_name' ).wrap( '<span class="qr_new"></span>' ); $( '.new' ).append( '<input type="checkbox" class="namecheck" value="Bike" checked="checked">' ); if (localStorage.getItem("namecheck") === null) {}else{$( ".namecheck" ).prop( "checked", false ); $( 'input[name="name"], #qr_name' ).prop('disabled',true);}; $(document).on('change', ".namecheck", function() { if ( $( '.namecheck' ).prop( "checked" ) ) {$( 'input[name="name"], #qr_name' ).prop('disabled',false); localStorage.removeItem('namecheck');}else{$( 'input[name="name"], #qr_name' ).prop('disabled',true); localStorage.setItem('namecheck', '');}; }); //Youtube Titles function yttitle(me){ var myregexp = /(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i; var src = $(me).attr("href"); $(me).append(" - Loading Title..."); var id = src.match(myregexp)[1]; var link = me; $.ajax({ url: "https://gdata.youtube.com/feeds/api/videos/" + id + "?v=2&alt=jsonc", dataType: "json", success: function(data) { parseresults(link,data) } }); function parseresults(link,result) { var linktitle = result.data.title; $(link).text(linktitle); //setting title from extracted id $(link).attr('target', '_blank'); $(link).addClass( "titled" ); }; }; //Backlinks function backlinks() { $('#delform').find(".reply").not('.protect').each(function() { blink($(this)); }); $('.floater, .hold').find(".reply").not('.protect').each(function() { blink($(this)); }); }; function blink(t){ t.addClass('protect'); rid = t.attr('id').replace('reply',''); datas = t.find('.reflink').find("a:nth-child(2)").attr('href'); t.find("a[class^='ref|']").each(function() { var quoted = $(this).text(); quoteds = quoted.replace('>>',''); console.log(datas + "|" + rid + "+" + quoteds + ")"); backquote(quoteds, rid, datas); }); }; function backquote(quoteds, rid, datas){ splicer = datas.replace('.html#i','/'); splicer2 = splicer.split('/'); $(".reflink:contains('" +quoteds+ "')").after('<a href="/'+splicer2[1]+'/res/'+splicer2[3]+'.html#'+rid+'" onclick="return highlight(\''+rid+'\', true);" class="ref|'+splicer2[1]+'|'+splicer2[3]+'|'+rid+'">>>'+rid+'</a>'); }; /*function backlinks() { $('#delform').find(".reply").not('.protect').each(function() { $(this).addClass('protect'); rid = this.id.replace('reply',''); datas = $(this).find('.reflink').find("a:nth-child(2)").attr('href'); $(this).find("a[class^='ref|']").each(function() { var quoted = $(this).text(); quoteds = quoted.replace('>>',''); console.log(datas + "|" + rid + "+" + quoteds + ")"); backquote(quoteds, rid, datas); }); }); }; function backquote(quoteds, rid, datas){ splicer = datas.replace('.html#i','/'); splicer2 = splicer.split('/'); $(".reflink:contains('" +quoteds+ "')").after('<a href="/'+splicer2[1]+'/res/'+splicer2[3]+'.html#'+rid+'" onclick="return highlight(\''+rid+'\', true);" class="ref|'+splicer2[1]+'|'+splicer2[3]+'|'+rid+'">>>'+rid+'</a>'); };*/ //live index var highest = -Infinity; var compareme = 99999999999999999; window.updateid = ""; function initupdate(){ var highest = -Infinity; $('#delform').find(".reply").each(function() { splice = this.id.split("y"); numb = parseInt(splice[1]) highest = Math.max(highest, parseFloat(numb)); }); return highest; }; initupdate(); function update(){ var compareme = 0; $.get("" + document.location, function (data) { $(data).find(".reply").each(function() { splice = this.id.split("y"); numb = parseInt(splice[1]) compareme = Math.max(compareme, parseFloat(numb)); window.updateid = compareme; }); }); }; setInterval(function () { update(); if (window.updateid > initupdate()){ $.get("" + document.location, function (data) { $("#delform").replaceWith($(data).filter("#delform")); }).done(function() { loop(); notify(); }); }; reltime(); }, 10000); //Loop function loop(){ $('blockquote').find('a[href*="youtube.com/watch?"]').not( ".titled" ).each(function() { yttitle(this); }); $('blockquote').find('a').not( 'a[class^="ref|"]' ).each(function() { $(this).attr('target','_blank'); }); reltime(); backlinks(); prepqrp(); }; //Notification function notify(){ var state = document["visibilityState"]; if (state == "hidden") { $('#favicon').remove(); $('link[rel="shortcut icon"]').remove(); $('head').append('<link href="https://i.imgur.com/TirPmur.png" id="favicon" rel="shortcut icon">'); } else if (state == "visible") { $('#favicon').remove(); $('link[rel="shortcut icon"]').remove(); $('head').append('<link href="https://i.imgur.com/TirPmur.png" id="favicon" rel="shortcut icon">'); setTimeout(function(){ $('#favicon').remove(); $('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">'); },5000) } }; var onVisibilityChange = function (args) { var state = document["visibilityState"]; if (state == "visible") { $('#favicon').remove(); $('head').append('<link href="https://i.imgur.com/AB4G76Z.png" id="favicon" rel="shortcut icon">'); } }; document.addEventListener("visibilitychange", onVisibilityChange, false);