Last active
July 26, 2021 18:12
-
-
Save newtover/c7c06301bc0807e60840665f7de01479 to your computer and use it in GitHub Desktop.
unreadAfterForLepra.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void function(){ | |
var toImg = function(e1){ | |
var img = document.createElement('img'); | |
img.setAttribute('src', e1.dataset.orig); | |
e1.parentNode.replaceChild(img, e1); | |
}; | |
var videos = document.querySelectorAll('video[data-orig]'); | |
for (var i = videos.length - 1; i >= 0; i--){ | |
// if @data-orig ends with .gif | |
if (/[.]gif$/i.exec(videos[i].dataset.orig)){ | |
toImg(videos[i]); | |
}; | |
}; | |
}(); | |
// compact with http://javascript-minifier.com/ | |
// javascript:void function(){for(var e=function(e){var t=document.createElement("img");t.setAttribute("src",e.dataset.orig),e.parentNode.replaceChild(t,e)},t=document.querySelectorAll("video[data-orig]"),r=t.length-1;r>=0;r--)/[.]gif$/i.exec(t[r].dataset.orig)&&e(t[r])}(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// еще один скрипт, из которого можно сделать букмарклет. Скрипт вставляет в начало страницы | |
// табличку с кратким содержанием: посты, их время, автор, рейтинг, количество комментариев и начало текста поста. | |
// Должно работать на главной, на подлепрах, в моих вещах и в инбоксах. | |
// Текст ссылки для букмарклета ниже, а куда его вставлять, написано в конце файла unreadAfterForLepra.js | |
void (function(){ | |
if(!document.getElementById('js-posts_holder')){return;} | |
var addCss = function(r1){var s1 = document.styleSheets[0]; s1.insertRule(r1, s1.cssRules.length);}; | |
var toc_cont = function(){ | |
var toc = document.getElementById('aux-toc'); | |
if (!toc){ | |
toc = new Element('table', {id: 'aux-toc'}).inject('js-posts_holder', 'top'); | |
addCss('#aux-toc {margin: 0 0 2em 0;}'); | |
addCss('#aux-toc td {padding: 0.1em 0.5em;white-space:nowrap;overflow:hidden;}'); | |
addCss('#aux-toc .num {text-align:right;}'); | |
addCss('#aux-toc .c {text-align:center;}'); | |
} | |
return toc; | |
} | |
var gen_toc = function(){ | |
var toc = toc_cont(); | |
$(toc).empty(); | |
var posts = document.querySelectorAll('.post:not([class~="hidden"])'); | |
posts = Array.prototype.slice.call(posts); | |
posts.forEach(function(post, idx){ | |
var _text = function(sel){var e1=post.querySelector(sel);return e1?e1.textContent:'';}; | |
var login = _text('.c_user'); | |
var ts = _text('.js-date'); | |
var votes = _text('.vote_result') || '0'; | |
var comments_all = post.querySelector('.b-post_comments_links a'); | |
var url = comments_all.getAttribute('href'); | |
var domain; | |
if (/^[/]my[/]inbox/.exec(url)){ | |
domain = 'inbox'; | |
} else { | |
domain = url.split('/')[2].replace(/[.]?leprosorium.ru/, '') || 'БЛ'; | |
} | |
var summary = _text('.p_body').replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' ').substr(0, 70); | |
var c_all = comments_all.textContent; | |
c_all = c_all.replace(/[^\d]+/, '') || '0'; | |
var c_unread = post.querySelector('.b-post_comments_links a:nth-of-type(2)'); | |
if (c_unread){ | |
c_unread = c_unread.textContent.replace(/[^\d]+/, ''); | |
} else if (comments_all.querySelector('strong')) { | |
c_unread = c_all; | |
} else { | |
c_unread = '0'; | |
}; | |
var tr = new Element('tr').inject(toc); | |
tr.adopt( | |
new Element('td', {class: 'num'}).adopt(new Element('a', {href:'#' + post.id, text: idx+1})), | |
new Element('td', {text: login + '@' + domain}), | |
new Element('td', {text: ts}), | |
new Element('td', {text: votes, class: 'num'}), | |
new Element('td', {class: 'c', text: c_all + ' / '}).adopt(new Element('a', {text: c_unread, 'href': url + '?unread=on'})), | |
new Element('td', {text: summary || ''}) | |
); | |
}); | |
} | |
gen_toc(); | |
})(); | |
// сожмем при помощи http://javascript-minifier.com/ до букмарклета | |
// javascript:void function(){if(document.getElementById("js-posts_holder")){var e=function(e){var t=document.styleSheets[0];t.insertRule(e,t.cssRules.length)},t=function(){var t=document.getElementById("aux-toc");return t||(t=new Element("table",{id:"aux-toc"}).inject("js-posts_holder","top"),e("#aux-toc {margin: 0 0 2em 0;}"),e("#aux-toc td {padding: 0.1em 0.5em;white-space:nowrap;overflow:hidden;}"),e("#aux-toc .num {text-align:right;}"),e("#aux-toc .c {text-align:center;}")),t},n=function(){var e=t();$(e).empty();var n=document.querySelectorAll('.post:not([class~="hidden"])');n=Array.prototype.slice.call(n),n.forEach(function(t,n){var o,r=function(e){var n=t.querySelector(e);return n?n.textContent:""},l=r(".c_user"),a=r(".js-date"),c=r(".vote_result")||"0",s=t.querySelector(".b-post_comments_links a"),u=s.getAttribute("href");o=/^[\/]my[\/]inbox/.exec(u)?"inbox":u.split("/")[2].replace(/[.]?leprosorium.ru/,"")||"БЛ";var d=r(".p_body").replace(/^\s+|\s+$/g,"").replace(/\s+/g," ").substr(0,70),m=s.textContent;m=m.replace(/[^\d]+/,"")||"0";var i=t.querySelector(".b-post_comments_links a:nth-of-type(2)");i=i?i.textContent.replace(/[^\d]+/,""):s.querySelector("strong")?m:"0";var p=new Element("tr").inject(e);p.adopt(new Element("td",{"class":"num"}).adopt(new Element("a",{href:"#"+t.id,text:n+1})),new Element("td",{text:l+"@"+o}),new Element("td",{text:a}),new Element("td",{text:c,"class":"num"}),new Element("td",{"class":"c",text:m+" / "}).adopt(new Element("a",{text:i,href:u+"?unread=on"})),new Element("td",{text:d||""}))})};n()}}(); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// очередной букмарклет. Теперь, чтобы скрывать по кнопке посты до какой-то даты. Заходим куда-то, где есть список | |
// постов (главная, подлепра, мои вещи, инбоксы), тыкаем букмарклет, выбираем дату, наслаждаемся. | |
// Сам букмарклет | |
// javascript:void!function(){var e=prompt("Скроем посты до какой-то даты.\n\nВведите дату и время в формате 2016-12-28 15:55:00\n ");if(e){e=new Date(e).valueOf()/1e3;var t,a,n=document.querySelectorAll(".post");for(t=0;t<n.length;t++)a=n[t].querySelector(".js-date").dataset.epoch_date,parseInt(a)<e&&n[t].classList.add("hidden")}}(); | |
// получен путем минификации на http://javascript-minifier.com следующего фрагмента кода: | |
(function(){ | |
var d = prompt('Скроем посты до какой-то даты.\n\nВведите дату и время в формате 2016-12-28 15:55:00\n '); | |
if (d){ | |
d = new Date(d).valueOf()/1000; | |
var i, ts, posts = document.querySelectorAll('.post'); | |
for (i=0; i < posts.length; i++){ | |
ts = posts[i].querySelector('.js-date').dataset.epoch_date; | |
if (parseInt(ts) < d){ | |
posts[i].classList.add('hidden'); | |
} | |
} | |
} | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// это можно скопировать и вставить в консоль JS, а еще можно создать букмарклет и нажимать просто кнопку в браузере. Букмерклет ниже. | |
(function(){ | |
var d = prompt('Пометим новыми комментарии после определенного времени.\n\nВведите дату в формате 2016-12-28 15:55:00\n '); | |
if (d){ | |
d = new Date(d); | |
f = commentsHandler.filter; | |
f.epoch_of_first_unread_comment = f.current_epoch = d.valueOf()/1000; | |
f.reload(f.control('refresh'), true, true); | |
} | |
})(); | |
// Букмарклет. где-то на панели закладок тыкаем правой кнопкой мыши и создаем новую закладку, | |
// придумываем имя закладки, а потом копируем следующую строку и вставляем вместо ссылки, начиная с javascript: | |
// javascript:void(function(){var f,d=prompt('Пометим новыми комментарии после определенного времени.\n\nВведите дату в формате 2016-12-28 15:55:00\n ');if(d){d=new Date(d);f=commentsHandler.filter;f.epoch_of_first_unread_comment=f.current_epoch=d.valueOf()/1000;f.reload(f.control('refresh'),true,true);}})(); | |
// Теперь открываем какой-то пост, тыкаем в букмарклет, появляется приглашение - ввыодим время в нужном формате. | |
// Новыми будут помечены комментарии с определенной даты. | |
// Кстати, можно указать просто дату, без времени. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment