Download
(30 Kb)
Download
Updated: 10/31/23 10:40 PM
Pictures
File Info
Compatibility:
Endless Archive (9.2.5)
base-game patch (9.1.5)
Necrom (9.0.0)
Updated:10/31/23 10:40 PM
Created:04/10/14 02:17 AM
Monthly downloads:1,645
Total downloads:199,914
Favorites:344
MD5:
Categories:Miscellaneous, Character Advancement, RolePlay, Utility Mods
Librarian Book Manager  Popular! (More than 5000 hits)
Version: 3.11
by: Flamage, Orionik
Librarian records every book your character reads in-game and keeps a list of when it was found and whether you have marked it as read, allowing you to continue questing (and not hold up other players) while being confident you won't forget to read anything later.

Any suggestions, bugs or general discussion about the addon can be posted in the comments tab above, in my author portal (button on the right) or in this forum thread.

Features:
- Ability to mark books as read / unread. Books are marked as unread initially so you can feel free to skip reading while questing and know that your book will be easily found later.
- When reading a book, an is shown for books not marked as read (can be disabled in the settings)
- Displays the books in the default book reader interface.
- Imports books you have already read from the Lore Library / Eidetic Memory.
- Records the time each book was first discovered.
- Optionally view books found on your other characters.
- Sorting by unread / read status, time discovered, book title and word count.
- Full text search of all the books in your collection.
- Displays a count of the total number of books found so far and the number that are unread.
- Key binding to open the Librarian window (and a bonus keybind for /reloadUI).
- Optional reminder to /reloadui (and force a save of Librarian data) when a certain number of new books have been discovered, to help prevent loss of data if the client crashes.
- Add some icons in "Lore Library" to see which books are read and which aren't and add possibility to mark them as read/unread there (can be disabled in the settings)

How to use:
- Bind a key for Librarian in the Controls, Keybinds settings menu, or type /librarian into the chat window to open Librarian.
- Click a book or press the action button ('E' by default) while hovering over a title to read that book.
- Hover over a title and press the secondary action button ('R' by default) to toggle the unread state of the highlighted book. You can also toggle the unread state of a book while reading it.
- Click on the column headers to sort by that field. Click again to sort in descending order.

