What are the features and benefits?



This application requires its own server?

This application hosted on Google App Engine server, do not need your own server.

How to deploy my own delivery server?

Following formal steps:

  1. In Github page to download the latest version KindleEar in the lower right corner of the page there is a button "Download ZIP", click to download a ZIP file that contains all the source code, and then extract it to your favorite directory, such as C:\KindleEar (below in this example).
  2. You need a GAE account, please visit Google AppEngine page. Use your gmail account to login, click on "Create Application", in the account activation SMS page, select Others, enter your cellphone number with country code (+nn), click Send, you can receive activation information on the phone in a while, after activate click Create Application again, in the Application Identifier field, enter a name of your choice applications (eg: KindleEar123). The remaining options can keep the default, click on the Create Application to create a GAE application.
  3. Install Python 2.7.x, on this page, select your platform corresponding to the 2.7.x version to download, and then simply double-click the installation. Note Do not install a Python 3.x version, GAE does not support now.
  4. Install GAE SDK, which is used to upload GAE program. in section on this page "Google App Engine SDK for Python", choose your platform, click to download the corresponding version, then install, all the way next without words.
  5. Open Resouce Explorer of your platform, enter the previously downloaded KindleEar directory (eg C:\KindleEar), use a text editor to open app.yaml file, modify the word 'kindleear' in the first line to your GAE application name (eg kindleear123), save and exit.
  6. Modify variable 'SRC_EMAIL' in config.py of same directory of app.yaml to your gmail account in the same way. you can modify other variables if you want and understand it, or default value recommented.
  7. Start uploade KindleEar now. you can use Google App Engine Launcher gui or command line. because Launcher is not stable, here is what you use in windows command line.
  8. Followed by clicking: Start - Run - type CMD, and open a command line window
  9. Change current directory into App Engine SDK installation directory. example: cd "C:\Program Files\Google\google_appengine"
  10. Enter 'upload' command: c:\python27\python.exe appcfg.py update C:\KindleEar
  11. Enter the gmail account and password (password does not display in screen).
  12. After uploaded successfully use your browser to open domain: http://kindleear123.appspot.com (example only, kindleear123 should be changed to the name of your gae application), if they can open properly, then goto last step.
  13. Add your gmail account to your kindle email whitelist. you should know how to do it before.
  14. Then what? Enjoy your own delivery service now!

Following steps much easy.

  1. Download KindleEar and get a GAE account, then create a application.
  2. Modify the files app.yaml and config.py.
  3. Download uploader.
  4. Uncompress 'uploader' to a directory, copy a folder of KindleEar here and rename it to kindleear, then double-click 'uploader.bat' to start a procedure for upload.

Why am I not receive rss?

For many reasons, the following are a few possibilities:

  1. Didnot enable "Enable deliver custom rss" switch, this switch local in bottom of setting page.
  2. Didnot add kindle email whitelist to your gmail address:
  3. The number of custom rss too many to proccess in limit of 10 minutes.
  4. The number of rss too many, cause excessive memory of 128MB(default).
  5. The content of rss link isn't a valid XML format.

What is fulltext rss?

Fulltext rss is which contains all content of articles in rss, on the other hand, summary rss contains only brief description of articles. you can confirm it by opening the link of rss.

Can fulltext rss be processed as summary rss? and vice versa?

Fulltext rss can be processed as summary rss, in this case, program ignore the content in rss xml file and fetch fulltext in original link, this would spend much time, resulting in the number of supported rss decreased. If summary rss processed as fulltext rss, articles pushed to your kindle would have brief description only.

How to deal with subscription weekly?

Some rss update weekly, for this type of rss, you can write a py file to directory books of application with variable 'deliver_days' set to a Day like 'Friday'.

How Url filter works.

Url filter is no for beginner,for whom know Regular Expressions and python. urls in list would not be downloaded for saving of time.

How to do if the gfw of China block some rss?

Change the link to use https protocol.

How to put cover and masthead images in other directory if I add a builtin books.

Put a full path in variable mastheadfile and coverfile, for example:

How to deal with when occur SSL error when upload code to gae server?

Some fiends in China would encounter urllib2.URLError: <urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol>, in this case, change the hosts file of OS, add a line " appengine.google.com"

Some articles garbled?

For custom rss and built-books without encoding specified, program detects encoding automatically by using chardet module of python, this module is not 100% accurate, and if encoding detected is wrong, the article may be garbled. Because this situation is very rare, KindleEar only supply a not very elegant solution like geeker: manually change chardet-detect encoding saved in database. steps follows:

  1. login appid.appspot.com by using account 'admin'(assuming your application name is appid).
  2. input url 'https://appid.appspot.com/dbviewer' in your brower address bar. check encoding of websites in section UrlEncoding. if encoding is wrong for some site, record its ID of database item.
  3. enter a long string in addressbar of brower, 'https://appid.appspot.com/dbviewer?action=modurlenc&id=dbid&feedenc=fenc&pageenc=penc'
  4. A method alternate is that change them in 'Datastore viewer' in GAE backend.
  5. You can obtain the correct encoding by viewing source code of a webpage.

How can I do if forgot password?

If you have forgotten the password for non-administrator account, you can notify the administrator to change your password. If an administrator password forgot, you can login appengine.google.com, on the left select "Datastore Admin", delete all KeUser data, all account information will be deleted, and then re-use admin/admin login to your application . Did not find "Datastore Admin"? You can active it in the "Application Settings".
If you know python, you would find other solution.

How to use mail service xxx@appid.appspotmail.com?

KindleEar supports mail service which address likes xxx@appid.appspotmail.com, xxx is any ascii string, appid is id of your application.

Why I did not receive deliver after have chosen 'Merge books into one'? 

With 'Merge books in one' checked, KindleEar have to process all of rss in all books subscribed in limit of 10 minutes defined by GAE, often that cause DeadlineExceededError when you have subscribed much more books. If it happened, please decrease books subscribed or split those into some accounts.