// ==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);
});
});
}