NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Reactor copyleft // @namespace joyreactor.cc // @description Restore "Copyrighted" posts // @match *://*.reactor.cc/* // @match *://joyreactor.cc/* // @grant GM_xmlhttpRequest // @version 1.0 // @author kawaizombi // @license MIT // ==/UserScript== (async () => { function request(url) { return new Promise((resolve, reject) => GM_xmlhttpRequest({ url, responseType: 'document', onload: ({ response }) => resolve(response), onerror: reject, })); } const COPYWRITE_SELECTOR = '[alt=Copywrite]'; const POST_CONTAINER_SELECTOR = '[id^=postContainer]'; const POST_CONTENT_SELECTOR = '.post_content'; const MOBILE_REACTOR_URL = 'http://m.reactor.cc'; const POST_ID_REGEXP = /\d+$/; for(const el of document.querySelectorAll(COPYWRITE_SELECTOR)) { const container = el.closest(POST_CONTAINER_SELECTOR); const id = container.getAttribute('id').match(POST_ID_REGEXP)[0]; const url = `${MOBILE_REACTOR_URL}/post/${id}`; const doc = await request(url); const content = doc.querySelector(POST_CONTENT_SELECTOR); container.querySelector(COPYWRITE_SELECTOR).replaceWith(content); } })();