Не жалко конечно, тем более что первые два из открытых источников:
1)
https://gist.github.com/deymosD - это ShowImageInfo и ShowDownloadLocations.
2) Это для показа дневной статистики продажи вектора и растра, отметка растра, плюс переменной newfrom можно задать индекс картинки для разделения на новый и старый контент. Писалось для себя и под свои нужды, плюс первая попытка написания скриптов со слабым знанием яваскрипт, по стилю конечно "гавнокод", но работает. Проверено только на связке chrome+tampermonkey.
PHP код:
// ==UserScript==
// @name DailyCalc
// @namespace Ukraine
// @version 1.0
// @description Сalc for vectors and photos
// @author ToBad
// @match http://submit.shutterstock.com/stats_date.mhtml*
// @grant none
// ==/UserScript==
(function() {
var newfrom = 0;
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) return;
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
addGlobalStyle(".x{position:relative;width:140px;overflow:hidden}.y:after{content:'PHOTO';background:#282;z-index:800;padding-top:2px;color:#fff;font-family:Roboto;letter-spacing:1px;font-weight:400;text-transform:none;text-align:center;display:inline-block;" +
"width:110px;font-size:10px;line-height:14px;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;top:8px;border-bottom:2px solid #006400;right:-38px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);position:absolute}");
var oldpic = 0,
newpic = 0,
vect = 0,
rastr = 0,
curamm = 0,
oldamm = 0,
newamm = 0,
vecamm = 0,
rasamm = 0,
fl = 0;
var t = document.getElementsByTagName('table');
for (var i = 0; i < t.length; i++) {
var s = t[i].getElementsByTagName('tr')[0].getElementsByTagName('td')[0].innerHTML;
if ((s.length > 0) && (s[0] + s[s.length - 1] === '[]')) {
tr = t[i].getElementsByTagName('tr');
if (fl === 0) fl = i;
for (var n = 0; n < tr.length; n++) {
td = tr[n].getElementsByTagName('td');
if (((td.length === 5) || (td.length === 9)) && (tr[n].innerHTML.indexOf('thumb_small') > 0)) {
if (td.length === 5) cnt = 1;
else cnt = 2;
for (var z = 0; z < cnt; z++) {
var pics = Number(td[(z * 5) + 2].innerHTML);
if (td[(z * 5) + 3].innerHTML.substr(0, 1) === '$') curamm = Number(td[(z * 5) + 3].innerHTML.substr(1));
else curamm = 0;
var tit = td[(z * 5) + 1].getElementsByTagName('img')[0].title;
if (tit.indexOf(' - stock vector') > 0) {
vect = vect + pics;
vecamm = vecamm + curamm;
} else if (tit.indexOf(' - stock photo') > 0) {
rastr = rastr + pics;
rasamm = rasamm + curamm;
td[(z * 5) + 1].innerHTML = td[(z * 5) + 1].innerHTML.replace('thumb_image_container"', 'thumb_image_container x y"');
}
if (Number(td[(z * 5) + 0].getElementsByTagName('a')[0].innerHTML) >= newfrom) {
newpic = newpic + pics;
newamm = newamm + curamm;
} else {
oldpic = oldpic + pics;
oldamm = oldamm + curamm;
}
}
}
}
}
}
var stat = '[ ' + vect.toString() + ' vector=$' + vecamm.toFixed(2).toString() + ', ' + rastr.toString() + ' photo=$' + rasamm.toFixed(2).toString();
var sp = ' '.repeat(14);
if (oldpic > 0) stat = stat + ' ]' + sp + '[ ' + oldpic.toString() + ' old=$' + oldamm.toFixed(2).toString() + ', ' + newpic.toString() + ' new=$' + newamm.toFixed(2).toString() + ' ]' + sp;
else stat = stat + ' ]' + sp + '[ ' + newpic.toString() + ' summary=$' + newamm.toFixed(2).toString() + ' ]' + sp;
if (fl > 0) {
var fix = t[fl].getElementsByTagName('tr')[0].getElementsByTagName('td')[0];
stat = stat + fix.innerHTML;
fix.innerHTML = stat;
}
})();
Что касается удаления батчей целиком - ещё не закончено.