SavedVariables warning:
Librarian relies on SavedVariables to store information about the books you have found. If this file is lost or corrupted, that information will be lost. Therefore, it is important to backup your saved variables regularly. This is quite simple:
1 - Go to your SavedVariables folder (on windows, this can be found at MyDocuments\Elder Scrolls Online\live\SavedVariables.
2 - Create a folder called Backup.
3 - Select Librarian.lua and right click, select copy.
4 - Open the Backup folder, and paste the file.

With version 3, the save was entirely adapted to fix some issues and allow to reduce its size but it is better to copy it elsewhere before updating the addon in order to easily rollback in case of a problem.

Although, if you encounter an issue and didn't copied your save before the update, you can rollback your save by editing your save file (MyDocuments\Elder Scrolls Online\live\SavedVariables\Librarian.lua) and replacing the sections "characterBooks" and "books" of the "Librarian_SavedVariables" table with the content of "LibrarianDeprecation_SavedVariables_Backup" which is in LibrarianDeprecation.lua (next to Librarian.lua). Then you can, install back the previous version of the addon.

Dependency:
- LibAddonMenu-2.0

Starting from v3.5, Librarian is able to display books added by "The Librarium" add-on. If you want more books and see what the ESO community can produce, you should check it out. Big thanks to Alianym for making this collaboration possible.
3.11 2023-11-01
- Updated API for Secret of the Telvanni (101040)

3.10 2023-08-23
- Updated API for 2023 update of quality of life (101039)

3.9 2023-06-05
- Updated API for Necrom (101038)
- Fix book reader scene is now "loreReaderDefault" instead of "loreReaderInteraction"
- Add back PlaySound when opening the reader (but it seems the bug is coming from eso as there is no sound when opening a book from the lore library since the update)

3.8 2022-11-02
- Updated API for Scribes of Fate (101037)

3.7 2022-11-13
- Add chinese translation, credit goes to KomeSake who posted it in the comment section of Librarian in esoui.com

3.6 2022-11-02
- Updated API for Firesong (101036)

3.5 2022-10-03
- Add API for external addon to be able to register their own books to Librarian

3.4 2022-09-11
- Add keybind in lore reader only when the book is recognized by Librarian (it avoids conflicting with other addon like TheLibrarium)
- Add possibility to delete books which don't have a category

3.3 2022-08-23
- Updated API for Lost Depths (101035)
- Widden "Found" column for 12Hour format

3.2 2022-08-06
- Create separate lib for deprecation in order to make eso create a second file for the save variables.

3.1 2022-08-02
- Improve deprecation
- Prevent from opening a book that the current character doesn't know

3.0 2022-07-25
- Updated API for High Isle (101034)
- Fix issues
- Add icons in lore library
- Add option to mark book as read directly from lore library
- Remove Import from before patch option which was meant for save created back in 2015
- Remove some deprecation code for save before 2015
- Deprecate global saves to use bookId as identifiers instead of the title (several books had the same name) and remove all data that could be retrieved thanks to ESO API now that we have the bookId (title, body, medium, showTitle, wordCount). It lightens the save (~2MB for all the books on one character) and allow the player to switch language (although a few books can't be retrieved with their bookId because they don't have a category/collection so for them all the data are kept). Keep for now the previous save in a separate table in case there is a mistake in order to be able to roll back)
- Deprecate characterBooks save, it now references the bookId instead of the title and fill at the same time the unreadPerCollection list
- Optimize ImportFromLoreLibrary by removing the Refresh every frame (without it, past 1000 books, the game slow down a lot and at 4000 you end up with less than 1fps)
- Activate back auto importation from init now that it is quick enough
- Add full localization and support for french language
- Add a small timer before refreshing the list when doing a research as we could trigger a crash if we were typing a search too fast when we have too many books
- Improve settings (better integration with LibAddonMenu and add a few options)
- Add category column in Librarian UI
- Use smaller font in order to fit all of the text in the UI
- Add button to select if you want to search through the Full-Text or just the Title of the books

2.0 (2/12/18)
- Updated API for Dragon Bones (100022)
- Fixed issue with ZOS function LoreReader, and new issue with ZO_SceneManager. Currently closes back to
UI and not Librarian list, will update that soon.

1.9 (9/10/17)
- Updated API for Horns Of The Reach (100020)
- Updated LAM to 2.0 r24
- Fixed issue with ZOS function LoreReader

1.8 (6/10/17)
- Updated API for Morrowind (100019)

1.7 (2/5/17)
- Updated LAM to 2.0 r23
- Updated to API 18 (Homestead)

1.6.3 2016-09-10
- Import feature working much better thanks some input from Votan (Thank You!)

1.6.2 2016-09-10
- Updated to LibAddonMenu 2.0 r17
- Updated for Shadows of the Hist, API 100016, also confirmed working for 100017
TODO: Looking at building language localizations and some category filters for book types. Also looking at improving the import function.

1.6.1
- Added License for LibAddonMenu

1.6.0
- Updated TOC for Tamriel Unlimited
- Updated LibAddonMenu

1.5.0
- Updated TOC for patch 1.5
- Updated LibAddonMenu 2.0

1.4.0
- Updated TOC for patch 1.4

1.2.6 2014-9-5
- Added an option to disable the character spin when opening the Librarian window.
- Added a shortcut button to the setting window in the top right of Librarian.
- Compatibility fixes for version 1.4 from the PTS.

1.2.5 2014-8-18
- Exiting the book reader interface now returns to Librarian rather than the base scene. Also fixes this behaviour with books opened from the inventory and the lore library.

1.2.4 2014-8-15
- Modified the SavedVariable import process to fix data for all accounts, not just the currently logged-in account.

1.2.3 2014-8-6
- Added missing references to LibAddonMenu.lua files that was causing an error.

1.2.2 2014-8-6
- Fixed a bug where full-text search would show an error if a book was missing its body.

1.2.1 2014-8-5
- Fixed a error caused by a change to the Scene Manager in 1.3
- Added a function to migrate data from the "empty" account that was created by the GetDisplayName() bug in 1.2.3

1.2.0 2014-6-25
- Updated to LibAddonMenu 2.0.
- Added a SavedVariable backup reminder.

1.1.2 2014-6-24
- Fixed a bug with the "Waterlogged Journal" from Craglorn that was caused a user to lose all their data. A more robust fix will be deployed later.

1.1.1 2014-6-14
- Temporarily disabled integration with the LoreLibrary which was causing connection time-outs for some users. This feature will be re-enabled when a fix for it is found.

1.1.0 2014-5-23
- Update API version to 100004. Addon appears to be stable, so I have moved to version 1.1.0.

1.0.18 2014-5-8
- Fixed a bug with upgrading old databases that would result in an error.

1.0.17 2014-5-7
- Fixed a bug in the settings panel when a newer version of LibAddonMenu was loaded.
- Updated the bundled version of LibAddonMenu to 1.0r7

1.0.16 2014-5-5
- Added a new optional reloadui reminder feature. By default, after finding 5 new books the game reminds you in a chat message to reloadui so that you do not lose much progress in the case of a crash.
- Fixed a bug with non-english clients that was preventing keybindings from working.
- Added the current version number to the UI.

1.0.15 2014-4-30
- Fixed an error that occurred when viewing a book that was not already in the collection.

1.0.14 2014-4-30
- Added a new unread indicator to the book reader. The indicator can be disabled in the settings.

1.0.13 2014-4-30
- Added the ability to toggle a book's unread status while reading it.

1.0.12 2014-4-29
- Added full-text search feature.

1.0.11 2014-4-28
- Added the LoreLibrary import feature.
- Fixed a error when changing the time display setting.

1.0.10 2014-4-28
- Fixed an error that was occurring when upgrading users of an older version of Librarian. Sorry I missed that!

1.0.9 2014-4-25
- From user feedback, performance looks to have been fixed! Moving back onto features.
- Added an unread book counter

1.0.8 2014-4-24
- Completely revamped the code to use ZO_SortFilterList as the basis of the Librarian book list. Hopefully performance is significantly improved, both for scrolling, and loading / exiting the game.

1.0.7 2014-4-21
- Added a setting to specify whether or not to display alerts in chat and/or as a banner-type alert.

1.0.6 2014-4-17
- Fixed a bug with the keybinding unread / read display when a book is highlighted.
- Replaced the chat alert when finding a new book with an alert similar to when finding a new lore book.

1.0.5 2014-4-17
- Fixed a bug with toggling the read / unread status of books.

1.0.4 2014-4-17
- Account-wide book access. There is a checkbox available at the bottom of the Librarian interface to toggle the showing of books seen across any of your characters. Initially, you will need to log in each character once to move their data to the account-wide Library.
- Big changes on the data storage side. Actual book data is stored in an account-wide variable, and only the time found is stored per-character.

1.0.3 2014-4-15
- Added a settings screen which can be accessed from the standard settings menu.
- Added a time format setting so the user can choose between 12 and 24 hour time. This setting should default to 12 hour for english and 24 hour for other languages, which is the same logic the game itself uses.
- Fixed the bug where times were always being displayed as "P.M."

1.0.2 2014-4-14
- Added a book count header.
- Fixed a bug with highlighting of sort headers.
- Known issue: book found times are still inconsistent.

1.0.1 2014-4-13
- Added a wordcount field.
Archived Files (51)
File Name
Version
Size
Uploader
Date
3.10
30kB
Orionik
10/10/23 06:08 PM
3.10
31kB
Orionik
08/23/23 07:00 AM
3.9
30kB
Orionik
06/05/23 11:04 PM
3.8
30kB
Orionik
03/13/23 10:17 PM
3.7
30kB
Orionik
11/13/22 12:29 PM
3.6
28kB
Orionik
11/01/22 07:31 PM
3.5
28kB
Orionik
10/10/22 07:40 PM
3.4
24kB
Flamage
09/11/22 05:04 PM
3.3
23kB
Orionik
08/23/22 09:45 PM
3.2
23kB
Orionik
08/06/22 09:56 AM
3.1
22kB
Orionik
08/02/22 11:03 AM
3.0
21kB
Orionik
07/25/22 12:00 PM
2.0
56kB
calia1120
02/13/18 12:56 AM
1.9
55kB
calia1120
09/10/17 08:59 PM
1.8
53kB
calia1120
06/11/17 01:02 AM
1.7.0
53kB
calia1120
02/05/17 03:00 AM
1.6.3
41kB
calia1120
09/10/16 05:51 AM
1.6.2
41kB
calia1120
09/10/16 02:09 AM
1.6.1
38kB
Flamage
03/29/15 03:59 PM
1.6.0
34kB
Flamage
03/22/15 09:38 PM
1.5.0
34kB
Flamage
11/05/14 03:47 PM
1.4.0
34kB
Flamage
09/15/14 08:58 PM
1.2.6
34kB
Flamage
09/04/14 10:57 AM
1.2.5
33kB
Flamage
08/17/14 04:44 PM
1.2.4
33kB
Flamage
08/14/14 04:56 PM
1.2.3
33kB
Flamage
08/05/14 05:52 PM
1.2.2
32kB
Flamage
08/05/14 04:22 PM
1.2.1
32kB
Flamage
08/04/14 05:01 PM
1.2.0
31kB
Flamage
06/26/14 05:22 AM
1.1.3
14kB
Flamage
06/25/14 04:29 AM
1.1.2
14kB
Flamage
06/24/14 04:49 AM
1.1.0
14kB
Flamage
06/13/14 05:32 PM
1.1.0
14kB
Flamage
05/23/14 05:02 AM
1.0.18
14kB
Flamage
05/08/14 01:55 AM
1.0.17
14kB
Flamage
05/06/14 03:20 PM
1.0.16
13kB
Flamage
05/05/14 05:22 AM
1.0.15
12kB
Flamage
04/30/14 02:23 AM
1.0.12
12kB
Flamage
04/29/14 06:05 PM
1.0.14
12kB
Flamage
04/29/14 04:42 PM
1.0.13
12kB
Flamage
04/29/14 03:49 PM
1.0.12
12kB
Flamage
04/28/14 04:01 PM
1.0.10
11kB
Flamage
04/27/14 03:11 PM
1.0.9
11kB
Flamage
04/24/14 04:19 PM
1.0.7
12kB
Flamage
04/20/14 09:54 PM
1.0.6
11kB
Flamage
04/17/14 07:03 AM
1.0.5
12kB
Flamage
04/16/14 10:57 PM
1.0.4
11kB
Flamage
04/16/14 03:10 PM
1.0.3
10kB
Flamage
04/14/14 04:16 PM
1.0.2
5kB
Flamage
04/13/14 04:00 PM
1.0.1
5kB
Flamage
04/12/14 07:48 PM
1.0
4kB
Flamage
04/10/14 02:23 AM


Post A Reply Comment Options
Unread 04/02/18, 02:36 PM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
A Wild Update Appears!

What's new?

Yeah, I work fast.
  • Book contents are now searchable again! You can thank Nudel for that, as nosing around in other mods helped me figure out what was causing the crash.
  • Even better, it shouldn't crash! Please tell me if it crashes you, I ran extensive tests to try to get it to crash me and I couldn't, but you never know...
  • Also better, it's now a toggle! So you can switch between searching just book titles or book titles and contents for that authentic lore hound experience you so crave.
  • And code clean up on top of that which makes the Librarian.lua an enjoyable thing to read.
To Do:
  • Further code cleanup, for example: 'Show Books for All Characters' should be properly capitalised.
  • XML cleanup. I'm going to see if I can wrap my mind around XML enough to make the Librarian UI a little cleaner. XML is really my weakness.
  • Perhaps add a column for the ID of the book. That's a long term goal if I can ever figure out enough about how XML formatting works.
Enjoy!

Edited to correct formatting.
Last edited by Werewolf Finds Dragon : 04/02/18 at 02:43 PM.
Report comment to moderator  
Reply With Quote
Unread 04/02/18, 11:32 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
That's genuinely helpful and I really appreciate it, thank you! I know it's hard to tell on the Internet with so much sarcasm abounds, but I'm being sincere about that and I'll explain why. I've really appreciated your aid thus far in improving Librarian.

Originally Posted by Nudel
The duplicate book in question "Crow and Raven: Three Short Fables" is a pre-launch ooooold issue that is not likely to get 'fixed'. It's actually two different books, one purple Shalidor's Library book (levels up Mages Guild) and one normal Eidetic Memory text (in bookshelves and such).
This helps ease my mind in that I'm right about the nature of that book (that it is a duplicate ZOS accidentally made) and that my solution was the right one. It's likely it'll never get fixed, but it's still better to keep both in the database and show the player only one, just in case, since both books do exist.

Originally Posted by Nudel
As for the Librarian search, that is also a very old issue with Librarian. Having remembered that problem from before, I've actively avoided searching its library. I've been using Votan's Lore Library Search and have never crashed. Maybe you can sift through its code for clues :P
This clears up that it wasn't my changes that made the game crash. I did go back and try out old Librarian just to be sure, and it occurred there for me too but I didn't want to say that because it would feel like I'm going out of my way to berate the old addon. Whilst it has had many, varied problems, the addon itself is still a fantastic idea even if the execution is a little iffy.

This also gives me an avenue of following up regarding how to get the body data searchable, which I also appreciate. I'll get on that and see what I can figure out. Thanks!
Last edited by Werewolf Finds Dragon : 04/02/18 at 11:36 AM.
Report comment to moderator  
Reply With Quote
Unread 04/02/18, 08:18 AM  
Nudel

Forum posts: 0
File comments: 134
Uploads: 0
Hey there,

The duplicate book in question "Crow and Raven: Three Short Fables" is a pre-launch ooooold issue that is not likely to get 'fixed'. It's actually two different books, one purple Shalidor's Library book (levels up Mages Guild) and one normal Eidetic Memory text (in bookshelves and such).

As for the Librarian search, that is also a very old issue with Librarian. Having remembered that problem from before, I've actively avoided searching its library. I've been using Votan's Lore Library Search and have never crashed. Maybe you can sift through its code for clues :P
Report comment to moderator  
Reply With Quote
Unread 03/30/18, 11:22 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update

What's new?

For now, for your safety, the search has been restricted to book titles. To search book body data as well on every keypress, which includes backspaces, is too much. The game won't allow for it. It can't handle it. And I don't want anyone getting banned.

I swear, maintaining Librarian sometimes feels like walking through a field of landmines.

I know this isn't ideal for everyone, so we're not leaving this here. What needs to happen, though, is for the search to be moved to a more sane system where the search doesn't occur until you hit a search button. No searching on every keypress.

If anyone can show me a UI element or an addon that has a search bar and a search button, where the search doesn't occur until you hit the search button, I'd be hugely appreciative.

Edit: Funny observation/thought -- Even the lore library only searches book titles, not contents.
Last edited by Werewolf Finds Dragon : 03/30/18 at 11:23 AM.
Report comment to moderator  
Reply With Quote
Unread 03/30/18, 10:46 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
I've run into a bit of a wrinkle and I'd be happy to accept advice.

If typing too quickly in the search box, it seems to cause the game to crash. The only way to avoid it, I've found, is to type slower. I don't know whether it's just processing too much information in a search, and the game is objecting. If that's the case, perhaps the search is... unwise. I don't want Librarian to get anyone banned.

I'm halfway to considering pulling the search feature due to this as I can't track down what's causing this issue and it doesn't seem to rear its head anywhere else in Librarian. I'd really appreciate thoughts and opinions on this, thanks!

Edit: After running more tests it looks like it's just too much information processing, the game doesn't like it. If I go with just the title, the game can handle it fine. However, with a lot of books, if the bodies are searched as well (every time a letter is typed) then it's going to do very bad things.

So here's my plan of action (unless someone has a better idea):

1.) Restrict it to just searching titles for now.
2.) Figure out how to add a search button.
3.) Set the search to only run when the search button is pressed (not on every single keypress).

Thoughts and opinions are welcome.
Last edited by Werewolf Finds Dragon : 03/30/18 at 11:09 AM.
Report comment to moderator  
Reply With Quote
Unread 03/30/18, 08:26 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
For those who don't want technical information, skip over this post. You don't need to know or understand this, I just want to 'show my work' so to speak, and provide the users of my version of Librarian with peace of mind that I tend to carefully think everything out. Usually down to the last detail. So if you want to be able to follow my thinking in regards to how I'm maintaining Librarian, read on.

Basically, I just wanted to explain my thinking more on book IDs and dupes.

The Issue

Apparently, sometimes ZOS makes an oops and has two identical books (exactly the same content in regards to title, body text, book medium, and so on) on different IDs. The most likely explanation for this is that someone forgot to check the database before including a book. So this means that Librarian will end up containing duplicates.

Bad Solutions

We can't simply stop Librarian from including dupes. We need to actually bring them into the database but not show them to the player. Why? For the same reason that Librarian updates book information each time you read a book -- ZOS might not keep things the same way, so we need to keep an eye on things to keep our database in line with ZOS' own.

So, consider the following:

ZOS has two identical books. These books are on IDs 123 and 1234. Now, why don't we just delete one of these books? The question is which one? Let's say that we delete the book we found later (1234) and kept the former (123). What if ZOS decides that 123 is the flawed entry?

We can't know which of these IDs ZOS will consider erroneous, we aren't privy to that information.

So if we delete one of those IDs and ZOS decides that they want to delete the other, that's going to cause problems for us.

What we do:

We keep the book on book 123, and delete the book on 1234.

What ZOS does:

They delete the book on 123, and replace it with another book using book ID 123.

What will then happen:

Librarian will update to the correct book on 123 when it next sees that ID and the original book will be lost because we deleted 1234. In this way, we actually lose books.

The Good Solution

Duplicates are kept in the database but not shown to the player. Only one of the two duplicate books is actually shown. The others are recorded but kept out of the player's view. So whilst we may have one (or more, if ZOS really drops the ball!) duplicate of an existing book, we will still only see one unique copy of it in the Librarian UI.

We also check when updating the player with alerts and reminders to see if the book they've just found is a dupe. If it's a dupe we treat it like the other book the player already knows which has the same content. On the user interface side of things, the user will be none the wiser as it'll just look like they found the original book again.

This solution works because...

If ZOS deletes one of the IDs and replaces it, Librarian will just update to accommodate.

If ZOS changes one of the books slightly, Librarian will just update to accommodate.

And so on.

If the title/body are actually different along with the ID, they will -- of course -- be treated as unique books as they aren't identical.

It's not a perfect solution, but it is a very good one and it's the best we're going to get unless ZOS exposes their entire internal book database to us (and that's not going to happen for a vast multitude of reasons). It provides a number of safety nets that -- as I've said -- will allow people to have a very complete Librarian database without errors. Keeping dupes around is part of that.

The Importance of Book IDs

This is exactly why book IDs are so incredibly important. With the wealth of information provided to us by having access to not just titles, but also the book body data and book IDs, we can be certain that we won't ever have to worry about missing out on books due to any concern.

This comes down to: The more information we have, the better things work.

With the way Librarian was before I changed it, it only used book titles as a system of measure. That resulted in all kinds of problems. As some might remember. Essentially, it would miss out on books and lead to all sorts of bad duplicates. There's even a warning about that on the front page. With the way Librarian was before I started maintaining it, there was absolutely no way to have a complete collection, let alone an up-to-date one.

Book IDs also have duplicates too, but because we have book IDs, and titles, and book body data in the cross-referencing mix we're better equipped to figure out what books should be shown when we open Librarian in-game.

My attitude is that it's better to grab as much as possible and then filter it on the fly. It's better to have extraneous information around than to miss out on books entirely.

Reasons for Explanations

Basically, I just wanted to be transparent. I'm putting a lot of thought into this and I wanted to be able to reassure everyone that I'm not half-arsing my efforts.

I initially started working on Librarian due to the medium bug thanks to ZOS adding an extra medium to the medium table to specifically cause errors. I'm not kidding! Here...

[BOOK_MEDIUM_NONE] = {}, -- Intentionally left blank to cause UI errors if referenced.
I sort of understand why they did that but it doesn't strike me as the most intelligent implementation. There are better ways to do that.

Anyway, that got me looking at the Librarian code. Once I did that, it was like opening Pandora's Box, as I saw everything that could (and inevitably would) go wrong with its implementation. Basically, a lot of things could go so very wrong. I began fixing things up for myself and my partner, which lead to a better Librarian experience for us. Naturally, guilt set in... Is it fair to have this and not share it? I can't upload patches to Librarian so I can't do anything that way -- and besides, having to start over isn't the most desirable outcome for people even if it is completely necessary.

And here we are.

Of course, this lead to there being some duplicate books under different book IDs which lead to a new wrinkle. But thanks to having more information available than we did before, we're in a good position to be able to deal with that without this turning very bad.

I think that about covers it.

I'm bad at writing closing paragraphs. Just going to leave it at that.
Report comment to moderator  
Reply With Quote
Unread 03/30/18, 06:44 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update

What's new?

I stopped dupe books from triggering the new book count, the reload reminder, and the alert. As I said in my last post about this, it might only actually be one book that ZOS actually derped with this, but just in case I'm going to account for it everywhere I can.

My goal with my take on Librarian, after all, is for everyone to have the most complete book collecting experience they can, without flaws. So I want each book in Librarian to be genuinely unique, and at the same time I don't want Librarian to ever accidentally exclude anything. I think that's kind of a promise I made when I started maintaining it, and I've kept it.

I've also cleaned up the code a little more.
Report comment to moderator  
Reply With Quote
Unread 03/29/18, 02:05 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update

What's new?

I was browsing through the lua source on ESOData today, as I am wont to do, and I realised that the original import function Librarian had (that I cleaned up a lot, but left mostly the same) was... perhaps not of the most efficient implementation. There were functions I could use to have it quickly import books without ridiculously long lockup times or the potential of a permanent lockup. This pleases me.

I temporarily wiped my database to test it and that was the fastest I've seen the import happen, so I'm very happy.
Report comment to moderator  
Reply With Quote
Unread 03/28/18, 04:40 PM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update.

What's new?

ZeniMax actually made an oops! In all of my travels I've never before found two of the same books using different IDs. Someone forgot that they included a book and included it again. >_>

If any ZOS folks are reading, the book is Crow and Raven: Three Short Fables and it occupies IDs 231 and 1871.

So, what can we do about this?

We can't remove one of the dupes from the database since we don't know which ID ZOS will delete. What we can do is hide the duplicates. The latest Librarian update does just that, using IDs, titles, and book body data it figures out which books are exact duplicates and shows only one of them. This also properly changes the overall book count, too.

Furthermore, because we use IDs, if ZOS -- at a later date -- decide to nuke one of those IDs and put a different book there? Librarian will simply update that ID to whatever book it becomes. It'll do this intelligently so even if they change the book ID that Librarian wasn't hiding, the hidden one will no longer be hidden. That's why I did all this in this way.

TL;DR: If you were seeing any duplicate books, that's fixed now. For all I know, I might've found the only one.
---
Last edited by Werewolf Finds Dragon : 03/28/18 at 04:48 PM.
Report comment to moderator  
Reply With Quote
Unread 03/28/18, 12:52 PM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Awesome.

