Advertisement
drchloe

Mewch Newposts Notifier

May 10th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //New Post Notifier Test
  3. var regclass = /<div class="[^"]*?boardsCell[^"]*?">(.*?)<\/div>/g
  4.     var seen = {};
  5.     var boards = ['b','wai','int','meta','nsfw','chad','fringe','tech','a','fur'];
  6.  
  7.  
  8. var curboard = false;
  9. if (boards.indexOf(window.location.href.split('/')[3]) !== -1) {
  10.     curboard = window.location.href.split('/')[3];
  11. };
  12.  
  13. function getnew() {
  14.     var xhr = new XMLHttpRequest();
  15.     xhr.onreadystatechange = function () {
  16.         if (xhr.readyState == XMLHttpRequest.DONE) {
  17.             var counts = xhr.response.replace(/(\r\n\t|\n|\r\t)/gm, "").match(regclass);
  18.             var hidden = document.createElement('div');
  19.             hidden.style.display = 'none';
  20.             document.body.appendChild(hidden);
  21.             var dif = [];
  22.             for (var i = 0; i < counts.length; i++) {
  23.                 hidden.innerHTML = counts[i];
  24.                 board = hidden.getElementsByClassName('linkBoard')[0].href.split('/')[3];
  25.                 count = hidden.getElementsByClassName('labelPostCount')[0].innerHTML;
  26.                 if (board == curboard){
  27.                     var test = document.getElementById(count);
  28.                     if (test){
  29.                         seen[board] = count;
  30.                     }
  31.                 }
  32.                
  33.                 if (seen[board]) {
  34.                     vdif = count - seen[board];
  35.                     dif.push([board, vdif]);
  36.                 } else {
  37.                     seen[board] = count;
  38.                     dif.push([board, 0]);
  39.                 }
  40.             };
  41.             localStorage.setItem("seen", JSON.stringify(seen));
  42.             owo(dif);
  43.         }
  44.     }
  45.     xhr.open('GET', 'https://mewch.net/boards.js', true);
  46.     xhr.send(null);
  47. };
  48.  
  49. document.addEventListener("DOMContentLoaded", function(event) {
  50.     if (localStorage.getItem("seen")) {
  51.     seen = JSON.parse(localStorage.getItem("seen"));
  52. }
  53.     getnew();
  54. });
  55.  
  56. setInterval(function () {
  57.     if (localStorage.getItem("seen")) {
  58.     seen = JSON.parse(localStorage.getItem("seen"));
  59. }
  60.     getnew();
  61. }, 120000);
  62.  
  63. function owo(who) {
  64.     console.log(who);
  65.     var nav = document.getElementById('navBoardsSpan').querySelectorAll('a');
  66.     var fav = JSON.parse(localStorage.getItem("favouriteBoards"));
  67.     for (var i = 0; i < who.length; i++) {
  68.         if (fav.indexOf(who[i][0]) !== -1) {
  69.             var old = document.getElementById('a_' + who[i][0]);
  70.             if (old) {
  71.                 old.parentNode.removeChild(old);
  72.             }
  73.             for (var n = 0; n < nav.length; n++) {
  74.                 if (nav[n].innerHTML == who[i][0] && who[i][1] !== 0) {
  75.                     nav[n].innerHTML = nav[n].innerHTML + '<span id="a_' + who[i][0] + '" style="float:right;color:red;font-size:9px;">' + who[i][1] + '</span>';
  76.                 }
  77.             };
  78.         }
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement