Comments (9)
Hm, I just discovered that changing the "program-created files" folder is just a bad idea (it pretty much just nukes all of the settings). So maybe my last paragraph isn't really relevant.
from libation.
The solution here is to massively rework the wording around setup and config -- beginning with the fact the term "advanced options" is misleading here. The functionality is perfect but it's intent is clear as mud. The behind the scenes stuff going on here is complex for good reasons and I like the way it works. However I've tried and failed to make it easy for the user to configure. You're right: this needs attention.
from libation.
I want to keep the following structure. As you point out however, I need to drastically simplify/clarify user options.
Important folders:
-
the directory containing Libation.exe. I don't have a name for this. For now, let's call it "Home". "Home" should be able to be anywhere. Maybe you want it in Program Files, or on a thumb drive, or whatever. Also, you should be able to delete, or replace this folder (esp as an upgrade) without losing your settings or your decrypted books.
-
"Libation Files" holds your settings files, logs, config, database, search engine files, log in tokens, cached cover art. It's all the stuff that makes it your program. You should be able to put this wherever you want also. Windows usually opaquely puts things like this in 'Users' but I don't like that (although I guess that would be a reasonable default). "Libation Files" holds all settings except 1 -- Libation needs to know where to find "Libation Files" itself. This is my so-called 'advanced setting'.
-
"Books location" is [A] where books are downloaded into and [B] where Libation looks in order to determine if a book was liberated. (This last part will eventually go away.) This is expected to get huge and not necessarily reside in the same location as program files ("Home") or personal config ("Libation Files").
"No questions setup" : fresh install. Start with a blank database. Accept all defaults for basic and advanced settings. Lacking information, all folders are just somewhere inside "Home". Setup complete.
"Advanced setup" means either:
- Libation HAS been set up before. By pointing to your previous valid "Libation Files", all other setup is complete and you're 100% back up and running again. Setup complete.
- Libation has NOT been set up. You want to choose the folder which will be used for "Libation Files". Then you choose basic settings.
"Basic setup": you accept the default for the advanced setting thus "Libation Files" will reside inside "Home". Choose basic settings.
Choosing basic settings: select your "Books location" folder. (Also some other default-ed settings which new users will rarely care about changing.) After this is saved, Libation will set up a new "Libation Files" folder per location in the 'advanced setting'. Setup complete.
from libation.
from libation.
What about this?
I think the 1st prelim is that the defaults need to be in \Users\{user}\Libation; not inside a nested directory.
The 2nd prelim is that there are currently 2 settings dialogs (basic and advanced) and a 3rd is also needed: 'omni display' which shows both basic and advanced. I'd previously avoided this because using this anywhere other than setup opens up a world of edge-case pain so it was less effort to create only displays which could be used both for setup and post-setup config
Workflow:
If config is properly initialized: start program
Else: start setup. In the background, init "Books location" = \Users\{user}\Libation and "LibationFiles" = \Users\{user}\Libation\Settings
If settings are found in default location: "it looks like you have previously installed Libation. Use these settings?" Show paths for books and libation files [yes] [no]
if yes: accept defaults. start program
If settings not found in default location or if 'no' was clicked: show dialog with the following buttons (feels like a lot of choices, but new users will actually get to this step without seeing anything before now):
> [New user]
> > 'omni display' with defaults populated. [Begin]
> [Returning user] "I have previously installed Libation. This is an upgrade or re-install"
> > show the (previously named) advanced dialog to point to "LibationFiles"
> > > if contains valid settings: start program
> > > if invalid: show basic settings dialog
from libation.
from libation.
nothing should be in "Books" except books
Good call. I like your new defaults.
if the Settings folder is in the default location, you should be able to read from it where the Books folder is
Yup. That's accounted for in all workflows above. I just didn't call it out explicitly.
Moving the books folder after installation is easy. Just open basic settings and point to a new folder. I could also add a dialog reminding the user to move existing books themselves or include a button to move all files/folders recursively to the new location.
Moving the location of the settings folder is a tricky. This is the stuff that Libation is actively using so you can't just move it. You can copy it, change the pointer to LibationFiles and force a restart, but that leaves the old files in place which feels icky.
The real fix would be pretty complex for such a rarely needed feature:
user changes LibationFiles location
LibationFiles_old = LibationFiles
LibationFiles = new dir from user
force restart
new startup step:
if LibationFiles_old setting doesn't exists or is null => start program
if LibationFiles_old setting is not a valid dir
* restore setting LibationFiles = LibationFiles_old
* remove/nullify LibationFiles_old setting
* notify user
* start program
recursively copy all files/folders from LibationFiles_old => LibationFiles
* if success, delete old files/folder, including LibationFiles_old dir itself
* if errors
* * delete new files/folders
* * restore setting LibationFiles = LibationFiles_old
* * notify user
remove/nullify LibationFiles_old setting
start program
from libation.
from libation.
5.2.0 installation workflow now matches above
from libation.
Related Issues (20)
- Certain AAX files processed by Libation and m4b-mp3-chapters-from-cuesheets show incorrect run times in iTunes for Windows HOT 1
- Error Importing Library HOT 15
- Error Downloading/Processing Books HOT 4
- Can not log in to Audible account (edit: while on VPN) HOT 5
- Some titles unavailable HOT 1
- Windows 11 - Can't get passed Windows Defender HOT 6
- Custom Books Location path ending in Books not possible HOT 6
- Error importing library HOT 3
- Import .aax files
- CUDA HOT 1
- Not sure if a bug or request, but use the User Interface Scale in Display setting for the display HOT 4
- Moved Libation to external storage, no longer opens HOT 2
- Redownload book using only docker client. HOT 4
- error importing library HOT 3
- Decrypt Fail HOT 1
- Error importing library HOT 7
- [MacOS] Libation crashes when the TMP and Download directories are stored on a SMB share
- Libation downloads the book, green light shows, and then before it finishes that book to move on to the next, Libation crashes HOT 1
- Libation has notified to me that "License Denied" with a couple of books HOT 1
- Doesn't load my Audible library. It gives an error report. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libation.