Greasy Fork is available in English.
Modified from "Bairdel AO3 Bookmarking Records" this for automatically add title, author, and summary to the bookmark desciption. This should help with record keeping especially with deleted fics. So I can stop going insane. Also adds read date.
当前为
// ==UserScript==
// @name Ellililunch AO3 Bookmark Maker
// @namespace Ellililunch AO3 Bookmark Maker
// @description Modified from "Bairdel AO3 Bookmarking Records" this for automatically add title, author, and summary to the bookmark desciption. This should help with record keeping especially with deleted fics. So I can stop going insane. Also adds read date.
// @version 0.15
// @author Ellililunch
// @match *archiveofourown.org/works/*
// @match *archiveofourown.org/series/*
// @license GNU GPLv3
// ==/UserScript==
// new users - scroll right to the bottom
(function() {
const divider = "Read: "; // the bit at the start of the automatically added text. this can be anything, but will need to follow bookmarkNotes in newBookmarkNotes down at the bottom
// automatically checks the Private Bookmark checkbox. Set to false if you don't want this.
document.getElementById("bookmark_private").checked = true;
// keeps any bookmark notes you've made previously. Must be above the "Read: ".
// this updates the date you last read the fic each time.
var bookmarkNotes = (document.getElementById("bookmark_notes").innerHTML).split(divider)[0];
////////////////////////// customisations ///////////////////////////////// DO NOT WORRY ABOUT
// get the current date. should be in local time. you could add HH:MM if you wanted.
var currdate = new Date();
var dd = String(currdate.getDate()).padStart(2, '0');
var mm = String(currdate.getMonth() + 1).padStart(2, '0'); //January is 0
var yyyy = currdate.getFullYear();
var hh = String(currdate.getHours()).padStart(2, '0');
var mins = String(currdate.getMinutes()).padStart(2, '0');
// change to preferred date format
var date;
//date = dd + '/' + mm + '/' + yyyy + " " + hh + ":" + mins;
date = mm + '/' + dd + '/' + yyyy; //this is the USA standard date format
console.log(date);
var author;
var words;
var status;
var title;
var summary;
var series_notes;
var lastChapter;
/*
What should it do?
if story title, author, and info is already there, don't add anything
if there are bookmark notes but no story info, add story info
if it's a series, it should get all the titles + summaries?
i think the class for the series "summary" is notes
so this would be
var series_notes;
series_notes = = document.getElementsByClassName("notes")[0].innerHTML; // series "summary" attempt
*/
// checks if series
var seriesTrue = document.getElementsByClassName("current")[0];
if (seriesTrue != undefined) {
// options for series bookmark notes
title = document.getElementsByTagName("h2")[0].innerHTML.trim();
words = document.getElementsByClassName("stats")[2].getElementsByTagName("dd")[0].textContent;
author = document.querySelectorAll('[rel="author"]')[0].innerHTML.trim(); // fic author
summary = document.getElementsByClassName("series meta group.userstuff")[0].innerHTML; // series notes "summary" attempt
/*var complete = document.getElementsByClassName("stats")[2].getElementsByTagName("dd")[2].textContent;
var updated = document.getElementsByClassName("series meta group")[0].getElementsByTagName("dd")[2].textContent
// var status
if (complete == "No") {
status = "Updated: " + updated;
} else if (complete == "Yes") {
status = "Completed: " + updated;
}*/
} else {
// options for fics
lastChapter = "Chapter " + document.getElementsByClassName("chapters")[1].innerHTML.split("/")[0];
title = document.getElementsByClassName("title heading")[0].innerHTML.trim(); // fic name
words = document.getElementsByClassName("words")[1].innerHTML; // fic wordcount
author = document.querySelectorAll('[rel="author"]')[0].innerHTML.trim(); // fic author
summary = document.getElementsByClassName("summary")[0].innerHTML; // summary attempt
/*// status i.e. Completed: 2020-08-23, Updated: 2022-05-08, Published: 2015-06-29
if (document.getElementsByClassName("status").length != 0) {
// for multichapters
status = document.getElementsByClassName("status")[0].innerHTML + " " + document.getElementsByClassName("status")[1].innerHTML;
} else{
// for single chapter fics
status = document.getElementsByClassName("published")[0].innerHTML + " " + document.getElementsByClassName("published")[1].innerHTML;
}
*/
}
//////////////////// THIS IS THE BIT FOR YOU TO LOOK AT /////////////////////////////////////////////////////////////////////////////////////
// puts it all together. feel free to change this format to whatever you like.
// first part must always be the divider or a new date will be added each time.
// <br> puts the next text on a new line
// options for variables are:
// current date
// current time
// current chapter count of fic / current number of parts in series
// title of fic
// author of fic (note that author "Anonymous" breaks this, but "orphan_account" doesn't
// word count of fic
// status of fic i.e. Completed: 2020-08-23, Updated: 2022-05-08, Published: 2015-06-29
/////// examples //////////
// bookmarkNotes = bookmarkNotes + "<br>Last Read: " + date + "<br>Chapter " + lastChapter;
// bookmarkNotes = bookmarkNotes + "<br>Last Read: " + date + "<br>Chapter " + lastChapter + "<br><br>" + title + " by " + author;
// bookmarkNotes + "<br>Last Read: " + date + "<br>" + lastChapter + "<br><br>" + title + " by " + author + "<br>" + status;
// newBookmarkNotes = bookmarkNotes +"<br><br>" + title + " by " + author + "<br>" + summary + "<br>Read: " + date;
//THIS IS THE NORMAL CODE
//var newBookmarkNotes = title + " by " + author + "<br>" + summary + "<br>Read: " + date + "<br><br>" + bookmarkNotes;//for new bookmarks
/* ok this is just a section for me to quickly update all my existing bookmarks*/
//var newBookmarkNotes = title + " by " + author + "<br>" + summary + "<br>" + bookmarkNotes;
/////////////////SELECT YOU OPTIONS//////////////////////////////
//var newBookmarkNotes = title + " by " + author + "<br>" + summary + "Read: " + date + "<br><br>" + bookmarkNotes; //with current date
var newBookmarkNotes = title + " by " + author + "<br>" + summary + "<br><br>" + bookmarkNotes; //without date for spam making notes
// fills in the bookmark notes box.
document.getElementById("bookmark_notes").innerHTML = newBookmarkNotes;
})();