FAQ

What is full-text RSS?

Full-text RSS is the term I use for this type of RSS, and I don't know what the correct name is. In Calibre, it's called Embedded Content. This type of RSS already provides the full content of the article in its XML file. You only need to make one connection to get the full content of many articles, instead of having to connect to the network for each article like with regular RSS, saving a lot of time and other resource consumption. How to confirm whether the RSS you want to subscribe to is full-text RSS? It's simple. Use a browser to open the corresponding link of the RSS and see if all the article content is already there. If it is, then it's full-text RSS. If only article summaries are provided, then it's not.

Can full-text RSS be treated as summary RSS, and vice versa?

Of course, full-text RSS can be treated as summary RSS, which ignores the article content provided in the RSS link and directly fetches it from the original link, but it takes a little longer, resulting in a decrease in the number of supported RSS feeds. If it's summary RSS, it cannot be treated as full-text RSS, otherwise it will result in incomplete article content.

How to customize the delivery time for a Recipe?

In addition to setting a unified delivery day and time on the settings page, each Recipe can customize its own unique delivery day and time. Once set, the unified time setting will be ignored for this Recipe. The method is to click on the circular button next to a Recipe in the "Subscribed" section of "My Feeds," then use the "Customize delivery time" button that pops up to set it. You can set it to push only on certain days or multiple times a day. However, custom push time is only applicable to built-in and uploaded Recipes. Custom RSS feeds use only the unified time set. If you want to set the push time for a custom RSS feed, you can write its title and URL into a Recipe, and then upload it to start setting.

How to customize the cover?

KindleEar has 7 built-in covers, which are randomly selected by default or can be configured to be selected by day of the week. You can upload your own favorite covers to replace these built-in covers. The entry is in the "Cover Image" under "Advanced" section.
If you want to set a cover for a specific Recipe, you need to add a cover_url attribute in its Recipe source code. It can be a local file (if it's a relative directory, it's relative to the KindleEar application directory) or a web image, for example:

cover_url = '/temp/mycover.jpg'
cover_url = 'application/images/mycover.jpg'
cover_url = 'https://www.google.com/mycover.jpg'
cover_url = False #no cover image

Additionally, if you want to customize the masthead, add a masthead_url attribute, which has the same format as cover_url.

What if I forget my password?

KindleEar does not store passwords in plain text and cannot retrieve them. If login fails due to password verification, a "Forgot Password?" link is provided. Click on this link to reset your password using the email address registered when creating your account.

How to use the xxx@appid.appspotmail.com email address?

If your application is deployed on the Google Cloud Platform (GAE), KindleEar also provides an additional email service xxx@appid.appspotmail.com. After deploying KindleEar, you automatically have countless EMAIL email addresses in the format: xxx@appid.appspotmail.com, where xxx is any legal string and appid is your application name.

  1. To use this feature, you need to add whitelist items firstly. If it's ‘*', it allows all emails. Otherwise, the format is ‘xx@xx.xx' or ‘@xx.xx' (without single quotes).
  2. This service will send the contents of received emails as email attachments to your registered kindle email address. If there are only links in the email (multiple links are one per line), KindleEar will fetch the web page content and create an e-book, then send it.
  3. If the subject of the email is followed by the identifier !links, KindleEar will only extract the links from the email regardless of its content, then fetch the web pages and send them to your Kindle. This feature is best for directly sending serialized web pages to Kindle for viewing.
  4. If the subject of the email is followed by the identifier !article, all links will be ignored, and the content will be directly converted into an e-book and sent.
  5. By default, it's sent to the email registered by the administrator. If you want to send it to another user's email, use the format: username__xxx@appid.appspotmail.com. (Note the double underscore)
  6. If you send the download link of an e-book to book@appid.appspotmail.com or username__book@appid.appspotmail.com, KindleEar will directly download the corresponding e-book archive and forward it to the registered email address. (Note: GAE has restrictions on file extensions that can be emailed and cannot send file extensions that may have security risks such as exe, zip files can be sent, but zip files cannot contain files with potential security risks.) GAE's list of email-able file extensions: Mail Python API Overview (book/file/download email addresses reserved for downloading e-books)
  7. Sending to trigger@appid.appspotmail.com or username__trigger@appid.appspotmail.com triggers a manual delivery. If the subject is empty or all, it's exactly the same as the "Deliver Now" button on the webpage. If you need to push specific books, write the book name in the subject, separated by commas.
  8. Emails sent to debug@appid.appspotmail.com directly extract the links from the email and send HTML files directly to the administrator's email instead of the Kindle email.

What if some websites require login to read articles?

Some websites require registering an account and logging in to read and download articles. For such websites, you can add an attribute in the Recipe source code:

needs_subscription = True

