Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name E621 Sound/Epilepsy warning
- // @description Temporarily blocks potentially harmful content, I (Chessax) hereby release this into the public domain free of use for any purpose.
- // @include http*://e621.net/post/show/*
- // @grant none
- // ==/UserScript==
- //Tags to filter, 'message' key is optional
- var entries = [
- {
- tag: 'epilepsy_warning',
- message: 'flashing or strobing lights or fast or disorienting movements'
- },
- {
- tag: 'sound_warning',
- message: 'loud sound'
- }
- ]
- //window.onload = function tagWarning(){
- var tagList = document.getElementById('post_tags').value;
- var header = '<h1>Warning!</h1><br /><p>This post has been tagged with ';
- var tags = '';
- var message = '';
- for (var i = 0; i < entries.length; ++i){
- if ((new RegExp('\\b'+entries[i].tag+'\\b').test(tagList))){
- tags += '<i>' + entries[i].tag + '</i>, ';
- if (typeof entries[i].message != 'undefined' && entries[i].message != '' && entries[i].message != null){
- message += entries[i].message + '; ';
- }
- }
- }
- tags = tags.slice(0, -2);
- if (message.length > 0){
- message = ' and may contain:<br />' + message.slice(0, -2) + '.';
- }
- else{
- message = '.';
- }
- var footer = '<br />Viewer discretion is advised.</p>';
- var width, height;
- var found = false;
- //Image
- var img = document.getElementById('image')
- if (img) {
- found = true;
- width = img.clientWidth;
- height = img.clientHeight;
- }
- //SWF
- if (!found) {
- var imgs = document.getElementsByTagName('param')
- for (var i = 0; i < imgs.length; ++i) {
- if (/e621\.net\/data\//.test(imgs[i].value)) {
- found = true;
- img = imgs[i].parentNode;
- width = img.width;
- height = img.height;
- break;
- }
- }
- }
- //WebM
- if (!found) {
- img = document.getElementById('webm-container');
- if (img) {
- found = true;
- width = img.clientWidth;
- height = img.clientHeight;
- }
- }
- if (!found) {
- var script = document.createElement('script')
- script.setAttribute('type', 'text/javascript');
- script.textContent = '(warning(\'Sound/Epilepsy warning is broken, please contact user script developer (not e621 developer)\'))();';
- document.body.appendChild(script);
- document.body.removeChild(script);
- return;
- }
- var outer = document.createElement('div');
- outer.style.minWidth = Math.max(350, width) + 'px';
- outer.style.minHeight = Math.max(200, height) + 'px';
- outer.style.width = '0px';
- outer.style.height = '0px'
- outer.style.textAlign = 'center';
- outer.style.display = 'flex';
- outer.style.alignItems = 'center';
- outer.style.border = '1px solid white';
- var inner = document.createElement('div');
- inner.style.margin = '20px';
- inner.style.width = '100%';
- var warning = document.createElement('div');
- warning.innerHTML = header + tags + message + footer;
- var button = document.createElement('button');
- button.innerHTML = 'Understood'
- button.addEventListener('click', function () {
- outer.parentNode.removeChild(outer);
- img.style.display = '';
- });
- inner.appendChild(warning);
- inner.appendChild(button);
- outer.appendChild(inner);
- img.parentNode.insertBefore(outer, img.parentNode.firstChild)
- img.style.display = 'none';
- //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement