Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //NamePerBoard
- var board = window.location.href.split('/')[3];
- var stored = JSON.parse(localStorage.getItem('tripnames'));
- var fields = [document.getElementById('fieldName'), document.getElementById('qrname')]
- var names = {};
- if (stored) {
- names = stored;
- } else {
- names[board] = fields[0].value;
- localStorage.setItem('tripnames', JSON.stringify(names));
- }
- var name = '';
- for (object in names) {
- if (board == object) {
- name = names[object];
- }
- }
- for (var i = 0; i < fields.length; ++i) {
- if (fields[i]) {
- fields[i].addEventListener("change", function (e) {
- names[board] = this.value;
- localStorage.setItem('tripnames', JSON.stringify(names));
- });
- fields[i].value = name;
- }
- }
- //Event Drivers
- var cooldown = true;
- document.getElementById('divThreads').addEventListener("mouseover", function (e) {
- if (e)
- if (e.target.className == 'imgLink' || e.target.tagName == "IMG") {
- hoverImg(e)
- }
- if (e.target.className == "myQuote") {
- if (cooldown) {
- hoverThis(e);
- cooldown = false;
- setTimeout(function () {
- cooldown = true;
- }, 500);
- }
- };
- });
- var targetNode = document.getElementsByClassName('divPosts')[0];
- var config = {
- childList : true
- };
- var callback = function (mutationsList) {
- for (var mutation of mutationsList) {
- if (mutation.type == 'childList') {
- var quotes = mutation.addedNodes[0].querySelectorAll('.quoteLink')
- for (var i = 0; i < quotes.length; ++i) {
- prepNewhovers([quotes[i]]);
- console.log('mutated');
- newcount();
- }
- }
- }
- };
- var observer = new MutationObserver(callback);
- observer.observe(targetNode, config);
- //Image Hover
- var imagehover = document.createElement('div');
- imagehover.style = 'pointer-events: none;z-index: 9999999;position:fixed;top:20px;right:20px;max-width:90%;height:700px';
- imagehover.id = 'imageHover';
- document.body.appendChild(imagehover);
- function hoverImg(e) {
- if (e.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.className == 'quotebox') {
- return;
- }
- if (e.target.src && e.target.src.indexOf('video') > -1) {
- var ext = e.target.src.split('video')[1]
- imagehover.innerHTML = '<video style="width:auto;height:100%;" src="' + e.target.src.replace("t_", "") + '.' + ext + '" autoplay controls>'
- } else {
- if (e.target.className == 'imgExpanded') {
- return;
- }
- imagehover.innerHTML = '<img style="width:auto;height:100%;" src="' + e.target.parentElement.href + '">'
- }
- e.target.addEventListener("mouseout", function (e) {
- imagehover.innerHTML = '';
- });
- };
- //NonAjaxQuotes
- function prepNewhovers(targets) {
- if (!targets) {
- targets = [];
- var quotes = document.querySelectorAll('.quoteLink');
- var backlinks = document.querySelectorAll('span.panelBacklinks a');
- targets.push.apply(targets, quotes);
- targets.push.apply(targets, backlinks);
- }
- for (var i = 0; i < targets.length; ++i) {
- if (targets[i].className == "myQuote"){
- return;
- }
- var post = targets[i].innerHTML.replace('>>', '');
- var quoted = document.getElementById(post);
- if (quoted) {
- var name = quoted.getElementsByClassName('linkName')[0].innerHTML;
- var flag = quoted.getElementsByClassName('imgFlag')[0]
- var oflag = '';
- if (flag) {
- oflag = flag.outerHTML.replace('class', 'style=\"height:6px;width:auto;\" nope')
- }
- targets[i].setAttribute("class", "myQuote");
- targets[i].outerHTML = targets[i].outerHTML + '<div style="display:inline-block;font-size:10px;"> - ' + name + ' ' + oflag + '</div>';
- } else {
- targets[i].setAttribute("class", "myQuote");
- targets[i].title = 'ajax';
- targets[i].outerHTML = targets[i].outerHTML;
- }
- };
- }
- prepNewhovers();
- var quotebox = document.createElement('div');
- quotebox.className = 'quotebox';
- document.getElementById('divThreads').appendChild(quotebox);
- var quoted = [];
- var open = false;
- var hold = false;
- function hoverThis(e) {
- var quoteUrl = e.target.href;
- var matches = quoteUrl.match(/\/(\w+)\/res\/(\d+)\.html\#(\d+)/);
- var board = matches[1];
- var thread = +matches[2];
- var post = +matches[3];
- var quoteData;
- if (open && e.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.className !== 'quotebox'){return;};
- if (e.target.title == "ajax") { //AJAX
- var threadUrl = '/' + board + '/res/' + thread + '.json';
- localRequest(threadUrl, function receivedData(error, data) {
- if (error) {
- return;
- }
- var threadData = JSON.parse(data);
- var postingData;
- if (thread === post) {
- threadData.postId = post;
- postingData = threadData;
- } else {
- for (var i = 0; i < threadData.posts.length; i++) {
- var postData = threadData.posts[i];
- if (postData.postId === post) {
- postingData = postData;
- break;
- }
- }
- }
- if (!postingData) {
- return;
- }
- addquote(addPost(postingData, board, thread, true).outerHTML);
- prepNewhovers();
- });
- } else {
- addquote(document.getElementById(post).outerHTML);
- }
- if (quoted.indexOf(post) == -1) {
- quoted.push(post);
- if (!open) {
- var topval = e.pageY - 100;
- var leftval = e.pageX + 5;
- open = true;
- quotebox.style = 'position:absolute;left:' + leftval + 'px;top:' + topval + 'px;border:dotted red 1px;';
- }
- }
- quotebox.addEventListener("mouseleave", function () {
- clearquote()
- });
- e.target.addEventListener("mouseleave", function () {
- setTimeout(function () {
- if (!hold) {
- clearquote()
- }
- }, 300);
- });
- }
- function addquote(quote) {
- quotebox.innerHTML = quote + quotebox.innerHTML;
- }
- function clearquote() {
- quotebox.style = '';
- quotebox.innerHTML = '';
- quoted = [];
- open = false;
- hold = false;
- }
- quotebox.addEventListener("mouseenter", function () {
- hold = true;
- });
- // PostcontWidget
- var count = document.createElement('div');
- if (window.location.href.indexOf('/res/') > -1) {
- document.getElementById('footer').appendChild(count)
- };
- count.style = 'float:right;';
- function newcount() {
- count.innerHTML = 'Posts: ' + document.getElementsByClassName('postCell').length;
- }
- newcount();
- //filter files
- document.getElementById('files').accept = ".jpg, .png, .jpeg, .gif, .mp4, .webm";
- document.getElementById('fieldPostingPassword').autocomplete = 'new-password';
- document.getElementById('fieldSubject').autocomplete = 'new-password';
- document.querySelectorAll('.redText').forEach(function(e){if (e.innerHTML.toLowerCase().indexOf('elta') !== -1){e.innerHTML = '';}});
- //New Post Notifier Test
- var regclass = /<div class="[^"]*?boardsCell[^"]*?">(.*?)<\/div>/g
- var seen = {};
- var boards = ['b','wai','int','meta','nsfw','chad','fringe','tech','a','fur'];
- var curboard = false;
- if (boards.indexOf(window.location.href.split('/')[3]) !== -1) {
- curboard = window.location.href.split('/')[3];
- };
- function getnew() {
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function () {
- if (xhr.readyState == XMLHttpRequest.DONE) {
- var counts = xhr.response.replace(/(\r\n\t|\n|\r\t)/gm, "").match(regclass);
- var hidden = document.createElement('div');
- hidden.style.display = 'none';
- document.body.appendChild(hidden);
- var dif = [];
- for (var i = 0; i < counts.length; i++) {
- hidden.innerHTML = counts[i];
- board = hidden.getElementsByClassName('linkBoard')[0].href.split('/')[3];
- count = hidden.getElementsByClassName('labelPostCount')[0].innerHTML;
- if (board == curboard){
- var test = document.getElementById(count);
- if (test){
- seen[board] = count;
- }
- }
- if (seen[board]) {
- vdif = count - seen[board];
- dif.push([board, vdif]);
- } else {
- seen[board] = count;
- dif.push([board, 0]);
- }
- };
- localStorage.setItem("seen", JSON.stringify(seen));
- owo(dif);
- }
- }
- xhr.open('GET', 'https://mewch.net/boards.js', true);
- xhr.send(null);
- };
- document.addEventListener("DOMContentLoaded", function(event) {
- if (localStorage.getItem("seen")) {
- seen = JSON.parse(localStorage.getItem("seen"));
- }
- getnew();
- });
- setInterval(function () {
- if (localStorage.getItem("seen")) {
- seen = JSON.parse(localStorage.getItem("seen"));
- }
- getnew();
- }, 120000);
- function owo(who) {
- console.log(who);
- var nav = document.getElementById('navBoardsSpan').querySelectorAll('a');
- var fav = JSON.parse(localStorage.getItem("favouriteBoards"));
- for (var i = 0; i < who.length; i++) {
- if (fav.indexOf(who[i][0]) !== -1) {
- var old = document.getElementById('a_' + who[i][0]);
- if (old) {
- old.parentNode.removeChild(old);
- }
- for (var n = 0; n < nav.length; n++) {
- if (nav[n].innerHTML == who[i][0] && who[i][1] !== 0) {
- nav[n].innerHTML = nav[n].innerHTML + '<span id="a_' + who[i][0] + '" style="float:right;color:red;font-size:9px;">' + who[i][1] + '</span>';
- }
- };
- }
- }
- }
- //timeago
- function timeago() {
- var times = document.querySelectorAll('.labelCreated');
- for (i = 0; i < times.length; i++) {
- if (times[i].title){
- then = new Date(times[i].title);
- } else {
- then = new Date(times[i].innerHTML);
- times[i].title = times[i].innerHTML;
- }
- var now = new Date(new Date().toUTCString().substr(0, 25));
- dif = now - then;
- dif = Math.max(dif,0)
- var date = new Date(dif);
- var str = '';
- var day = date.getUTCDate() - 1;
- var hour = date.getUTCHours();
- var minute = date.getUTCMinutes();
- if (day !== 0) {
- if (day == 1){
- str += day + " day, ";
- } else {
- str += day + " days, ";
- };
- };
- if (hour !== 0) {
- if (hour == 1){
- str += hour + " hour, ";
- }else{
- str += hour + " hours, ";
- }
- };
- if (minute == 1){
- str += minute + " minute";
- } else if (minute == 0) {
- str += " Now"
- } else {
- str += minute + " minutes";
- }
- times[i].innerHTML = str;
- }
- }
- document.addEventListener("DOMContentLoaded", function(event) {
- timeago();
- });
- setInterval(function () {
- timeago();
- }, 120000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement