Чт авг 10, 2017 15:37:58
Чт авг 10, 2017 17:46:55
Чт авг 10, 2017 17:53:39
Пт авг 11, 2017 02:27:59
Чт авг 24, 2017 20:10:52
Max писал(а):авторство мы особо хранить в тайне не будем
Ср сен 06, 2017 14:56:12
Ср сен 06, 2017 14:59:44
Ср сен 06, 2017 15:04:35
Ср сен 06, 2017 15:36:42
Вт сен 19, 2017 14:32:45
Сб сен 23, 2017 08:32:25
Сб сен 23, 2017 08:44:39
Вс сен 24, 2017 12:33:30
Вс сен 24, 2017 13:55:07
Пн сен 25, 2017 20:50:43
javascript:(function(){
var updateTimeout = 5000;
if(window.location.href !== 'http://radiokot.ru/konkursCatDay2017/')
{
alert('Вы не на странице конкурса!');
return;
}
var div = document.getElementById("hypercontext");
var table = div.firstElementChild.children[2];
var tableBody = table.tBodies[0];
var p = document.createElement("p");
p.className = "usual";
div.firstElementChild.insertBefore(p, div.firstElementChild.children[1]);
var label = document.createTextNode("Интервал автоматического обновления:");
var timeout = document.createElement("input");
timeout.type = "text";
timeout.defaultValue = "5000";
function readTimeout(){
var inp = timeout.value;
var re = new RegExp('^[0-9]+$');
if((!re.test(inp)) || (Number(inp) < 1000) || (Number(inp) > 60000)){
alert("Введите целое число от 1000 до 60000!");
return;
}
updateTimeout = Number(inp);
}
var settimeout = document.createElement("input");
settimeout.type = "button";
settimeout.value = "Задать";
settimeout.onclick = readTimeout;
var enableUpdate = document.createElement("input");
enableUpdate.type = "checkbox";
enableUpdate.checked = true;
enableUpdate.onchange = (function(){
if(enableUpdate.checked){
if(sortTable != undefined){
if(timer != undefined)
clearTimeout(timer);
timer = setTimeout(sortTable, 0);
}
}
else{
clearTimeout(timer);
}
});
var updateButton = document.createElement("input");
updateButton.type = "button";
updateButton.value = "Обновить";
updateButton.onclick = (function(){
if(!enableUpdate.checked){
sortTable();
}
});
var nowUpdating = document.createTextNode('');
p.appendChild(document.createTextNode("Включить автоматическое обновление: "));
p.appendChild(enableUpdate);
p.appendChild(document.createElement("br"));
p.appendChild(label);
p.appendChild(document.createElement("br"));
p.appendChild(timeout);
p.appendChild(document.createTextNode(" мс "));
p.appendChild(settimeout);
p.appendChild(document.createElement("br"));
p.appendChild(updateButton);
p.appendChild(document.createElement("br"));
p.appendChild(nowUpdating);
p.appendChild(document.createElement("br"));
var timer;
function sortTable(){
function compare(a,b)
{
if (a.mark < b.mark)
return 1;
if (a.mark > b.mark)
return -1;
return 0;
}
function article(row)
{
this.row = row;
var votes = row.lastElementChild.innerText;
var re = new RegExp('[0-9]+.?[0-9]?', 'g');
var total = re.exec(votes);
var totalVotes = re.exec(votes);
this.mark = total/totalVotes
};
function articleList()
{
this.articles = new Array();
this.AddArticle = function(row)
{
this.articles[this.articles.length] = new article(row);
};
}
nowUpdating.textContent = "Обновление...";
var newPage = document.createElement("div");
$.get('/konkursCatDay2017',function(data){
newPage.innerHTML = data;
var newTable = newPage.getElementsByTagName("table")[2];
var newTableBody = newTable.tBodies[0];
var articles = new articleList();
for (var i = 0, row; row = newTable.rows[i]; i++)
{
articles.AddArticle(row);
}
articles.articles.sort(compare);
while(table.rows.length > 0) table.deleteRow(0);
for(var i = 0, art; art = articles.articles[i]; i++){
var counter = document.createElement("td");
counter.innerText = i + 1;
art.row.insertBefore(counter,art.row.firstElementChild);
table.appendChild(art.row);
}
nowUpdating.textContent = "";
if(enableUpdate.checked)
timer = setTimeout(sortTable, updateTimeout);
});
};
timer = setTimeout(sortTable,0);
})();
javascript:(function(){
var smoothieCharts = document.createElement("script");
smoothieCharts.type = "text/javascript";
smoothieCharts.src = "http://smoothiecharts.org/smoothie.js";
var style = document.createElement("style");
style.type = "text/css";
var css = "div.smoothie-chart-tooltip {\nbackground: #444;\npadding: 1em;\nmargin-top: 20px;\nfont-family: consolas;\ncolor: white;\nfont-size: 10px;\npointer-events: none;\n}";
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
document.head.appendChild(style);
smoothieCharts.onload = (function(){
var updateTimeout = 5000;
if(window.location.href !== 'http://radiokot.ru/konkursCatDay2017/')
{
alert('Вы не на странице конкурса!');
return;
}
var div = document.getElementById("hypercontext");
var table = div.firstElementChild.children[2];
var tableBody = table.tBodies[0];
var p = document.createElement("p");
p.className = "usual";
div.firstElementChild.insertBefore(p, div.firstElementChild.children[1]);
var label = document.createTextNode("Интервал автоматического обновления:");
var timeout = document.createElement("input");
timeout.type = "text";
timeout.defaultValue = "5000";
function readTimeout(){
var inp = timeout.value;
var re = new RegExp('^[0-9]+$');
if((!re.test(inp)) || (Number(inp) < 1000) || (Number(inp) > 60000)){
alert("Введите целое число от 1000 до 60000!");
return;
}
updateTimeout = Number(inp);
}
var settimeout = document.createElement("input");
settimeout.type = "button";
settimeout.value = "Задать";
settimeout.onclick = readTimeout;
var graphLength = document.createElement("input");
graphLength.type = "text";
graphLength.defaultValue = "10";
function readGraphLength(){
var inp = graphLength.value;
var re = new RegExp('^[0-9]+(\.[0-9]+)?$');
if((!re.test(inp)) || (Number(inp) < 0.1) || (Number(inp) > 10000)){
alert("Введите число от 0.1 до 10000!");
return;
}
graph.options.millisPerPixel = Number(inp) * 60 * 1000 / canvas.width;
graph.options.grid.millisPerLine = Math.pow(10, Math.trunc(Math.log10(Number(inp) * 60 * 1000 / 5.0)));
}
var setGraphLength = document.createElement("input");
setGraphLength.type = "button";
setGraphLength.value = "Задать";
setGraphLength.onclick = readGraphLength;
var enableUpdate = document.createElement("input");
enableUpdate.type = "checkbox";
enableUpdate.checked = true;
enableUpdate.onchange = (function(){
if(enableUpdate.checked){
if(sortTable != undefined){
if(timer != undefined)
clearTimeout(timer);
timer = setTimeout(sortTable, 0);
}
}
else{
clearTimeout(timer);
}
});
var updateButton = document.createElement("input");
updateButton.type = "button";
updateButton.value = "Обновить";
updateButton.onclick = (function(){
if(!enableUpdate.checked){
sortTable();
}
});
var nowUpdating = document.createTextNode('');
p.appendChild(document.createTextNode("Включить автоматическое обновление: "));
p.appendChild(enableUpdate);
p.appendChild(document.createElement("br"));
p.appendChild(label);
p.appendChild(document.createElement("br"));
p.appendChild(timeout);
p.appendChild(document.createTextNode(" мс "));
p.appendChild(settimeout);
p.appendChild(document.createElement("br"));
p.appendChild(document.createTextNode("Длина оси времени графика:"));
p.appendChild(document.createElement("br"));
p.appendChild(graphLength);
p.appendChild(document.createTextNode(" мин "));
p.appendChild(setGraphLength);
p.appendChild(document.createElement("br"));
p.appendChild(updateButton);
p.appendChild(document.createElement("br"));
p.appendChild(nowUpdating);
p.appendChild(document.createElement("br"));
p.appendChild(document.createElement("br"));
p.appendChild(document.createElement("br"));
var canvas = document.createElement("canvas");
canvas.width = "700";
canvas.height = "400";
p.appendChild(canvas);
var graph = new SmoothieChart({interpolation:'linear',tooltip:true,timestampFormatter:SmoothieChart.timeFormatter});
graph.streamTo(canvas);
var graphLines = new Array();
var artList = new Array();
var artNames = new Array();
var artColors = new Array();
var artPlaces = new Array();
var colors = ["red", "green", "lightblue", "yellow", "yellowgreen", "orange", "navy", "magenta", "white", "blue"];
var firstRun = true;
readTimeout();
readGraphLength();
var timer;
function sortTable(){
function compare(a,b)
{
if (a.mark < b.mark)
return 1;
if (a.mark > b.mark)
return -1;
return 0;
}
function article(row)
{
this.row = row;
this.name = row.firstElementChild.firstElementChild.innerText;
var re = new RegExp("[0-9]{2}$");
this.ind = Number(re.exec(row.firstElementChild.firstElementChild.href)) - 1;
var votes = row.lastElementChild.innerText;
re = new RegExp('[0-9]+.?[0-9]?', 'g');
var total = re.exec(votes);
var totalVotes = re.exec(votes);
this.mark = total/totalVotes
};
function articleList()
{
this.articles = new Array();
this.AddArticle = function(row)
{
this.articles[this.articles.length] = new article(row);
};
}
nowUpdating.textContent = "Обновление...";
var newPage = document.createElement("div");
$.get('/konkursCatDay2017',function(data){
newPage.innerHTML = data;
var newTable = newPage.getElementsByTagName("table")[2];
var newTableBody = newTable.tBodies[0];
var articles = new articleList();
function setVisible(index){
graph.seriesSet[index].options.strokeStyle = colors[artPlaces[index]];
}
function setInvisible(index){
graph.seriesSet[index].options.strokeStyle = "none";
}
for (var i = 0, row; row = newTable.rows[i]; i++)
{
articles.AddArticle(row);
var art = articles.articles[articles.articles.length - 1];
if(firstRun){
graphLines[art.ind] = new TimeSeries();
artList[art.ind] = art;
artNames[art.ind] = art.name;
}
graphLines[art.ind].append(new Date().getTime(), art.mark);
}
if(firstRun){
for(var i = 0; i < graphLines.length; i++)
graph.addTimeSeries(graphLines[i], {lineWidth: 2});
}
articles.articles.sort(compare);
while(table.rows.length > 0) table.deleteRow(0);
for(var i = 0, art; art = articles.articles[i]; i++){
var counter = document.createElement("td");
counter.innerText = i + 1;
art.row.insertBefore(counter,art.row.firstElementChild);
table.appendChild(art.row);
if(artPlaces[art.ind] < 10){
art.row.children[1].firstElementChild.style.color = colors[artPlaces[art.ind]];
art.row.children[1].style.backgroundColor = "black";
}
artPlaces[art.ind] = i;
}
for(var i = 0; i < artPlaces.length; i++){
if(artPlaces[i] < 10) setVisible(i);
else setInvisible(i);
}
nowUpdating.textContent = "";
firstRun = false;
if(enableUpdate.checked)
timer = setTimeout(sortTable, updateTimeout);
});
};
timer = setTimeout(sortTable,0);
});
document.body.appendChild(smoothieCharts);
})();
javascript:(function(){
var smoothieCharts = document.createElement("script");
smoothieCharts.type = "text/javascript";
smoothieCharts.src = "http://smoothiecharts.org/smoothie.js";
var style = document.createElement("style");
style.type = "text/css";
var css = "div.smoothie-chart-tooltip {\nbackground: #444;\npadding: 1em;\nmargin-top: 20px;\nfont-family: consolas;\ncolor: white;\nfont-size: 10px;\npointer-events: none;\nz-index:200\n}";
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
document.head.appendChild(style);
smoothieCharts.onload = (function(){
var updateTimeout = 5000;
if(window.location.href !== 'http://radiokot.ru/konkursCatDay2017/')
{
alert('Вы не на странице конкурса!');
return;
}
/******************Переопределяем некоторые методы для нашего случая*************************/
var Util = {
extend: function() {
arguments[0] = arguments[0] || {};
for (var i = 1; i < arguments.length; i++)
{
for (var key in arguments[i])
{
if (arguments[i].hasOwnProperty(key))
{
if (typeof(arguments[i][key]) === 'object') {
if (arguments[i][key] instanceof Array) {
arguments[0][key] = arguments[i][key];
} else {
arguments[0][key] = Util.extend(arguments[0][key], arguments[i][key]);
}
} else {
arguments[0][key] = arguments[i][key];
}
}
}
}
return arguments[0];
},
binarySearch: function(data, value) {
var low = 0,
high = data.length;
while (low < high) {
var mid = (low + high) >> 1;
if (value < data[mid][0])
high = mid;
else
low = mid + 1;
}
return low;
}
};
SmoothieChart.prototype.updateTooltip = function () {
var el = this.getTooltipEl();
if (!this.mouseover || !this.options.tooltip) {
el.style.display = 'none';
return;
}
var time = this.lastRenderTimeMillis - (this.delay || 0);
time -= time % this.options.millisPerPixel;
var t = this.options.scrollBackwards
? time - this.mouseX * this.options.millisPerPixel
: time - (this.canvas.offsetWidth - this.mouseX) * this.options.millisPerPixel;
var data = [];
for (var d = 0; d < this.seriesSet.length; d++) {
var timeSeries = this.seriesSet[d].timeSeries,
closeIdx = Util.binarySearch(timeSeries.data, t);
if(this.seriesSet[d].options.strokeStyle === "rgba(0,0,0,0.0)") continue;
if (closeIdx > 0 && closeIdx < timeSeries.data.length) {
data.push({ series: this.seriesSet[d], index: closeIdx, value: timeSeries.data[closeIdx][1] });
}
}
if (data.length) {
el.innerHTML = this.options.tooltipFormatter.call(this, t, data);
el.style.display = 'block';
} else {
el.style.display = 'none';
}
};
SmoothieChart.prototype.updateValueRange = function() {
var chartOptions = this.options,
chartMaxValue = Number.NaN,
chartMinValue = Number.NaN;
for (var d = 0; d < this.seriesSet.length; d++) {
var timeSeries = this.seriesSet[d].timeSeries;
if(this.seriesSet[d].options.strokeStyle === "rgba(0,0,0,0.0)") continue;
if (!isNaN(timeSeries.maxValue)) {
chartMaxValue = !isNaN(chartMaxValue) ? Math.max(chartMaxValue, timeSeries.maxValue) : timeSeries.maxValue;
}
if (!isNaN(timeSeries.minValue)) {
chartMinValue = !isNaN(chartMinValue) ? Math.min(chartMinValue, timeSeries.minValue) : timeSeries.minValue;
}
}
if (chartOptions.maxValue != null) {
chartMaxValue = chartOptions.maxValue;
} else {
chartMaxValue *= chartOptions.maxValueScale;
}
if (chartOptions.minValue != null) {
chartMinValue = chartOptions.minValue;
} else {
chartMinValue -= Math.abs(chartMinValue * chartOptions.minValueScale - chartMinValue);
}
if (this.options.yRangeFunction) {
var range = this.options.yRangeFunction({min: chartMinValue, max: chartMaxValue});
chartMinValue = range.min;
chartMaxValue = range.max;
}
if (!isNaN(chartMaxValue) && !isNaN(chartMinValue)) {
var targetValueRange = chartMaxValue - chartMinValue;
var valueRangeDiff = (targetValueRange - this.currentValueRange);
var minValueDiff = (chartMinValue - this.currentVisMinValue);
this.isAnimatingScale = Math.abs(valueRangeDiff) > 0.1 || Math.abs(minValueDiff) > 0.1;
this.currentValueRange += chartOptions.scaleSmoothing * valueRangeDiff;
this.currentVisMinValue += chartOptions.scaleSmoothing * minValueDiff;
}
this.valueRange = { min: chartMinValue, max: chartMaxValue };
};
/***********************************************************************************************/
var div = document.getElementById("hypercontext");
var table = div.firstElementChild.children[2];
var tableBody = table.tBodies[0];
var p = document.createElement("p");
p.className = "usual";
div.firstElementChild.insertBefore(p, div.firstElementChild.children[1]);
var label = document.createTextNode("Интервал автоматического обновления:");
var timeout = document.createElement("input");
timeout.type = "text";
timeout.defaultValue = "5000";
function readTimeout(){
var inp = timeout.value;
var re = new RegExp('^[0-9]+$');
if((!re.test(inp)) || (Number(inp) < 1000) || (Number(inp) > 60000)){
alert("Введите целое число от 1000 до 60000!");
return;
}
updateTimeout = Number(inp);
}
var settimeout = document.createElement("input");
settimeout.type = "button";
settimeout.value = "Задать";
settimeout.onclick = readTimeout;
var graphLength = document.createElement("input");
graphLength.type = "text";
graphLength.defaultValue = "10";
if(!Math.log10)
Math.log10 = function(x){
return Math.log(x) / Math.log(10);
};
if(!Math.trunc)
Math.trunc = function(x){
return Math.floor(x);
};
function readGraphLength(){
var inp = graphLength.value;
var re = new RegExp('^[0-9]+(\.[0-9]+)?$');
if((!re.test(inp)) || (Number(inp) < 0.1) || (Number(inp) > 10000)){
alert("Введите число от 0.1 до 10000!");
return;
}
graph.options.millisPerPixel = Number(inp) * 60 * 1000 / canvas.width;
graph.options.grid.millisPerLine = Math.pow(10, Math.trunc(Math.log10(Number(inp) * 60 * 1000 / 5.0)));
}
var setGraphLength = document.createElement("input");
setGraphLength.type = "button";
setGraphLength.value = "Задать";
setGraphLength.onclick = readGraphLength;
var enableUpdate = document.createElement("input");
enableUpdate.type = "checkbox";
enableUpdate.checked = true;
enableUpdate.onchange = (function(){
if(enableUpdate.checked){
if(sortTable != undefined){
if(timer != undefined)
clearTimeout(timer);
timer = setTimeout(sortTable, 0);
}
}
else{
clearTimeout(timer);
}
});
var updateButton = document.createElement("input");
updateButton.type = "button";
updateButton.value = "Обновить";
updateButton.onclick = (function(){
if(!enableUpdate.checked){
sortTable();
}
});
var nowUpdating = document.createTextNode('');
p.appendChild(document.createTextNode("Включить автоматическое обновление: "));
p.appendChild(enableUpdate);
p.appendChild(document.createElement("br"));
p.appendChild(label);
p.appendChild(document.createElement("br"));
p.appendChild(timeout);
p.appendChild(document.createTextNode(" мс "));
p.appendChild(settimeout);
p.appendChild(document.createElement("br"));
p.appendChild(document.createTextNode("Длина оси времени графика:"));
p.appendChild(document.createElement("br"));
p.appendChild(graphLength);
p.appendChild(document.createTextNode(" мин "));
p.appendChild(setGraphLength);
p.appendChild(document.createElement("br"));
p.appendChild(updateButton);
p.appendChild(document.createElement("br"));
p.appendChild(nowUpdating);
p.appendChild(document.createElement("br"));
p.appendChild(document.createElement("br"));
p.appendChild(document.createElement("br"));
var canvas = document.createElement("canvas");
canvas.width = "700";
canvas.height = "400";
p.appendChild(canvas);
var graph = new SmoothieChart({interpolation:'linear',tooltip:true,timestampFormatter:SmoothieChart.timeFormatter});
graph.streamTo(canvas);
graph.options.yRangeFunction = (function(range){
var newRange;
if(isNaN(range.min)) return range;
if(isNaN(range.max)) return range;
var delta;
delta = range.max - range.min;
var newRange = {min: undefined, max: undefined};
newRange.min = range.min - delta / 15.0;
newRange.max = range.max + delta / 15.0;
return newRange;
});
var graphLines = new Array();
var artList = new Array();
var artNames = new Array();
var artColors = new Array();
var artPlaces = new Array();
var colors = ["red", "green", "lightblue", "yellow", "yellowgreen", "orange", "navy", "magenta", "white", "blue"];
var firstRun = true;
readTimeout();
readGraphLength();
var timer;
function sortTable(){
function compare(a,b)
{
if (a.mark < b.mark)
return 1;
if (a.mark > b.mark)
return -1;
return 0;
}
function article(row)
{
this.row = row;
this.name = row.firstElementChild.firstElementChild.innerText;
var re = new RegExp("[0-9]{2}$");
this.ind = Number(re.exec(row.firstElementChild.firstElementChild.href)) - 1;
var votes = row.lastElementChild.innerText;
re = new RegExp('[0-9]+.?[0-9]?', 'g');
var total = re.exec(votes);
var totalVotes = re.exec(votes);
this.mark = total/totalVotes
};
function articleList()
{
this.articles = new Array();
this.AddArticle = function(row)
{
this.articles[this.articles.length] = new article(row);
};
}
nowUpdating.textContent = "Обновление...";
var newPage = document.createElement("div");
var get;
if(!$.get){
get = function(url,callback){
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function(){
if (this.readyState != 4) return;
callback(this.responseText);
return;
};
xhr.send();
};
}
else
get = $.get;
get('/konkursCatDay2017',function(data){
newPage.innerHTML = data;
var newTable = newPage.getElementsByTagName("table")[2];
var newTableBody = newTable.tBodies[0];
var articles = new articleList();
function setVisible(index){
graph.seriesSet[index].options.strokeStyle = colors[artPlaces[index]];
}
function setInvisible(index){
graph.seriesSet[index].options.strokeStyle = "rgba(0,0,0,0.0)";
}
for (var i = 0, row; row = newTable.rows[i]; i++)
{
articles.AddArticle(row);
var art = articles.articles[articles.articles.length - 1];
if(firstRun){
graphLines[art.ind] = new TimeSeries();
artList[art.ind] = art;
artNames[art.ind] = art.name;
}
graphLines[art.ind].append(new Date().getTime(), art.mark);
}
if(firstRun){
for(var i = 0; i < graphLines.length; i++)
graph.addTimeSeries(graphLines[i], {lineWidth: 2});
}
articles.articles.sort(compare);
while(table.rows.length > 0) table.deleteRow(0);
for(var i = 0, art; art = articles.articles[i]; i++){
var counter = document.createElement("td");
counter.innerText = i + 1;
art.row.insertBefore(counter,art.row.firstElementChild);
table.appendChild(art.row);
if(artPlaces[art.ind] < 10){
art.row.children[1].firstElementChild.style.color = colors[artPlaces[art.ind]];
art.row.children[1].style.backgroundColor = "black";
}
artPlaces[art.ind] = i;
}
for(var i = 0; i < artPlaces.length; i++){
if(artPlaces[i] < 10) setVisible(i);
else setInvisible(i);
}
nowUpdating.textContent = "";
firstRun = false;
if(enableUpdate.checked)
timer = setTimeout(sortTable, updateTimeout);
});
};
timer = setTimeout(sortTable,0);
});
document.body.appendChild(smoothieCharts);
})();
Пн сен 25, 2017 21:46:49
,minValue:3,maxValue:5
var graph = new SmoothieChart({interpolation:'linear',tooltip:true,timestampFormatter:SmoothieChart.timeFormatter,minValue:3,maxValue:5});
Пн сен 25, 2017 22:22:29
Пн сен 25, 2017 22:52:14
Ср сен 27, 2017 06:35:18
Ср сен 27, 2017 14:01:49