Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Toastmaster 1.0
- * Finds the bread so you don't have to.
- *
- * Always read the code before pasting it in like an idiot.
- */
- var toast ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAA3CAMAAACfBSJ0AAAAS1BMVEXMzMzMmWbMmTP/zJmZZjPMzJmZZgDMZjPMzGb/zGaZZmZmMwCZmWb/mWZmMzP//8yZmTP/zMzMmZmZMwBmZjPMZgCZMzPMZmb///+gGFQUAAAAAXRSTlMAQObYZgAABIBJREFUSMe1Vtly4zgMNEECJCXZTjKZmv//0+luUIqzW3u8jHxIlNA4Ggd1u/2Bo7X22B74/5/iW9Ox749933nxeODqP3E7TOC7b+1BxCfXn/+O+9y2X61FKc0Kj9Z6K/rQ538A8SFkD/da8MG/F/cyvOLf8XT//DuUKgvFIURBfJ9PnHKN/0rkX202+lJooA6cefgTsgLlmrrg+OO7MQpDbBSbuKRfXNYyDYG6VHlC92/mYtAW4+IxcJ60BfQ8QVi/Q8P2DQbhKBPqzGERNuYApFKBVMkLRV/ai5uVsPSIR53kswz8TxifQtaBNX066S/tQBQBm26FwZeBtVEId3GFT80ArI5aV93Ryhvt4fAq7XQPBuegPYonGNfGjC6c+YE80B5drQ5/FFdVTggImsa5y/TCMboWHfcdd0eGb4zPZeVnetjwNUhNcLD8hD6UYU9OZp7oa2XyBnSEu5zBMmwsZmAOaxSwIiSNEBniAZJhmaKs9ElevS5GK2vTqBwwgxX8Vvap0lY1TBYCquPKH2zAeZkbQthgkHNxLz6ZAxY4KuirgaryHZVeVFLDRAE6hjFsS2/M35/1pVyUQTxpinykW4Oqce4ZX4fvUP98HuUL9cW5wnKdGI6qAHd7phGa3r1uL7hDjpKGZET/Jyv0k6fBgvLaLhyKJyM3O5PHxlAeqPCuKyYdP/erPssxTCBfGbeTRTtNcpWFOK76XGybHCllTSRqOixZAcJyyHWrL3V2lAtsg+xO6ZjqYOvyMFQ7wRAunGdmq1Ke1eGDDUtER6eY2EH1m0rislcVzapJcPKmolUDpcpOg8E2rgwi+8/khTzV3CPB1VjIsUhZ7NzhKfpIqUDvcT5oFI7JEkgafRHZQ2G3YJxt0UZcXJSsgilnLiGJeRyWrdnZpMEWc9nrdgaRKYq8IAepMyDODICWYA3XKVyJ6WcYDAD8iXS0Mgus2L1rityj7R1ejyw1KHJFsYK3xodYRu+NvuFHDnDfmAq2WOJKbnd0VSRQB6zJGEzi1CEDBBPYzDz9RFrfSo4RW2PbyC9E8Kh3kxLqhOVOSmdfOBYTouK+GUpbyCTEAhZgH4RQIRaNYzM4PrvaoCv4kgkLWsCNn+CP4ebGA1uImY1fsv3YOCT7ZLXTaKN2yZaeGYAifAO9L3uKn/rpPgH0hkJBRulYi5CjdyriHpN1ppST+oaHTDhr/85EMBd8AJVksym8mbhbb6u7Ccya6zlSVDAIyBgWQDSfA/mWxKiewta+e/aGLS3cG5teZVgErOy+cHVJUd6zuFc31GsS0A1yznEiP6HrYEUG6u3gNnvKaraXrGhRF9lSmCLE/Wi2Rk/uuL4GZ+7PmBVlNb62OK0WL+3ICZcgbR5jTXG+fawdUa83WYdr9Br3d8xFH3rBOjx3nlFz3zpSnd6FnLto6wtnPvKdLF+mSg7NlgMybPGkTVe1+mON+pDvXmJnZo+N++i2AfZRPrbSzoPvs3iPLR+3L5yGaMHL6rbxOVHbR2IB3VRuB57sLJNrB2Rbte3lxp86fgOuVyGN3reBwAAAAABJRU5ErkJggg==";
- function navigate(url) {
- if(typeof url != 'undefined') {
- window.location.href=url;
- }
- }
- function get_bread_number(text) {
- if ( (text.toLowerCase().indexOf('ebake') != -1)
- || (text.toLowerCase().indexOf('research') != -1)) {
- var rx = /[^0-9]*([0-9]+)[^0-9]*/g;
- var arr = rx.exec(text);
- return arr.length > 1 ? arr[1] : false;
- }
- return false;
- }
- function make_toast(url, time) {
- var response;
- var age = 100 - ((~~((new Date).getTime() / 1000)) - time)/72;
- var x = new XMLHttpRequest();
- x.open('GET', url, true);
- x.onreadystatechange = function() {
- if(x.readyState === 4 && x.status == 200) {
- response = JSON.parse(x.responseText);
- var target = document.getElementById('dythreads');
- var bread = response.posts[0];
- var posts = response.posts.length;
- var opts = document.getElementsByName('toast');
- for(var i = 0; i < opts.length; i++) {
- if (opts[i].getAttribute('no') == bread.no) {
- opts[i].setAttribute('old',false)
- return;
- }
- }
- var txt = bread.sub;
- if (typeof txt == 'undefined') {
- txt = bread.com;
- if (txt.length > 40) {
- txt = txt.substring(0,39) + '...';
- }
- }
- var num = get_bread_number(txt);
- if (false == num) return;
- var img = document.createElement('IMG');
- var opt = document.createElement('SPAN');
- opt.setAttribute('title', txt + ' (' + posts + ')' );
- opt.setAttribute('no',bread.no);
- opt.style.borderRadius='5px';
- opt.style.border='1px solid transparent';
- opt.addEventListener('mouseover',function() {
- opt.style.backgroundColor='rgb(255,255,255,0.4)';
- opt.style.cursor='pointer';
- });
- opt.addEventListener('mouseout',function() {
- opt.style.backgroundColor='transparent';
- opt.style.cursor='auto';
- });
- opt.style.height = '76px';
- opt.style.width = '70px';
- opt.style.verticalAlign='top';
- opt.style.textAlign='center';
- opt.style.display = 'inline-block';
- img.src = toast;
- img.id = "" + bread.no;
- opt.appendChild(img);
- target.appendChild(opt);
- opt.setAttribute('name','toast');
- var label = document.createElement('SPAN');
- label.style.display = 'block';
- label.style.fontWeight = 'bold';
- var node = document.createTextNode('#' + num);
- label.appendChild(node);
- opt.appendChild(label);
- img.style = "filter: saturate(" + age + "%);";
- img.style = "filter: brightness(" + age + "%);";
- opt.onclick = function () {
- var no = bread.no;
- return navigate("/qresearch/res/" + no + ".html");
- };
- opt.setAttribute('old',false);
- }
- };
- x.send();
- }
- // every 60 seconds we reload from threads.json
- function refresh() {
- var opts = document.getElementsByName('toast');
- // prune expired breads and append new ones.
- if (typeof opts != 'undefined' && opts.length) {
- for(var i = 0; i < opts.length; i++) {
- if(opts[i].getAttribute('old') == true) {
- target.removeChild(opts[i]);
- console.log('removed option ' + i)
- }
- else {
- opts[i].setAttribute('old',true);
- }
- }
- }
- var x = new XMLHttpRequest();
- x.open('GET', "/qresearch/threads.json", true);
- x.onreadystatechange = function() {
- if(x.readyState === 4 && x.status == 200) {
- var response = JSON.parse(x.responseText);
- find_recent_bread(response);
- }
- };
- x.send();
- }
- function find_recent_bread(board) {
- var now = ~~((new Date).getTime() / 1000);
- var thread;
- for(var i = 0; i < board.length; i++) {
- for(var j = 0; j < board[i].threads.length; j++) {
- thread = board[i].threads[j];
- // only show threads modified within the last 2 hours
- if (now - thread.last_modified < 7200) {
- make_toast('/qresearch/res/'+thread.no + '.json',
- thread.last_modified);
- }
- }
- }
- }
- var target = document.getElementsByName('postcontrols')[0];
- // Post controls is loaded and we're already in a thread
- // append the controls at the top.
- if (target) {
- var div = document.createElement('DIV');
- div.id = 'dythreads';
- target.appendChild(div);
- div.style
- = 'z-index:2;'
- + 'top:20px;'
- + 'padding:1px 3px 0 3px;'
- + 'position:fixed;height:1px;width:100%;'
- + 'display:block;' ;
- setInterval("refresh();", 60000);
- refresh();
- }
Add Comment
Please, Sign In to add comment