Greasy Fork is available in English.

AO3: Display Tag ID

a quick and dirty script to display a canonical tag's tag id in its /works page.

// ==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?*
// ==/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: <strong>filter_ids:" + tag_id + "</strong><br/>Exclude: <strong>-filter_ids:" + tag_id + "</strong>";
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'));