// ==UserScript==
// @name AO3: Display Tag ID
// @namespace adustyspectacle
// @description a quick and dirty script to display a canonical tag's tag id in its /works page.
// @version 1.3
// @history 1.3 - changed how the tag id's displayed
// @history 1.2 - updated include urls to work with ao3's https switch
// @history 1.1 - changed the include to be more specific
// @grant none
// @include http://*archiveofourown.org/tags/*/works
// @include https://*archiveofourown.org/tags/*/works
// @include http://*archiveofourown.org/works?*
// @include https://*archiveofourown.org/works?*
// @downloadURL https://update.greasyfork.icu/scripts/29917/AO3%3A%20Display%20Tag%20ID.user.js
// @updateURL https://update.greasyfork.icu/scripts/29917/AO3%3A%20Display%20Tag%20ID.meta.js
// ==/UserScript==
function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
}
// this bit checks whether someone is logged in or not. Logged out users will only see tag ids
// for those with RSS feeds, i.e. fandoms, characters, and relationships. Logged in users will
// also see those, plus additional tags, ratings, categories, and warnings.
var log_status = document.getElementsByTagName('body')[0].getAttribute('class');
if (log_status.startsWith('logged-out')) {
var tag_id = document.getElementsByClassName('rss')[0].getAttribute('href').slice(6,-10);
} else
var tag_id = document.getElementById('favorite_tag_tag_id').getAttribute('value');
// this bit is where the creation of the tag id element happens.
var tag_id_container = document.createElement('span');
tag_id_container.setAttribute('id', 'tag_id');
tag_id_container.innerHTML = "Include: filter_ids:" + tag_id + "
Exclude: -filter_ids:" + tag_id + "";
tag_id_container.style['vertical-align'] = '-0.3em';
tag_id_container.style['display'] = 'inline-block';
tag_id_container.style['margin-left'] = '0.5em';
insertAfter(tag_id_container, document.querySelector('h2.heading'));