A website application running in Google app engine, deliver rss news to your kindle. generate mobi using python, multilanguages supported.

Overview

Readme of english version refers to Readme_EN.md

简介

这是一个运行在Google App Engine(GAE)上的Kindle个人推送服务应用,生成排版精美的杂志模式mobi/epub格式自动每天推送至您的Kindle或其他邮箱。

此应用目前的主要功能有:

  • 支持类似Calibre的recipe格式的不限量RSS/ATOM或网页内容收集
  • 不限量自定义RSS,直接输入RSS/ATOM链接和标题即可自动推送
  • 多账号管理,支持多用户和多Kindle
  • 生成带图的杂志格式mobi或带图的有目录epub
  • 自动每天定时推送
  • 内置共享库,可以直接订阅其他网友分享的订阅源,也可以分享自己的订阅源给其他网友
  • 强大而且方便的邮件中转服务
  • 和Evernote/Pocket/Instapaper等系统的集成

注:如果您要求不高,自定义RSS推送功能足以应付一般应用,如果要求排版和完美,可以参照books目录下的文件范本自己添加一个文件再重新上传即可,books目录下的书籍文件都不是随意预置的,每个文件都至少演示一个适用的books编写技巧。 在您懂python的前提下,您可以完全的操控网页,可以生成您需要的最完美的MOBI/EPUB文件。

标准部署步骤

  1. 申请google账号 并暂时 启用不够安全的应用的访问权限 以便上传程序。

  2. 创建一个Application,注意不用申请GCE,那个是60天试用的,而GAE是限额范围内永久免费的。

  3. 安装 Python 2.7.x

  4. 安装 GAE SDK

  5. 下载 KindleEar ,解压到一个特定的目录。

  6. 在以下三个文件中修改一些参数:

文件 待修改内容 说明
app.yaml application 你的ApplicationId
module-worker.yaml application 你的ApplicationId
config.py SRC_EMAIL 创建GAE工程的GMAIL邮箱
config.py DOMAIN 你申请的应用的域名

如果使用gcloud部署,需要注释掉yaml文件中的application/version项。

  1. 转到GAE SDK安装目录(默认为:C:\Program Files\Google\google_appengine)

  2. 部署命令:
    8.1 使用appcfg.py:

    • c:\python27\python.exe appcfg.py update kindleear目录\app.yaml kindleear目录\module-worker.yaml
    • c:\python27\python.exe appcfg.py update kindleear目录

8.2 使用gcloud:
* 删除app.yaml和module-worker.yaml开头的两行:application / version
* gcloud auth login
* gcloud config set project 你的ApplicationId
* gcloud app deploy --version=1 KindleEar目录\app.yaml KindleEar目录\module-worker.yaml
* gcloud app deploy --version=1 KindleEar目录
* [如果服务器没有正常创建数据库索引,可能需要手动执行如下语句]
gcloud datastore indexes create KindleEar目录\index.yaml

  1. 全部完成后就可以尝试打开域名:
    http://appid.appspot.com (appid是你申请的application名字)
    比如作者的网站域名为:http://kindleear.appspot.com/
    注:初始用户名为 admin,密码为 admin,建议登录后及时修改密码。

  2. 更详细一点的说明请参照Github上的 FAQ 或作者网站的 FAQ 链接。有关部署失败,部署后"internal server error"等问题都有解释。
    不建议使用GAE Launcher部署KindleEar,除非你知道怎么设置Extra Flags等参数。

简化的部署步骤(推荐)

假如你不想安装python和GAE SDK,则可以选择如下两种方法之一:

  1. 参考代码库 https://github.com/bookfere/KindleEar-Uploader ,里面有详细的教程和服务器脚本,也很简单。

  2. 使用本机脚本:
    2.1 下载KindleEar 并解压(改目录名为KindleEar)。
    2.2 下载KindleEar-Uploader 并解压。
    3.3 将KindleEar目录放到Uploader目录下,双击uploader.bat即开始上传,根据提示输入你的相关信息即可,在第一次成功部署之后,适用uploader再次升级KindleEar则不需要再次输入。
    此uploader仅适用于Windows系统。

许可协议

KindleEar is licensed under the AGPLv3 license.
大体的许可框架是此应用代码你可以任意使用,任意修改,可以商用,但是必须将你修改后的代码开源并保留原始版权声明。

主要贡献者

Issues
  • 希望可以提供浏览器Send to Kindle功能,抓取当前网页内容生成文章发送至Kindle

    希望可以提供浏览器Send to Kindle功能,抓取当前网页内容生成文章发送至Kindle

    我虽然不懂web开发,也可进我绵薄之力。

    opened by onlyzf 38
  • 使用 uploader 上传时出现 Error 404: https://developers.google.com/accounts/docs/AuthForInstalledApps

    使用 uploader 上传时出现 Error 404: https://developers.google.com/accounts/docs/AuthForInstalledApps

    RT,以下是具体的上传情况:

    10:10 AM Getting current resource limits.
    Email: [email protected]
    Password for [email protected]:
    10:10 AM Scanning files on local disk.
    Email: [email protected]
    Password for [email protected]:
    Error 404: --- begin server output ---
    https://developers.google.com/accounts/docs/AuthForInstalledApps
    --- end server output ---
    
    opened by miaowm5 32
  • 那个漫画模式看到的漫画四周有空白

    那个漫画模式看到的漫画四周有空白

    opened by suoba 31
  • 目录跳转有问题,请求帮忙解决!

    目录跳转有问题,请求帮忙解决!

    目前的MOBI生成模块在生成杂志模式MOBI发送到kindle还存在此BUG,请求高人帮忙解决。 问题描述: 目前每次在文章中按“View Sections & Articles”后会跳到目录的第一项,而使用kindlegen和calibre生成的MOBI每次按"View Sections & Articles"都会跳到你正在看的这篇文章对应的目录项。

    opened by cdhigh 28
  • 设置extra_css无法生效

    设置extra_css无法生效

    在books下的书里增加 extra_css = ''' body { font-size: 1em; text-align: justify; line-height: 1.618em; margin: 0; } p { font-size: 1em; text-align: justify; line-height: 1.618em; } h1 { font-size: large; } ''' 无论怎么都无法生效,请帮助看看到底是怎么回事呢,是不是有bug啊

    opened by richars 25
  • Book 'XXX' import failed : invalid syntax (XXX.py, line 27)

    Book 'XXX' import failed : invalid syntax (XXX.py, line 27)

    Book 'XXX' import failed : invalid syntax (XXX.py, line 27) 不知道代码什么地方写错了,第27行是remove_classes,27行开始的几行如下:

        remove_classes = [
                'articleFooter',
                'articleTools',
                'rfd', 'story-footer-links', 'page-footer',
                'columnGroup singleRule',
                'columnGroup last',
                'columnGroup  last',
                'doubleRule',
                'dottedLine',
                'entry-meta',
                'entry-response module',
                'leftNavTabs',
                'metaFootnote',
                'messages',
                ]
    

    其实一开始用的是remove tags,大概如下:

       remove_tags = [
            dict(attrs={'class': [
                'articleFooter',
                'articleTools',
                ]})]
    

    可发现推送的文件依然没有移除这些class,于是就添加了remove classes,想不到提示no news,日志显示标题的错误。请教是什么地方写错了。

    opened by Steven630 25
  • 一天推送多次好像没有成功

    一天推送多次好像没有成功

    如何一天推送多次?

    需要及时跟踪网站最新消息的同学可能有一天推送多次的需求,以下步骤告诉你如何实现:

    在books目录下添加一个py文件。 deliver_times设置为你需要推送的整点时间列表。 比如: deliver_times=[6,14,22] #6:00,14:00,22:00三次推送 如果需要,oldest_article设置为多次推送的间隔秒数,这样就不推送重复文章了。 比如: oldest_article=28800 #86060

    按照大神的指导这么做,不过好像还只是一天推送一次。这个意思是我只要新建一个py文件,然后写上这两句上传就行了吗?谢谢!

    opened by mrsoshining 21
  • 请教Cloud Shell部署的问题

    请教Cloud Shell部署的问题

    出来下面截图的这个提示,以前从来没有过。不知道什么问题。烦请指教。

    Screenshot_20200917_165619

    opened by Steven630 20
  • 投递两三天了,没有一次成功

    投递两三天了,没有一次成功

    这两天投递了五六次,每次都说发送成功,但是投递日志里面什么都没有.

    opened by playdougher 18
  • 重复投递的问题

    重复投递的问题

    非常感谢你提供的这个KindleEar,很是喜欢。在使用中遇到一个问题,就是定时推送功能出现重复。我查看投递日志,显示只推送了一条,但是Amazon的个人文档里却出现重复的两份。请问这是哪里的问题?

    补充:好像在我点击手动推送之后,第二天自动推送就会出现这个问题。

    030a18ba-89ad-461b-a1d6-f0d7939b7377

    opened by runbing 17
  • app.yaml seems invalid, please download KindleEar again.

    app.yaml seems invalid, please download KindleEar again.

    Ekran görüntüsü 2021-12-20 165902 when I try to start uploader.bat always getting error "app.yaml seems invalid, please download KindleEar again". could you help me about the situation?

    opened by magruderkvnc 1
  • 打开ofcoder.com的网页报Too many redirections错误

    打开ofcoder.com的网页报Too many redirections错误

    Too many redirections:https://www.ofcoder.com/2020/08/12/theory/分布式一致性协议 - ZAB/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

    我手工设置最大跳转次数到30也是一样 opener = URLOpener(self.host, timeout=self.timeout, maxredirect=30)

    用浏览器打开网页正常,而且好像没有跳转

    opened by hjianhao 3
  • 请教 对于提供了JSON但没有rss的网站,有简单抓取方法吗

    请教 对于提供了JSON但没有rss的网站,有简单抓取方法吗

    如题 我见一些网站提供了形如这样,非常工整的东西: https://api.guancha.cn/Appdata/NewsList/?newstype=0&size=10&page=1&type=2&id=ZhangWeiWei 但它并不能直接订阅 请教,有无可以简单的将它转为RSS的工具? 或者提供一个kindleear现成,转换类似链接的book,生搬硬套就能用的那种。(鄙人很菜,只看得懂html) 谢谢!

    opened by mlyksuu 1
  • 为啥漫画柜上的漫画都无法抓取

    为啥漫画柜上的漫画都无法抓取

    分别试了https://tw.manhuagui.com/、https://www.manhuagui.com/、https://m.manhuagui.com/ 这三个域名都抓取失败

    opened by ListeningLTG 0
  • feedburner的订阅源添加?format=xml也无法正常推送

    feedburner的订阅源添加?format=xml也无法正常推送

    好像已经几个月了,以前不加?format=xml也能推送,现在貌似只要是feedburner都不行,不知道该怎么解决?

    PS:另外请教下isfulltext的实际用途,发现有些订阅源是否勾选全文结果都一样

    opened by Motorcure 0
  • 想问一下,马上2020年1月python2就要到期了,不知道什么时候可以出一个python3的版本?要不各路大神,咱们一起把代码迁移一下python3?

    想问一下,马上2020年1月python2就要到期了,不知道什么时候可以出一个python3的版本?要不各路大神,咱们一起把代码迁移一下python3?

    想问一下,马上2020年1月python2就要到期了,不知道什么时候可以出一个python3的版本?要不各路大神,咱们一起把代码迁移一下pytho年?

    opened by r0103 2
  • 现在可以通过google cloud shell直接上传了

    现在可以通过google cloud shell直接上传了

    昨天刚刚弄了自己的kindle ear,多谢开发者。 发现新的google cloud console有个cloud terminal功能,已经不需要自己安装python和GAE SDK去上传了,可以直接在terminal里git clone过去。也许国内上传翻墙等问题,也可以通过这个解决?

    opened by nmly 36
  • 上传墙的问题搞定了又出现新的问题,奔溃!

    上传墙的问题搞定了又出现新的问题,奔溃!

    大家帮忙看看,弄了好多天了,用osx上传一直出现Getting current resource limits.结果发现是墙的问题,墙没问题用的ss买的vps,估计OS X ss代理端口设置不了,用windows设置就不会出现墙的问题,但是windows又出现新的问题,出现:1:### _ appcfg.py: error:Error parsing c:\kindleear\app.yaml:mapping values are not allowed here_ 2:# **_appcfg.py: error: not a directort: ~/applications/kindleear _**搜索了一下,命令输入有误,直接复制的啊,还会错。小白还是玩不转!

    先感谢大家了!`

    opened by zhurui25 15
First Party data integration solution built for marketing teams to enable audience and conversion onboarding into Google Marketing products (Google Ads, Campaign Manager, Google Analytics).

Megalista Sample integration code for onboarding offline/CRM data from BigQuery as custom audiences or offline conversions in Google Ads, Google Analy

Google 37 Jan 10, 2022
A telegram bot to read RSS feeds

Telegram bot to fetch RSS feeds This is a telegram bot that fetches RSS feeds in regular intervals and send it to you. The feed sources can be added o

Santhosh Thottingal 10 Jan 12, 2022
A telegram mirror bot with an integrated RSS feed reader.

About What is this repo? This is a slightly modified fork which includes some extra features & memes added to my liking. How's this different from the

null 8 Jan 11, 2022
A Telegram bot to extracting text from images. All languages supported.

OCR Bot A Telegram bot to extracting text from images. All languages supported. Deploy to Heroku Local Deploying Clone the repo git clone https://gith

null 9 Jan 7, 2022
domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time.

domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time

Naufal Ardhani 56 Jan 4, 2022
It's a Discord bot to control your PC using your Discord Channel or using Reco: Discord PC Remote Controller App.

Reco PC Server Reco PC Server is a cross platform PC Controller Discord Bot which is a modified and improved version of Chimera for Reco-Discord PC Re

Arvinth Krishna 8 Dec 31, 2021
Automation application was made by me using Google, Sheet and Slack APIs with Python.

README This application is used to transfer the data in the xlsx document we have to the Google Drive environment and calculate the "total budget" wit

null 3 Oct 26, 2021
Google scholar share - Simple python script to pull Google Scholar data from an author's profile

google_scholar_share Simple python script to pull Google Scholar data from an au

Paul Goldsmith-Pinkham 5 Jan 4, 2022
google-resumable-media Apache-2google-resumable-media (🥉28 · ⭐ 27) - Utilities for Google Media Downloads and Resumable.. Apache-2

google-resumable-media Utilities for Google Media Downloads and Resumable Uploads See the docs for examples and usage. Experimental asyncio Support Wh

Google APIs 34 Jan 7, 2022
An attendance bot that joins google meet automatically according to schedule and marks present in the google meet.

Google-meet-self-attendance-bot An attendance bot which joins google meet automatically according to schedule and marks present in the google meet. I

Sarvesh Wadi 11 Aug 22, 2021
Google Drive, OneDrive and Youtube as covert-channels - Control systems remotely by uploading files to Google Drive, OneDrive, Youtube or Telegram

covert-control Control systems remotely by uploading files to Google Drive, OneDrive, Youtube or Telegram using Python to create the files and the lis

Ricardo Ruiz 39 Nov 28, 2021
Easy Google Translate: Unofficial Google Translate API

easygoogletranslate Unofficial Google Translate API. This library does not need an api key or something else to use, it's free and simple. You can eit

Ahmet Eren Odacı 5 Jan 11, 2022
GG Dorking is a tool to generate GitHub and Google dorking for pentesters and bug bounty hunters.

GG-Dorking GG Dorking is a python tool to generate GitHub and Google dorking links for pentesters and bug bounty hunters. It will help you to find imp

Eslam Akl 30 Jan 10, 2022
Get your Pixiv token (for running upbit/pixivpy)

gppt: get-pixivpy-token Get your Pixiv token (for running upbit/pixivpy) Refine pixiv_auth.py + its fork Install ❭ pip install gppt Run Note: In advan

haruna 16 Jan 15, 2022
A powerful bot to copy your google drive data to your team drive

⚛️ Clonebot - Heroku version ⚡ CloneBot is a telegram bot that allows you to copy folder/team drive to team drives. One of the main advantage of this

MsGsuite 141 Jan 9, 2022
Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Automation that uses Github Actions, Google Drive API, YouTube Data API and youtube-dl together to feed BackJam app with new music

Antônio Oliveira 1 Nov 21, 2021
DB-Drive-CSV - This is app is can be used to access CSV file as JSON from Google Drive.

DB Drive CSV This is app is can be used to access CSV file as JSON from Google Drive. How To Use Create file/ upload file to Google Drive There's 2 fi

Hartawan Bahari M. 3 Jan 10, 2022
This bot is made with Python and it is running using Docker container and is concentrated on heroku.

This bot is made with Python and it is running using Docker container and is concentrated on heroku.

Movindu Bandara 1 Nov 16, 2021