babluboy / bookworm

A simple ebook reader for Elementary OS
GNU General Public License v3.0
1.34k stars 102 forks source link

Bookworm ignores files it's told to open with #177

Closed kousu closed 6 years ago

kousu commented 6 years ago

Telling my file manager to Open With an .epub with Bookworm just opens the book I was previously reading.

Running Bookworm like

$ com.github.babluboy.bookworm --debug Downloads/Books/Louis-Sébastien\ Mercier\ -\ \[1774\]\ L’An_deux_mille_quatre_cent_quarante.epub 2>&1 | less

Opens the book I was previously reading.

The .desktop file that came with my distro seems to imply (%F) that Bookworm should handle this case

$ cat /usr/share/applications/com.github.babluboy.bookworm.desktop
[Desktop Entry]
Name=Bookworm
GenericName=eBook Reader
Comment=A simple ebook reader for Elementary OS
Categories=Office;Viewer;
MimeType=application/epub+zip;application/pdf;application/x-pdf;application/cbr;application/x-cbz;
Exec=com.github.babluboy.bookworm %F
Icon=com.github.babluboy.bookworm
Terminal=false
Type=Application
X-GNOME-Gettext-Domain=bookworm
X-GNOME-Keywords=bookworm;ebook;reader;epub;mobi;comic;cbr;cbz

but it doesn't.

The library view is nice, but I like using my file manager as a library manager. I have way too many books, subtopics, and series to sort through them in a single list. My expectation is that Bookworm is like Evince, but with prettier ePub/mobi support: I click a file, I see the file.

Please support specifying a book to read on the command line. While you're at it, please allow multiple books to be open simultaneously.

My package manager reports that I have bookworm 0.9.9; Bookworm's About page reports 0.9.5.

babluboy commented 6 years ago

@kousu I beat you to this bug ! - actually discovered it just before I released the 1.0.0 yesterday. This release has been pushed to Elementary OS App Center, Flatpak , Snap and daily PPA. I am going to update the stable PPA tonight so v1.0.0 should be with you tomorrow.

I had already designed this functionality earlier but it got lost when i changed the binary name from bookworm to com.github.babluboy.bookworm (RDNN as required by eOS): 1- When a book you already have in Bookworms library is double clicked from Files, it will directly open on the page you last left it (you wont see the library view - unless it is forced in the preferences) 2- When the book you clicked in Files is not in the Bookworm library, it should be added to the library and you should see the first page of the book 3- When multiple files are selected and opened with Bookworm, they should all be added to the Bookworm library and you should see the library view Hopefully the above is the use case you were expecting.

The mismatch you are seeing between 0.9.5 and 0.9.9 is correct - I forgot to update the About page for 0.9.9. This should be all good in 1.0.0.

Appreciate the fact that you use files and folders to manage your collection (I do as well :-) ), but in Bookworm if you can tag and label your books properly, then you can achieve the same by filtering on the library view using the search bar - i.e. you can already filter by author, title, ebook type, etc, but if you tag all thrillers with the tag "thriller" then you can filter by that as well.

Will be great if you can update this issue to confirm this fix when you have updated to 1.0.0 and also give some screen shots of how bookworm looks on your distro (if its not eOS)

kousu commented 6 years ago

omg what an excellent reply. Yes, that behaviour sounds peachy. Thanks!

I'm on Arch so as soon as it rolls out to me I'll be sure to send some screenshots :)

On February 13, 2018 3:34:25 PM EST, Siddhartha Das notifications@github.com wrote:

@kousu I beat you to this bug ! - actually discovered it just before I released the 1.0.0 yesterday. This release has been pushed to Elementary OS App Center, Flatpak , Snap and daily PPA. I am going to update the stable PPA tonight so v1.0.0 should be with you tomorrow.

I had already designed this functionality earlier but it got lost when i changed the binary name from bookworm to com.github.babluboy.bookworm (RDNN as required by eOS): 1- When a book you already have in Bookworms library is double clicked from Files, it will directly open on the page you last left it (you wont see the library view - unless it is forced in the preferences) 2- When the book you clicked in Files is not in the Bookworm library, it should be added to the library and you should see the first page of the book 3- When multiple files are selected and opened with Bookworm, they should all be added to the Bookworm library and you should see the library view Hopefully the above is the use case you were expecting.

The mismatch you are seeing between 0.9.5 and 0.9.9 is correct - I forgot to update the About page for 0.9.9. This should be all good in 1.0.0.

Will be great if you can update this issue to confirm this fix when you have updated to 1.0.0 and also give some screen shots of how bookworm looks on your distro (if its not eOS)

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/babluboy/bookworm/issues/177#issuecomment-365395319

-- kousu

babluboy commented 6 years ago

@kousu Looks like bookworm is updated to 1.0.0 in aur: https://aur.archlinux.org/packages/bookworm-git/ Will be great if you can update and see if the issue reported here is resolved.

babluboy commented 6 years ago

Please reopen if the issue is not resolved in v1.0.0

kousu commented 6 years ago

Hi there, I've installed bookworm-git:

[kousu@papyrus ~]$ pacman -Qi bookworm-git
Nom                      : bookworm-git
Version                  : 1.0.0.r15.g2d4cfd5-1
Description              : A simple user centric eBook reader which displays multiple eBooks formats uniformly
Architecture             : x86_64
URL                      : https://babluboy.github.io/bookworm
Licences                 : GPL3
Groupes                  : --
Fournit                  : bookworm
Dépend de                : libgranite.so=4-64  poppler-glib  python2-html2text  unrar  unzip  webkit2gtk
Dépendances opt.         : --
Requis par               : --
Optionnel pour           : --
Est en conflit avec      : bookworm
Remplace                 : --
Taille installée         : 6,08 MiB
Paqueteur                : Unknown Packager
Compilé le               : mar 06 mar 2018 18:41:09 EST
Installé le              : mar 06 mar 2018 18:46:33 EST
Motif d’installation     : Explicitement installé
Script d’installation    : Non
Validé par               : --

I see this:

  1. com.github.babluboy.bookworm bookworm A.epub &
  2. com.github.babluboy.bookworm bookworm B.epub & # -> raises A.epub; does not show B.epub
  3. close the (one) active window
  4. com.github.babluboy.bookworm B.epub # -> opens A.epub
  5. close
  6. com.github.babluboy.bookworm B.epub # - > opens A.epub again

Experimenting some more, it doesn't open A.epub, it opens whatever state bookworm was in at close.

babluboy commented 6 years ago

@kousu I am able to see the same behavior. I will look into the code to see how the command line option in not being treated correctly.

However, I feel not many people will try opening books on command line. The easier and common way would be to double click or right click a ePub/MOBI/PDF in file manager and open with bookworm. I have checked that if you open an eBook with Bookworm from the file menu then the correct book is opened. Can you confirm the same please?

kousu commented 6 years ago

I couldn't see how that would make a difference. If I open a book from Firefox's download menu or by clicking on it in Nautilus or pcmanfm it runs com.github.babluboy.bookworm %F from the .desktop file. Here's what I see running when I open my "A" from pcmanfm:

[kousu@papyrus ~]$ ps auxxw | grep book
kousu    12641  4.8  3.8 2204712 71672 ?       Sl   11:44   0:01 com.github.babluboy.bookworm /home/kousu/Downloads/Documents/Fiction/Simmons, Dan - Hyperion Cantos 1-4.epub

and my "B":

[kousu@papyrus ~]$ ps auxxw | grep book
kousu    16713 16.6  3.6 2203976 68092 ?       Sl   11:45   0:01 com.github.babluboy.bookworm /home/kousu/Robin Hanson-The Age of Em_ Work, Love and Life when Robots Rule the Earth-Oxford University Press (2016).epub

How can bookworm be different from the command line?

And yet, when I try it from the GUI, it works for me as you describe. Curiouser and curioser!

In fact, now the bug seems to have disappeared: so long as I only open one file at a time, it always opens the correct file. And it does this whether I do this from the command line or the GUI.


I did manage to reproduce it, but now I can't re-reproduce it.

I think what I did was:

  1. Open A.epub from pcmanfm
  2. Open B.epub from the command line -> this will raise the already-open A.epub
  3. Open B.epub from a GUI file manager -> this will open B.epub (?!?!) in the already-open process

once I got bookworm into whatever state it is underneath here, the command line would always open whatever book was currently open, and the GUI would always behave properly. After I closed the bookworm process, the glitch has vanished, and opening from either the GUI or the command line --- even if I try to open multiple processes side-by-side.


Thanks for your good work on this. I can see that this is going to be lasting, quality software. Do you like writing in Vala? All these new Vala apps, like Dino, all seem really slick and well done.

kousu commented 6 years ago

Note to self: could this be related to #179 ? The background processes are keeping state around?

babluboy commented 6 years ago

@kousu thanks for the detailed testing. Do let me know if you can reproduce the bug. Ideally there should be no difference in the was ccommand line parameters are handled for inputs as compared to %F

Yes, I develop bookworm in vala. That’s the preferred language of choice on the Elementary OS platform for which Bookworm is developed, although I try to maintain distro agnotism as far as possible.

babluboy commented 6 years ago

One thing I remembered which might be relevant here is that I have coded bookworm as a single instance window...i.e. if an instance of bookworm is running then opening another instance will just reuse the existing instance and the state of the same...maybe that is causing this behaviour...

Hopefully if this is bug then it should not impact too many users. People like to open and read a book and then close it down for a long period without reopening it quickly with another book directly ...the library within Bookworm should be used to flip between books instead of the command line and file system...what do you think?