Then, after subscribing, you can select "Website Login Information" from the corresponding Recipe's popup menu to enter your login account and password.

  1. Websites that require executing JavaScript or entering a captcha are not supported.
  2. For some sufficiently special and complex websites, you may need to override the get_browser() function in the book subclass.
  3. The password you enter is encrypted and saved, with a unique 8-character random string key for each account, which has a certain level of security. I try my best to take care of your password security. You can delete the saved password information at any time, and the password is also deleted immediately after unsubscribing from the book. However, because the key is also saved in database, the security cannot be guaranteed to be very high. Please understand and be willing to bear the risks involved.

What's the difference between "Subscribe" and "Subscribe (Deliver Separately)"?

"Subscribe" is for combined delivery, which combines all Recipes and custom RSS feeds subscribed to with this option into one file for delivery. "Subscribe (Deliver Separately)" creates a separate file for this Recipe for delivery, which is more suitable for Recipes that generate large file or have special delivery times.

The book failed to be pushed due to it is too large?

Each send mail service provider has limitations on the size of individual emails. For example, GAE restricts it to 31.5MB, while Mailjet currently allows 15MB only. If the attachment exceeds this limit, it will result in a failed push.

  1. Set the "Device Type" to "Kindle", all image files will be resized to below 525x640 pixels.
  2. Subscribe some recipes by using the "Subscribe (Deliver Separately)" button to split a large file into several smaller ones.
  3. Create additional accounts, and push different recipes with different accounts to reduce the size of individual files.
  4. Set the "Oldest article" option smaller to avoid including unnecessary articles.

Where is the book translation function and how do I use it?

KindleEar has ported the "Ebook Translator" plugin from calibre, which can translate foreign language news while fetching, making it convenient to learn foreign languages and also have a wider range of news sources.
The feature translation is disabled by default and needs to be enabled for each Recipe individually, with each Recipe having different settings.
After subscribing to a recipe, click the floating button on the right and select the "Translator" button to enter settings page.

  • Translation position: Left-right two-columns layouts are only suitable for tablets or computers, and sometimes may cause layout issues. E-readers generally choose top-bottom layouts.
  • Original/Translated text style: You can input any standard CSS text style, such as: color:#123456;font-style:italic.

How to Use Bookmarklet?

At the bottom of the "Feeds" page, you'll find several bookmarklet links, which offer some convenient functions.
To use them, simply drag and drop the links to your browser's bookmark bar.
Each user of KindleEar has their own unique Bookmarklet links, and the ones you see currently apply only to your logged-in account.

  • Send to Kindle:
    1. While browsing other websites on your computer, if you prefer to read some articles on your Kindle, simply click this Bookmarklet. KindleEar will then grab the current webpage and create an eBook to send to your Kindle email.
    2. Some web pages may have complex article structures, and due to a limit of readability algorithm, the formatting on Kindle might not be optimal or some content might be lost. In such cases, you can first select the desired article content (which may include image files) and then click this Bookmarklet.
    3. For books on gitbooks.io, KindleEar will grab the entire book's content and send it as an eBook.
  • Subscribe with KindleEar: This function is for conveniently subscribing to RSS links. When you open the corresponding RSS link on your computer and click this Bookmarklet, the current URL and title will be filled into the text field under "Custom RSS" in KindleEar. It saves you a couple of copy-paste actions - perfect for lazy people.

  • Kindleify Selection: Exclusive to the GAE platform, as only the GAE platform has inbound email feature.
    You should select some webpage's contents, then click this Bookmarklet. It will open a small Gmail window for sending an email, automatically filling the selected article content into the body of the email. Then, just send it to xxx@appid.appspotmail.com for pushing it to Kindle.

What do the sup text of the Recipe mean?

  • Emb: Content embedded, indicates that the full article content is embedded within the XML file for full-text RSS.
  • Upl: Uploaded recipe, denotes a recipe uploaded by the user. If this icon is absent, it signifies a built-in recipe.
  • Sep: Separated, indicates that this recipe will be pushed as a separate file.
  • Log: Login required, indicates that the source website of this recipe requires subscription and login to fetch its content. If this icon appears, login information needs to be configured, otherwise the fetch will fail.

How do I bulk delete too many accidentally imported custom RSS feeds?

  • You can write ‘#removeall#' in the "Title" field, then click "Add" to delete all custom RSS feeds at once.

How to save new recipe files to the builtin recipe library?

KindleEar provides a feature to upload recipe files through the web page.
However, if you wish to merge recipe files into the built-in library,
for example, when a new version of Calibre is released and there may be some updated recipes included, you can merge the recipes as follows:

  1. Copy the recipe files to the application/recipes directory. There is no need to delete builtin_recipes.zip/builtin_recipes.xml unless you want to create a brand new built-in library containing only the recipes you have selected.
  2. Run tools/archive_builtin_recipes.py.
  3. Delete the recipe files.

I have more questions, where can I ask?

If you have more questions, you can submit an issue at https://github.com/cdhigh/KindleEar/issues and wait for a reply. Before submitting a question, it's recommended to search for previously submitted issues first. Maybe someone has already submitted a similar issue? If no one has submitted a similar issue, when you submit a new one, it's recommended to attach the Logs information of GAE backend or the platform you deployed to for problem location, which can also get you a faster reply.