// ==UserScript== // @name /qa/ on the frontpage! // @namespace http://www.4chan.org/ // @version 1022 // @description Adds /qa/ to the frontpage of 4chan // @author (You) // @match http://4chan.org/ // @match https://4chan.org/ // @match http://www.4chan.org/ // @match https://www.4chan.org/ // @match http://4channel.org/ // @match https://4channel.org/ // @match http://www.4channel.org/ // @match https://www.4channel.org/ // @grant none // ==/UserScript== (function() { 'use strict'; try { let full_taste = location.hostname.endsWith('4chan.org'); var board_list; if (full_taste) { //board_list = document.querySelector('a.boardlink[href$="/pol/"]').parentNode.parentNode; // in case some madman actually ever deletes /pol/ board_list = document.querySelector('a.boardlink[href$="/b/"]').parentNode.parentNode; } else { // There's no Misc category on 4channel! What do we do? // Well, /qa/ is certainly an important board. board_list = document.querySelector('a.boardlink[href$="/vip/"]').parentNode.parentNode; } let qa_link = document.createElement('a'); // XXX: adapt in case worksafe boards become exclusive to 4channel qa_link.setAttribute('href', '//boards.' + (full_taste ? '4chan' : '4channel') + '.org/qa/'); qa_link.classList.add('boardlink'); qa_link.appendChild(document.createTextNode('Question & Answer')); let qa_entry = document.createElement('li'); qa_entry.appendChild(qa_link); board_list.appendChild(qa_entry); // } catch (NullPointerException ex) { // Oh, wait. There's no Java in Javascript. } catch (err) { if (err instanceof TypeError) { console.error('Could not found the Misc/Other category on the frontpage! This is kind of bad news.'); return; } else { throw(err); } } })();