// ==UserScript== // @name PopcornSE // @namespace https://github.com/The-Quill/PopcornSE // @version 2.3.02 // @description Show the incoming flags // @author Quill // @match *://chat.stackexchange.com/rooms/* // @match *://chat.stackoverflow.com/rooms/* // @match *://chat.meta.stackexchange.com/rooms/* // @grant none // @downloadURL https://github.com/The-Quill/PopcornSE/raw/master/PopcornSE.user.js // @updateURL https://github.com/The-Quill/PopcornSE/raw/master/PopcornSE.user.js // ==/UserScript== (function(global){ 'use strict'; var localStorageLookupKey = "PopcornSE_Events"; var NOTABLE_EVENT_TYPES = { MessageFlagged: 9, ModeratorFlag: 12, UserSuspended: 29 }; var socket; var socketUrl; if (!localStorage.hasOwnProperty(localStorageLookupKey)){ localStorage.setItem(localStorageLookupKey, JSON.stringify({})); } function getStoredEvents(){ return JSON.parse(localStorage.getItem(localStorageLookupKey)); } function setStoredEvents(eventsToSet){ localStorage.setItem(localStorageLookupKey, JSON.stringify(eventsToSet)); } function mergeEventIntoLocalStorage(event){ if (!event.hasOwnProperty('content')){ console.log("Burger", event); return false; } console.log("Pizza", event); var storedEvents = getStoredEvents(); if (!storedEvents.hasOwnProperty(event.message_id)){ storedEvents[event.message_id] = event; } setStoredEvents(storedEvents); } function setIconScore(){ var flagScore = Object.keys(getStoredEvents()).length; if ($('._popcornCount').length !== 0){ $('._popcornCount')[0].parentNode.removeChild($('._popcornCount')[0]); } if (flagScore === 0){ return false; } var profileImageArea = $('div#active-user')[0].parentElement; var extraStyles = ` background-color: rgb(138, 118, 222); background: rgb(138, 118, 222); text-shadow: 0 1px 0 #c6cdcb; color: #2b3a35 !important; left: 55px; top: 55px; z-index: 5; position: absolute; visibility: visible; display: block;`; var flagCountHTML = `
${Object.keys(storedEvents).length} things happened.
`; Object.keys(storedEvents).forEach(function(key){ var event = storedEvents[key]; contentString += `- ${event.type} in ${event.room.name}
${event.content}