Git Product home page Git Product logo

send2ereader's Introduction

send2ereader

A self hostable service for sending ebooks to a Kobo or Kindle ereader through the built-in browser.

How To Run

On Your Host OS

  1. Have Node.js 16 or 20 installed
  2. Install this service's dependencies by running $ npm install
  3. Install Kepubify, and have the kepubify executable in your PATH.
  4. Install KindleGen, and have the kindlegen executable in your PATH.
  5. Start this service by running: $ npm start and access it on HTTP port 3001

Containerized

  1. Have Docker installed
  2. Run $ docker compose up
  3. Access the service on HTTP port 3001

send2ereader's People

Contributors

adaxiang-wk avatar daniel-j avatar greghilston avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

send2ereader's Issues

How to Use the Newly Added Send URL

Try using the new version of the interface, it seems unable to generate a download url directly. But if I have to fill it out myself, what should I write?

Thank you!

Just wanted to say thank you for this project! It works wonderfully. <3 If you put up a link to donate to say thanks, I would happily do so.

Cannot download a file with a capitalized extension

Hello,

First of all thank you for this amazing tool.

I tried uploading the following file: file.EPUB. The file was uploaded correctly and visible on the Kobo, but when I clicked on the download link, nothing happened.

I renamed the file to file.epub and it worked correctly.

Sometimes EPUB or PDF files I download from the internet have capitalized extensions so this might occur with other people too.

Failed to send epub file from mobile browser

Platform: MacOS / Android / Kobo Ereader
Browser: Edge

I tried to send the same .epub file from the edge browser on my macbook and on my android mobile to my kobo ereader. The file was successfully sent from my laptop, but failed on the mobile browser.

There is an error message: "Invalid file submitted" when I tried to send the epub file from the mobile browser.

QR code support

Thank you for your project—it's fantastic, and I appreciate all the effort you've put into it.

I have a suggestion for an additional feature: when opening the website from a Kobo device, it would be very useful to display a QR code containing the URL along with the unique key.

Thanks again for your hard work!

Blank

The book I uploaded was there but all the pages were blank

How to use? No readme document

Hey Daniel,
I was using send.djazz.se but it seems that it's not working anymore since a few days. Then, I want to install it on my server, but I don't know how to use the files provided. There is no index.php and no readme to understand the code.

Can you help?
Thanks!

exception throw "Error: spawn kepubify ENOENT" when attempting to upload epub file

I'm working on the following Dockerfile:

FROM node:16

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3001
CMD [ "node", "index" ]

and docker-compose.yaml:

version: "3"
  services:
    send2ereader:
      build:
        context: .
        dockerfile: ./Dockerfile
      container_name: send3ereader
      ports:
        - 3001:3001

when I uploaded a few test .epub files, I'm always getting the following errors in the docker compose logs:

> docker compose up
[+] Running 1/0
 ⠿ Container send3ereader  Created                                                                                                                      0.0s
Attaching to send3ereader
send3ereader  | server is listening on port 3001
send3ereader  |   <-- GET /status/null
send3ereader  |   --> GET /status/null 200 5ms 23b
send3ereader  |   <-- GET /
send3ereader  | ::ffff:172.18.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
send3ereader  |   --> GET / 304 2ms
send3ereader  |   <-- GET /style.css
send3ereader  |   --> GET /style.css 304 2ms
send3ereader  |   <-- POST /generate
send3ereader  | There are currently 0 key(s) in use.
send3ereader  | Generating unique key... ::ffff:172.18.0.1 Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/538.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/538.1 (Kobo Touch 0376/4.38.21908)
send3ereader  | Generated key T9HR, 1 attempt(s)
send3ereader  |   --> POST /generate 200 2ms 4b
send3ereader  |   <-- GET /status/T9HR
send3ereader  |   --> GET /status/T9HR 200 1ms 48b
send3ereader  |   <-- POST /upload
send3ereader  | Incoming file: {
send3ereader  |   fieldname: 'file',
send3ereader  |   originalname: REDACTED.epub',
send3ereader  |   encoding: '7bit',
send3ereader  |   mimetype: 'application/epub+zip'
send3ereader  | }
send3ereader  | Uploaded file: {
send3ereader  |   fieldname: 'file',
send3ereader  |   originalname: 'REDACTED.epub',
send3ereader  |   encoding: '7bit',
send3ereader  |   mimetype: 'application/epub+zip',
send3ereader  |   destination: 'uploads',
send3ereader  |   filename: 'file-1701317046504-305283146.epub',
send3ereader  |   path: 'uploads/file-1701317046504-305283146.epub',
send3ereader  |   size: 3933051
send3ereader  | }
send3ereader  | node:events:491
send3ereader  |       throw er; // Unhandled 'error' event
send3ereader  |       ^
send3ereader  |
send3ereader  | Error: spawn kepubify ENOENT
send3ereader  |     at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19)
send3ereader  |     at onErrorNT (node:internal/child_process:485:16)
send3ereader  |     at processTicksAndRejections (node:internal/process/task_queues:83:21)
send3ereader  | Emitted 'error' event on ChildProcess instance at:
send3ereader  |     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
send3ereader  |     at onErrorNT (node:internal/child_process:485:16)
send3ereader  |     at processTicksAndRejections (node:internal/process/task_queues:83:21) {
send3ereader  |   errno: -2,
send3ereader  |   code: 'ENOENT',
send3ereader  |   syscall: 'spawn kepubify',
send3ereader  |   path: 'kepubify',
send3ereader  |   spawnargs: [
send3ereader  |     '-v',
send3ereader  |     '-u',
send3ereader  |     '-o',
send3ereader  |     'file-1701317046504-305283146.kepub.epub',
send3ereader  |     'file-1701317046504-305283146.epub'
send3ereader  |   ]
send3ereader  | }
send3ereader exited with code 1

Any advice as to what may be causing this? Once I have this resolved, I can submit a PR with the Dockerfile and docker-compose.yaml file.

Not working with new Tolino Shine Color

Hello,
Unfortunately, the service does not seem to work with the new Tolino Shine Color. When opening the URL „https://send.djazz.se“ on the device, it does not recognize being opened on the e-reader and does not display the unique key but then“normal“ uploading page as on any other device.

Device: Tolino Shine Color (= Kobo)
Firmware: 5.0.175773 (latest)

image

PDF support

Could you please add support for PDFs? You wouldn't need to convert anything; just send it to the ereader.

Thanks for making this. I've been looking for an app like this ever since I got my Kobo. :-)

Filenames with ' are not processed correctly

Sample filename: “The Manual - A Philosopher's Guide to Life.epub”

When uploading this file and selecting the “Kepubify” option, a download link is offered on a Kobo e-reader. However, after downloading the file, the file is shown with a question mark (?) in place of the previous simple apostrophe character (') and it cannot be opened. The book doesn’t show up inside the library either.

For the record, I don’t know if having the “Kepubify” option enabled affects this, I’m just describing the settings I used.

Deploy on unraid server (docker) question

I would love to run this on my own server. Currently a unraid server with approx 45 containers. Is there an easy way to deploy this?
Can you make it available on dockerhub? or any other tips?

Can’t select mobi on iOS

Using iOS to send mobi to kobo aura

works great with epub. But when choosing to upload file does not let me select mobi as if it is an unsupported file type, which it shouldn’t be

State URL on page

I used Nickel Menu to add a modal shortcut to https://send.djazz.se/ to my Kobo device. Ironically, the site itself doesn't say the URL anywhere, so I forget where I'm supposed to go on the other device.

Simply a sentence on the Kobo end saying something like "Go to https://send.djazz.se/ to send ebooks to this device" would be a nice boost to usability.

Upload Error: Request Entity Too Large

Hi!

As of today, I keep getting "Request Entity Too Large" error anytime I try to upload an epub file. I tried files that worked a week ago and they, too, lead to this error, which tells me its not the file itself causing the problem, but something in the backend?

Please let me know if you need any additional info or help. Thank you

Screen Shot 2021-11-30 at 2 58 53 PM

Thank you!! & Feature Request

Hi, just wanted to stop by and say thank you sooooooooo much! If you ever get a chance or want a suggestion, a bulk option would be amazing. But seriously, thank you very much for this 🥇

Option to disable transliteration

First of all, thank you so much for providing such a great online tool to help Kobo users to transfer e-books in a convenient way.

One issue troubles me a lot by using the tool, is that when I transfer Chinese/Japanese books, their name would be translated to English form and it's really hard to read/find when I connect the device using USB.

I checked the code and found it's processed by the transliteration plugin, I assume it is to help to convert file names with proper encoding. Therefore I wonder if the web tool can provide an additional option to bypass this step so it would be super helpful to non-Latin language users.

Thank you.

Internal server error when trying to Kepubify a bad file

Maybe this is #6, but:

  1. Upload a "bad" file, such as [1].
  2. Check "Kepubify".
  3. Upload.

A page with "Internal server error" is shown. Unchecking "Kepubify" successfully uploads the file.

I uploaded the EPUB to https://pgaskin.net/kepubify/try (online version of Kepubify) and it fails there, which confirms that the file is bad somehow.

Anyhow, I suggest catching this error and presenting it nicely with suggestion to turn off Kepubify.

Thanks for an otherwise super smooth experience <3

[1] https://archive.org/download/dune-saga-collection/Dune%20Saga%20Collection/Frank%20Herbert/Dune%20%28286%29/Dune%20-%20Frank%20Herbert.epub

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.