AO3 Scroll Position Tracking

Keep your place on the stories you're reading!

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Advertisement:

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

Advertisement:

// ==UserScript==
// @name            AO3 Scroll Position Tracking
// @description     Keep your place on the stories you're reading!
// @version         1.0.0
// @author          Anonymous
// @namespace       861ddd094884eac5bea7a3b12e074f34
// @license         MIT
// @require         https://update.greasyfork.org/scripts/583749/1856870/Scroll%20Position%20Tracking%20Library.js
// @match           https://archiveofourown.org/works/*
// @match           https://web.archive.org/web/*/https://archiveofourown.org/works/*
// @match           https://archive.today/*
// @match           https://archive.is/*
// @match           https://archive.ph/*
// @icon            https://external-content.duckduckgo.com/ip3/archive.transformativeworks.org.ico
// @run-at          document-end
// @inject-into     content
// @grant           none
// ==/UserScript==

/* Attribution
 ****************

   - Adapted from spin-drift's AO3 Bunker, itself adapted from code by jcunews
       https://greasyfork.org/en/scripts/567423-ao3-bunker
       https://www.reddit.com/r/userscripts/comments/1ayfnoh/add_scroll_position_to_url_is_this_possible/

*/

(async function () {
    'use strict';

    let CONFIG = {
        origins: [{
            host: 'archiveofourown.org',
            path: /^\/works(\/\d+(?:\/chapters\/\d+)?)/,
            params: [{ key: 'view_full_work', value: 'true' }]
        }],
        // Delay between ceasing scroll and saving position (ms)
        save_delay: 500,
        // Lifetime of individually cached scroll positions (days)
        ttl: 42,
        // Smooth-scroll to saved position on restore
        animate_restore: true,
        // Duration of the scroll animation (ms)
        animation_length: 1000,
        // Max waiting period for page height check (s)
        // https://backlinko.com/page-speed-stats
        timeout: 30,
        // Verbose logging
        debug: false,
    };

    await ScrollPositionTracker.init(CONFIG);
})();