您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds "Marked for Later" and "Bookmarked Fics" buttons on the home page of AO3, as well as creates a "random works" button in marked for later list
当前为
- // ==UserScript==
- // @name AO3 Easy Navigation Userscripts
- // @namespace Ellililunch AO3 USERSCIPTS
- // @version 0.3
- // @history 0.0 deplicated JaneBuzJane's script to put the "Marked for Later" button on the home page of AO3.
- // @history 0.1 modified JaneBuzJane's script to put the "Marked for Later" button on the home page of AO3 wo create a "bookmarked fics" botton to the home tab of AO3.
- // @history 0.2 combined the script for a "Marked for Later" and "Bookmarked Fics" botton in one script
- // @history 0.3 added the escctrl's AO3: Jump to a Random Work script to adds a "Random Work" button (top right corner) when viewing works in a tag/filter or your Marked For Later list
- // @description Adds "Marked for Later" and "Bookmarked Fics" buttons on the home page of AO3, as well as creates a "random works" button in marked for later list
- // @author Ellililunch
- // @match http://archiveofourown.org/*
- // @match https://archiveofourown.org/*
- // @match http://archiveofourown.org/works*
- // @match https://archiveofourown.org/works*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js
- // @require https://code.jquery.com/jquery-2.2.4.js
- // @run-at document-idle
- // @grant none
- // @match *://*.archiveofourown.org/tags/*/works*
- // @match *://*.archiveofourown.org/works?*
- // @match *://*.archiveofourown.org/users/*/readings*show=to-read*
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js
- // @license MIT
- // ==/UserScript==
- //////Puts Marked for Later Button on AO3 Home Bar///////////////
- var $j = jQuery.noConflict();
- $j(document).ready(function() {
- // From https://greasyfork.org/en/scripts/406616-ao3-no-rekudos/code
- var greeting, username;
- greeting = document.getElementById('greeting');
- username = greeting.querySelector('a').href;
- // From https://stackoverflow.com/questions/43742732/use-javascript-or-jquery-to-create-an-href-url-using-variables-passed-in-through
- var dynamicContent = "archiveofourown.org";
- var username = ""+username+"";
- var url = ""+username+"/readings?show=to-read";
- $('#container').html('<a href="'+url+'">Marked for Later</a>');
- // From https://stackoverflow.com/questions/1145208/how-to-add-a-list-item-to-an-existing-unordered-list
- $("ul.primary.navigation.actions").append('<li><a href="'+url+'"><span class="dropdown-toggle">Marked for Later</span></a></li>');
- });
- ////////////////////////////////////////
- ///////////////AO3: Jump to a Random Work///////////// adds a "Random Work" button (top right corner) when viewing works in a tag/filter or your Marked For Later list
- ////////////////////////////////////////////////
- (function($) {
- 'use strict';
- // add a button
- var button = document.createElement('li');
- button.innerHTML = '<a href="#">Random Work</a>';
- button.addEventListener("click", RandomWork);
- if (location.href.indexOf('show=to-read') > 0) document.querySelector('div#main.readings-index ul.navigation.actions').appendChild(button);
- else document.querySelector('div#main.works-index div.navigation.actions.module ul.user.navigation.actions').appendChild(button);
- // when the button was pressed, read the number of works, pick a random one, and redirect there
- function RandomWork() {
- // Find number of pages. content of second-to-last <li> tells us
- var pageCount = parseInt($('ol.pagination').first().find('li').last().prev().text() || 1);
- // pick random whole number of the available pages
- const pageRandom = Math.floor((Math.random() * pageCount) + 1);
- // figure out which page we're currently viewing
- var thisPage = location.search.match(/page=(\d)+/);
- thisPage = thisPage === null ? 1 : parseInt(thisPage[1]); // match only works if URL contained a page (i.e. if not on page 1)
- // check: are we currently on the randomly chosen page?
- if (thisPage !== pageRandom) LoadRandomPage(pageRandom); // if not - read that page to find a random work link
- else Redirect2Work($('ol.work.index.group li.work.blurb')); // if yes - skip page loads, read a random work link from this page
- }
- function LoadRandomPage(r) {
- // build the URL of the page to load
- var pageURL = location.search.indexOf('page=') > 0 ? location.href.replace(/page=(\d)+/, 'page='+r) // replace existing page number
- : location.href + (location.href.indexOf('?') > 0 ? '&' : '?') + 'page='+r; // add page number if not yet in URL search parameters
- // grab the list of works from the page
- $.get(pageURL, function(response) {
- }).done(function(response) {
- Redirect2Work($(response).find('ol.work.index.group li.work.blurb'));
- // if that sent us to jail, set the ao3jail marker
- }).fail(function(data, textStatus, xhr) {
- console.log("Random Work script has hit Retry later", data.status);
- return false;
- });
- }
- function Redirect2Work(worksList) {
- // pick a random work from within the list
- var pick = Math.floor((Math.random() * worksList.length) + 1);
- // read that random work's URL and title
- pick = $(worksList[pick-1]).find('h4 a').first();
- var path = $(pick).attr('href');
- var title = $(pick).text();
- // jump to that work but warn the user
- alert('Redirecting you to a random work: '+title);
- window.location.assign(path);
- }
- function HideClearHistory(){
- var btn;
- btn = document.getElementById('Clear History');
- btn.style.display = "none";
- }
- })(jQuery);
- //////////////////////////////////////////
- ///////////////////////////////////////Put Bookmarks Button on AO3 Home//////////////////////////
- ///////////////////Puts the "Bookmarked Fics" button on the home page of AO3.
- var $j = jQuery.noConflict();
- $j(document).ready(function() {
- // From https://greasyfork.org/en/scripts/406616-ao3-no-rekudos/code
- var greeting, username;
- greeting = document.getElementById('greeting');
- username = greeting.querySelector('a').href;
- // From https://stackoverflow.com/questions/43742732/use-javascript-or-jquery-to-create-an-href-url-using-variables-passed-in-through
- var dynamicContent = "archiveofourown.org";
- var username = ""+username+"";
- var url = ""+username+"/bookmarks";
- $('#container').html('<a href="'+url+'">Bookmarked Fics</a>');
- // From https://stackoverflow.com/questions/1145208/how-to-add-a-list-item-to-an-existing-unordered-list
- $("ul.primary.navigation.actions").append('<li><a href="'+url+'"><span class="dropdown-toggle">Bookmarked Fics</span></a></li>');
- });