Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. setTimeout(revealSananvapaus);
  2.  
  3. function revealSananvapaus( delkey ){
  4.     window.sananvapausInterval = window.sananvapausInterval || setInterval( revealSananvapaus, 15000 );
  5.  
  6.     delkey = delkey || revealSananvapaus.getKey();
  7.     var deldata = revealSananvapaus.load( delkey ) || {}, deldata_ids = [];
  8.  
  9.     var alldata = window.alldata = window.alldata || {};
  10.     for( var elem of document.querySelectorAll("#items > yt-live-chat-text-message-renderer")){
  11.         alldata[ elem.id ] = revealSananvapaus.parseMsgElemToArr(elem);
  12.     }
  13.  
  14.     for( var elem of document.querySelectorAll("#items > yt-live-chat-text-message-renderer[is-deleted]")){
  15.         deldata_ids.push( elem.id );
  16.         deldata[ elem.id ] = alldata[ elem.id ];
  17.     }
  18.     revealSananvapaus.save( delkey, window.deldata = deldata, window.deldata_ids = deldata_ids );
  19.     revealSananvapaus.print( deldata );
  20.    
  21.     return deldata;
  22. }
  23. revealSananvapaus.parseMsgElemToArr = function( elem ){
  24.     var time = elem.querySelector("#timestamp").textContent.match(/(\d+):(\d+) (AM|PM)/);
  25.  
  26.     return [
  27.         elem.querySelector("#img").src,
  28.         60*((time[3]=="PM"?12:0)+parseInt(time[1]))+parseInt(time[2]),
  29.         elem.querySelector("#author-name").textContent,
  30.         elem.querySelector("#message").textContent,
  31.         (elem.querySelector("#deleted-state")||{}).textContent
  32.     ];
  33. };
  34. revealSananvapaus.print = function( deldata ){
  35.     console.log( Object.keys( deldata ).map(function(id){ return deldata[id][1]+" "+deldata[id][2]+": "+deldata[id][3]+" -> "+deldata[id][4]; }).join("\n"));
  36.     console.log( "Sananvapaus koskettanut tässä chatissa "+Object.keys(deldata).length+" viestiä" );
  37. };
  38. revealSananvapaus.getKey = function(){
  39.     return "yt-deldata-"+ location.href.match(/\?(?:.*?)v=([^&]+)/)[1];
  40. };
  41. revealSananvapaus.load = function( key ){
  42.     try {
  43.         return JSON.parse( localStorage.getItem( key ));
  44.     } catch( err ) { console.error( err ); }
  45. };
  46. revealSananvapaus.save = function( key, deldata, order ){
  47.     try {
  48.         localStorage.setItem( key, JSON.stringify( deldata ));
  49.         if( order ) localStorage.setItem( key+"-order", order.join(","));
  50.     } catch( err ) { console.error( err ); }
  51. };