// ==UserScript== // @name Kleine Verbesserungen für bronies.de // @namespace Gallery // @description Ganzer Spoiler-Header anklickbar und neue Beiträge werden hervorgehoben. // @include *bronies.de* // @version 1.1 // @author Rapti // ==/UserScript== if ($(".spoiler_header").length > 0) { $('.spoiler_header > [class*="spoiler_link"]').hide(); $(".spoiler_header").click(function (e) { if($(e.target).is(".spoiler_link_all")) return; $(this).children(".spoiler_link")[0].onclick(); }); } eval("spoilerShow = " + spoilerShow.toString().replace(".css('display', 'block')", ".slideDown(200)")+"; spoilerHide = "+spoilerHide.toString().replace(".css('display', 'none')", ".slideUp(200)")); if(typeof Thread !== "undefined") eval('Thread.quickReplyDone = ' + Thread.quickReplyDone.toString().replace("$('#posts').append(json.data);", "$('#posts').append(json.data).children('.post').last().css('display', 'block').hide().slideDown();")); $(".thread_status").each(function (i, e) { e = $(e); e.parent().parent().addClass(e.attr("class")).removeClass("thread_status"); }); $('.post_body span[style*="font-size"]').each(function(i, e) { var size = $(e).attr("style").replace(/font-size: ?/, ""); if(!size.contains("large")) { if(size.replace(/\D/g, "") < 10) $(e).addClass("smallFont"); if(size.replace(/\D/g, "") < 2) $(e).css("fontSize", "2pt"); } }); $("head").append(""); $('img[src^="http://www.sloganizer.net"]').each(function(i, e) { e = $(e); e.attr("src", e.attr("src").replace("weiss,schwarz", "schwarz,weiss")); }); $(function () { var form = $("#quick_reply_form"); if (form.length > 0) { var queued = false; var post_interval = 60; $("#quick_reply_submit").wrap(""); form.prepend("
"); var bar = $("#timeRemaining"); bar.css({ height: 3, width: (100 - (Date.now() - localStorage.lastpost) / (post_interval * 10)) + "%", position: "absolute", top: 0, left: 0, }); var num = 3; for (var i = 0; i < num; i++) bar.prepend("
"); var segments = $(".barSegment"); var transition = 1000; var style = $(""); style.append("#quick_reply_form:before {display: none !important;}"); style.append("#smoothEnd {"); //Damit die Leiste beim Countdown weniger ruckelt style.append(" opacity: 0;"); style.append(" position: absolute;"); style.append(" top: 0px;"); style.append(" right: -1px;"); style.append(" width: 1px;"); style.append(" height: 100%;"); style.append("} .barSegment {"); style.append(" width: 0;"); style.append(" margin: 0 " + (100 / (2*num)) + "%;"); style.append(" height: 100%;"); style.append(" display: inline-block;"); style.append(" transition: " + (transition/2) + "ms;"); style.append(" position: relative;"); style.append("} #timeRemaining.showing .barSegment {"); style.append(" transition: all "+(transition / 2)+"ms;"); style.append(" margin: 0;"); style.append(" width: " + (100 / num) + "%;"); style.append('} #quickreply_spinner[style*="display: block;"] ~ #quick_reply_form .barSegment {'); style.append(" width: " + (100 / (2 * num)) + "%;"); style.append(" margin: 0 " + (50 / (2 * num)) + "%;"); style.append('} #timeRemaining:not(.showing, #quickreply_spinner[style*="display: block;"] ~ #quick_reply_form > #timeRemaining), .barSegment:not(.showing > .barSegment, #quickreply_spinner[style*="display: block;"] ~ #quick_reply_form > #timeRemaining > .barSegment) {'); style.append(' transition-duration: 0ms;'); style.append('} #timeRemaining:not(.showing) {'); style.append(" transition: width " + transition + "ms ease 0s;"); style.append(" width: " + (100 + 100 / (num - 1)) + "% !important;"); style.append('} #quickreply_spinner[style*="display: block;"] ~ #quick_reply_form > #timeRemaining {'); style.append(" animation: loading 1s linear infinite;"); style.append(" width: "+(100 + 100 / (num-1))+"% !important;"); style.append("} @keyframes loading {"); style.append(" from {left: -"+(100/(num-1))+"%;}"); style.append(" to {left: 0%;}"); style.append(" "); style.append("}"); $("head").append(style); //$("#quickreply_spinner").css("display", "block"); return; true && setInterval(function () { if (difference = localStorage.lastpost && Date.now() - localStorage.lastpost) { if (difference < post_interval * 1000) { var width = 100 - difference / (post_interval * 10); width -= (width - bar.width() * 100 / bar.parent().width()) * 0.5; bar.addClass("showing").css("width", width + "%"); $("#smoothEnd").css("opacity", (bar.parent().width() * width / 100) % 1); form.find("thead strong").text(queued? "Schnellantwort (wird in " + Math.ceil(post_interval - difference / 1000) + " Sekunden abgesendet)": "Schnellantwort (noch " + Math.ceil(post_interval - difference / 1000) + " Sekunden Wartezeit)"); } else if (bar.is(".showing")) { bar.css("width", 0); form.find("thead strong").text("Schnellantwort"); if (queued) { $("#quick_reply_submit").val("Antwort absenden").click(); $("#submitButtonWrapper").removeClass("waiting"); } bar.removeClass("showing"); } } }, 25); $("#quick_reply_submit").unbind().click(function (e) { e.stopPropagation(); if (Thread.quick_replying) { return false; } if (Date.now() - localStorage.lastpost < post_interval * 1000) { if (queued) { queued = false; $("#quick_reply_submit").val("Antwort absenden"); $("#submitButtonWrapper").removeClass("waiting"); } else { queued = true; $("#quick_reply_submit").val("Abbrechen"); $("#submitButtonWrapper").addClass("waiting"); } return false; } Thread.quick_replying = 1; var post_body = $('#quick_reply_form').serialize(); // Spinner! var qreply_spinner = $('#quickreply_spinner'); qreply_spinner.show(); $.ajax({ url: 'newreply.php?ajax=1', type: 'post', data: post_body, dataType: 'html', complete: function (request, status) { Thread.quick_replying = false; queued = false; // Get rid of spinner qreply_spinner.hide(); var json = $.parseJSON(request.responseText); if (json.hasOwnProperty("errors")) { if (("" + json.errors).match(/Bitte warte noch/)) { localStorage.lastpost = Date.now() - (post_interval - parseInt(("" + json.errors).match(/\D\d+\D/g))) * 1000; queued = true; $("#quick_reply_submit").val("Abbrechen"); $("#submitButtonWrapper").addClass("waiting"); return; } } else { bar.css("width", "100%"); localStorage.lastpost = Date.now(); } Thread.quickReplyDone(request, status); }, error: function(jqXHR, status, error) { Thread.quickReplyDone({responseText: '{"errors":{0:"Unerwarteter Fehler!
Error '+status+': '+error+'}}'}); if(status == 408) $("#quick_reply_submit").click(); } }); return false; }); } }); if(0) { $("#content > div:first").addClass("page").attr("id", "page_0").wrap("
"); var pages = $("#pages"); var currPage = 0; $(document.head).append(''); $(document).click(function(e) { if(!$(e.target).is("a, a *") || e.button != 0) return; var a = $(e.target); if(!a.is("a")) a = a.parents("a").first(); var href = a.attr("href"); console.log(href); if(a.is("[target]") || !href.match(/^(https?:\/\/)+(www\.)?bronies\.de/) && href.match(/^[^\/]*:/)) return; e.preventDefault(); $.ajax({ url: href }).done(function(html) { var i = 0; var container = $(html).filter("#container"); var page = container.find("#content").first(); console.log(page); if(page.length == 0) {alert("Fehler!"); return;} console.log(++i); page.addClass("page").attr("id", "page_" + (++currPage)); console.log(++i); pages.append(page).css("right", 0); console.log(++i); }); }); }