I'm honestly more than happy for her to take the code wholesale. I don't need any credit at all (though feel free to blame me for what I might've dunked up). I just want Librarian to be working for folks.
Report comment to moderator  
Reply With Quote
Unread 03/28/18, 12:23 PM  
joshmiller83
AddOn Super User
 
joshmiller83's Avatar
Premium Member

Forum posts: 70
File comments: 243
Uploads: 0
I have talked to Cali1120. She should be checking in on this soon!
Report comment to moderator  
Reply With Quote
Unread 03/28/18, 12:21 PM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update: MediaFire

I don't think Google Drive has been sharing up the right version, so I've gone back to MediaFire for now. It's going to have to be MediaFire or nothing, I think.

What's new?

I spotted a problem with restructuring titles with multiple instances of the replacement word (such as books with three cases of the definitive article in their title). I've fixed that.
Report comment to moderator  
Reply With Quote
Unread 03/27/18, 10:08 AM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
I'm really glad to.

I think what honestly motivated me with Librarian is seeing how upset my partner got when things broke; Then I looked at the Librarian code and saw how very much worse things could break and decided to act. And since I tend to have guilt about having something not broken when I and my partner enjoy something function, I figured I'd share. Guilt is weird.

Right now I'm just umming and ahhing over how I should proceed. Librarian is in a fairly solid place; It's been tested really thoroughly, and with so much information on books stored it's future proofed better than before. Even if things change, with the inclusion of book IDs it makes it easy to cross-reference and correlate to fix things if anything bad does happen again. Which is why the sooner everyone switches over to the ID-based database, the better.

I don't know if I should try PMing calia. And if I do, if they don't respond, whether I should fork my work on ESOUI under a different name. Sadly, Librarian isn't flagged to accept patches so there's nothing I can do, there.

And some clearly aren't comfortable using MediaFire/Google Drive.

Just airing thoughts, basically. If you're happy (as I am and my partner is), and Librarian is about as complete and polished as it can be at this point in time (for this ESO patch), then I need to figure out what to do moving beyond coding.

I do give calia complete permission though to use my work, even without attribution. I hadn't changed the names in my edits for that reason. I didn't include my name intentionally.
Report comment to moderator  
Reply With Quote
Unread 03/27/18, 07:47 AM  
Nudel

Forum posts: 0
File comments: 134
Uploads: 0
Wow! I wasn't expecting such a fast response.

Happy to report that it's perfectly integrated with the base game lore library now. I can now mark them as read/unread wherever I happen to be reading them, which is awesome!

Tested the Mark All as Read or Unread buttons and they work perfectly. Seriously a time-saver when you're importing a large number of books, like the 2044 on my main. Good call on putting it in the settings and not the main interface where unaware people might hit it inadvertently.

I wasn't actually complaining about the number of times I had to click the import button previously, merely commenting on how it worked so that others wouldn't think import had failed to collect their books. Sorry about that confusion. In any case, I cleared my saved variables and tested the import function. There's definitely a noticeable freeze, which you do warn about. But it didn't crash my game at all and it definitely did collect more books. It's up to you whether you prefer it with this freeze or the with more clicks but no real noticeable freeze as in the prior version. I'm honestly okay with it either way as the import function isn't something I imagine any of us will be using too frequently (maybe 3-4 times a year if major patches break our saved variables, which honestly is unlikely to occur every time anyway).

If you can give me a rough estimate of how many times you had to hit the button on one character, that would be amazingly useful. Thank you.
To avoid cluttering the comments further, I'll pm you the breakdown of books per pass if you want to peruse further.

Thanks so much for the new features!
Report comment to moderator  
Reply With Quote
Unread 03/26/18, 01:10 PM  
Werewolf Finds Dragon
AddOn Author - Click to view AddOns

Forum posts: 17
File comments: 105
Uploads: 15
Update: MediaFire, Google Drive

What's new?
  • The import system now lasts up to five seconds, it should get more (all?) books. I put a warning next to the button so no one will get caught off guard by that.
  • There are buttons to mark all books read/unread in the addon menu, they're hidden out of the way there as those aren't buttons you want to hit by accident. I put warnings next to the buttons to make it clear that their function is irreversible.
  • The read/unread keybind (and accompanying button) now works when viewing books from the lore library.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: