Adds word counts to chapter links on AO3
// ==UserScript==
// @name AO3 Word Count Script
// @namespace http://tampermonkey.net/
// @version 1.5
// @description Adds word counts to chapter links on AO3
// @author Anton Dumov
// @match https://archiveofourown.org/*/navigate
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Find all chapter links
var chapterLinks = document.querySelectorAll('ol.chapter.index.group a');
// Loop through each link
for (var i = 0; i < chapterLinks.length; i++) {
// Use a closure to capture the current value of i
(function(i) {
// Fetch the page content
fetch(chapterLinks[i].href)
.then(response => response.text())
.then(async data => {
// Parse the HTML to find the word count
var parser = new DOMParser();
var doc = parser.parseFromString(data, "text/html");
var article = doc.querySelector('div[role="article"]');
var words = article.textContent.trim().split(/\s+/).length;
// Update the link with the word count
chapterLinks[i].textContent += ' (' + words + ' words)';
})
.catch(error => console.error(error));
})(i);
}
})();