You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First than you for this tool to organize books. I have a huge collection of books that I want to organize so I decide to try your tool via docker because I am on windows
Due to the fact that I am on windows with wsl , my files with are supposed to be here where my linux distribution is : \wsl$\Ubuntu-20.04\home\a\unorganized-books
1.) Run the automated script against source folder - unorganized-books
├1a.) Send strong matches to organized-books
└1b.) Send weak matches to organized-uncertain
2.) Run the interactive script against organized-books to confirm matches
3.) Run the interactive script against organized-uncertain to confirm matches
You want to have each folder you are working with mapped in the docker, or the parent folder mapped or docker won't be able to reach them externally. So if it were me, I'd create a project folder, then have your working directories there. Kind of like this:
Using a layout like this, you only have to map a single folder. My folder purposes are
organized-books - Folder where strong matches go to be audited organized-uncertain - Folder where weak matches go to be autied unorganized-books - Source folder invalid-matches - Books I couldn't match with the script and will need to do manually completed - Books that are fully matched and ready to be moved to my ebook library
Your docker command would look like
docker run -it -v //wsl$/Ubuntu-20.04/home/a/ebooktools:/organize ebooktools/scripts:latest
This would map the folder "ebooktools" on your filesystem to the folder "/organize" on the docker
Load up the books you want to match into the /ebooktools/unorganized-books folder on your server.
./organize-ebooks.sh - This calls the script. The ./ at the front calls it from the directory you are in. Without the ./ - what it is looking for basically is an installed application. Since this is a script, we have to use ./ -km - Keep metadata will generate a file for every match that includes the original information from the book. After we do the organize script, we can run through and audit matches the script wasn't 100% certain on. I really recommend this -o=/organize/organized-books/ - This is the output folder for good matches -ofu=/organize/organized-uncertain/ - This is the output folder for matches that the script was not sure about /organize/unorganized-books/ - This is your source folder, where you'll be scanning books to fix
so together this command would look like ./organize-ebooks.sh -km --output-folder=/organize/organized-books/ -ofu=/organize/organized-uncertain/ /organize/unorganized-books/
If you want to go back through and audit the matches you can use the interactive command. For this I made another folder called invalid-matches in the organize folder. This is if there is a bad match that I can't get the script to fix or match, I send those files to this folder for manual adjustment later. My interactive command has two phases. I started with the output folder, just as a sanity check
./interactive-organizer - calls interactive organizer script -o=/organize/completed/ - Default output folder, where books that we confirmed are sent -qm - Optional, but if the match was really good, this will not even ask you and send the file straight to completed -o=/organize/invalid-matches/ - If we can't get a good match, to the bad place we go /organize/organized-books/
Together its ./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/organized-books/
This will check each book, show you the old file name, show you what it was renamed to, and ask you if you are happy with it. Push space to confirm, 1 to send to invalid matches, l to open the book to read it (if you want to confirm contents), i to pull up a text field to enter a search term to use to fix the match. You don't have to remember these, they're shown for each book. This one you'll pretty much just be hitting the spacebar a ton to confirm
Then I run ./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/organized-uncertain/
This one will take longer, since these books are more likely to be wrong. I like to have goodreads and amazon open in a different window so I can quickly search the books and manually grab the ISBN off of a printed edition if I need to. Searching with i using the ISBN is the best way to get matches. I don't know if this folder will have as many books in it if you didn't run -owi on the first command, so it might be empty? I'd need to check
Lastly, use ./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/unorganized-books/
Anything that was left in the source, like books that couldn't be matched, will be what we're after here.
Now you should have all your books in either
//wsl$/Ubuntu-20.04/home/a/ebooktools/competed or //wsl$/Ubuntu-20.04/home/a/ebooktools/invalid-matches
C:\Users\djilo>docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
Sorry I launched this twice, with the \ on the front and the result is the same:
Test 1
C:\Users\djilo>docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
See 'docker run --help'.
Test 2
C:\Users\djilo>docker run -it -v "\wsl.localhost\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
See 'docker run --help'.
Activity
Rukongai commentedon Dec 15, 2022
you need to specify an input folder
organize-ebooks.sh --output-folder=organized-books/ /unorganized-booksfor examplebourbe commentedon Dec 16, 2022
Hello,
Thank you for your reply, I tried , i got no error but I also have no result
See screeenshoots hereunder please :
1.Screenshoot of terminal
2.Input folder
3.Output folder
Rukongai commentedon Dec 16, 2022
Let's start at the top.
This is how I did my workflow
1.) Run the automated script against source folder - unorganized-books
├1a.) Send strong matches to organized-books
└1b.) Send weak matches to organized-uncertain
2.) Run the interactive script against organized-books to confirm matches
3.) Run the interactive script against organized-uncertain to confirm matches
You want to have each folder you are working with mapped in the docker, or the parent folder mapped or docker won't be able to reach them externally. So if it were me, I'd create a project folder, then have your working directories there. Kind of like this:
Using a layout like this, you only have to map a single folder. My folder purposes are
organized-books- Folder where strong matches go to be auditedorganized-uncertain- Folder where weak matches go to be autiedunorganized-books- Source folderinvalid-matches- Books I couldn't match with the script and will need to do manuallycompleted- Books that are fully matched and ready to be moved to my ebook libraryYour docker command would look like
docker run -it -v //wsl$/Ubuntu-20.04/home/a/ebooktools:/organize ebooktools/scripts:latestThis would map the folder "ebooktools" on your filesystem to the folder "/organize" on the docker
Load up the books you want to match into the /ebooktools/unorganized-books folder on your server.
./organize-ebooks.sh- This calls the script. The ./ at the front calls it from the directory you are in. Without the ./ - what it is looking for basically is an installed application. Since this is a script, we have to use ./-km- Keep metadata will generate a file for every match that includes the original information from the book. After we do the organize script, we can run through and audit matches the script wasn't 100% certain on. I really recommend this-o=/organize/organized-books/- This is the output folder for good matches-ofu=/organize/organized-uncertain/- This is the output folder for matches that the script was not sure about/organize/unorganized-books/- This is your source folder, where you'll be scanning books to fixso together this command would look like
./organize-ebooks.sh -km --output-folder=/organize/organized-books/ -ofu=/organize/organized-uncertain/ /organize/unorganized-books/If you want to go back through and audit the matches you can use the interactive command. For this I made another folder called invalid-matches in the organize folder. This is if there is a bad match that I can't get the script to fix or match, I send those files to this folder for manual adjustment later. My interactive command has two phases. I started with the output folder, just as a sanity check
./interactive-organizer- calls interactive organizer script-o=/organize/completed/- Default output folder, where books that we confirmed are sent-qm- Optional, but if the match was really good, this will not even ask you and send the file straight to completed-o=/organize/invalid-matches/- If we can't get a good match, to the bad place we go/organize/organized-books/Together its
./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/organized-books/This will check each book, show you the old file name, show you what it was renamed to, and ask you if you are happy with it. Push space to confirm, 1 to send to invalid matches, l to open the book to read it (if you want to confirm contents), i to pull up a text field to enter a search term to use to fix the match. You don't have to remember these, they're shown for each book. This one you'll pretty much just be hitting the spacebar a ton to confirm
Then I run
./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/organized-uncertain/This one will take longer, since these books are more likely to be wrong. I like to have goodreads and amazon open in a different window so I can quickly search the books and manually grab the ISBN off of a printed edition if I need to. Searching with i using the ISBN is the best way to get matches. I don't know if this folder will have as many books in it if you didn't run -owi on the first command, so it might be empty? I'd need to check
Lastly, use
./interactive-organizer -o=/organize/completed/ -o=/organize/invalid-matches/ /organize/unorganized-books/Anything that was left in the source, like books that couldn't be matched, will be what we're after here.
Now you should have all your books in either
//wsl$/Ubuntu-20.04/home/a/ebooktools/competed or //wsl$/Ubuntu-20.04/home/a/ebooktools/invalid-matches
Good luck!
bourbe commentedon Dec 17, 2022
Hello
Than you for your detailed answer, I tried:
New organisation of my folders
and the result in the terminal is he dont find the following directory: /organize/unorganized-books/
Terminal/Console
Than you again for your help
Rukongai commentedon Dec 17, 2022
will you run
ls -al ../and post the output?also
ls -al ../organizeAlso - I wonder if it has something to do with the mount path. Ideally you could run the second command and see your folders you made.
bourbe commentedon Dec 17, 2022
The results
It seem that in docker and in the folder /organize/ there is no subfolders
├── organized-books
├── organized-uncertain
├── unorganized-books
├── invalid-matches
└── completed
Rukongai commentedon Dec 17, 2022
yeah there is something junky going on with the mapping of the path
Maybe try docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
WSL is spooky
bourbe commentedon Dec 17, 2022
C:\Users\djilo>docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: \wsl$\Ubuntu-20.04\home\a\ebooktools%!(EXTRA string=is not a valid Windows path).
See 'docker run --help'.
Rukongai commentedon Dec 17, 2022
oops!
docker run -it -v "\\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latestI missed a backslash. Sorry, it's late.
bourbe commentedon Dec 17, 2022
I try this one
docker run -it -v "\\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latestIf this don't work no problem than you for your help
Let's see this tomorow if possible
bourbe commentedon Dec 17, 2022
C:\Users\djilo>docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
Rukongai commentedon Dec 17, 2022
Looks like that command is still missing a \ on the front
bourbe commentedon Dec 17, 2022
Sorry I launched this twice, with the \ on the front and the result is the same:
Test 1
C:\Users\djilo>docker run -it -v "\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
See 'docker run --help'.
Test 2
C:\Users\djilo>docker run -it -v "\wsl.localhost\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latest
docker: Error response from daemon: can't access specified distro mount service: stat /run/guest-services/distro-services/ubuntu-20.04.sock: no such file or directory.
See 'docker run --help'.
Rukongai commentedon Dec 17, 2022
no, you still need the double \
use this command
docker run -it -v "\\wsl$\Ubuntu-20.04\home\a\ebooktools:/organize" ebooktools/scripts:latestbourbe commentedon Dec 17, 2022
The output
no,w you see that I used the double \