利用KindleEar搭建免费的Kindle新闻推送系统
背景
前些日子,对种草已久的Kindle终于入手了。Kindle上那种不伤眼的阅读真是太喜欢了,而且小巧玲珑,走到哪里都可以看,除了平时推送电子书外,更喜欢在这上面看看新闻和短篇。
比如可以将RSS 订阅源制成期刊,按时推送到 Kindle 中,甚至把漫画、微信做成定期内容推送过去。我平时喜欢看的Cnbeta、松鼠会等,利用KindleEar把这些订阅源做成固定时间推送,而且可以把多个信息合集成一本书,提高阅读效率,也不用到处找新闻看了。市面上很多类似的功能还是要收费的呢,比如狗耳朵等,既然有免费的我怎么不研究一下。
今天我就来说说利用KindleEar搭建自己的定时推送系统。文章可能有一点点小技术,但是绝对没有逻辑难度或者过于需要120智商的内容,只需要一点细心和耐心。
什么是KindleEar
KindleEar 是一款开源的 Python 程序,由网友 cdhigh 发起,托管在 Github。它可运行在免费的 Google APP Engine 上,把 RSS 生成排版精美的杂志模式的 MOBI 文件,并按照设置定时自动推送至你的 Kindle。如果你有 Python 和前端基础,还可以自定义排版,生成你需要的最完美的 MOBI 文件。--引用自书伴
cdhigh的原文地址
搭建好的KindleEar运行效果可以看我的Demo站和下图。(用户名、密码都为smzdm,仅供测试,请勿正式使用。连不上的自行更换第三方DNS,我这里移动网居然无法解析Namecheap的这个域名,差评!)
KindleEar能实现啥功能:
定期自动推送。就是定期把一些新闻推送到你的Kindle,完全不用人工干预。
自动生成图文的mobi或者epub格式。在Kindle上的排版和格式非常好。
支持RSS订阅。订阅源一般都是RSS,虽然现在RSS的资源真是越来越少了。
多账号管理,可以和朋友一块使用。自己搭建,邀请几个好友一块用。
其他,自行研究。
搭建KindleEar
搭建GAE平台
KindleEar只能运行在Google的GAE(Google APP Engine),GAE是谷歌的一款产品,它提供了一个web程序的运行空间,而且GAE可是免费的,非常稳定。你需要自己先准备一个google账号。
首先,打开应用的安全设置
创建一个GAE项目
输入项目的名字,可以随便填写。4~30 个字符,接受字母、数字、半角引号、连字符、空格、感叹号。
之后会生成一个带有数字的项目ID,如果不喜欢也可以随便改。这个名字我个人觉着无所谓,用默认就行,反正我会绑定自己的域名,当然如果你有强迫症,自己随便改吧。
上传KindleEar
进入 Google 云端控制台
点击右上角这个小图标,启动Shell,输入:
gcloud beta app create
之后选择地域,可以就近选亚洲4,或者美国。之后再输入:
rm -f uploader.sh* && wget https://raw.githubusercontent.com/kindlefere/KindleEar-Uploader/master/uploader.sh && chmod +x uploader.sh &&
./uploader.sh
一次性全复制进去后回车,之后提示输入你的Gmail邮箱和APP-ID:
注:作者会经常更新,后期如果需要更新的话,直接在这里输入一次 ./uploader.sh
增加发件授权人,进入: https://console.cloud.google.com/appengine/settings?project=(你的APPID)
点击修改,把你gmail的邮箱填上。如果已经有了则不用了,这个必做,否则后面会出错。
到此,就创建完成了,简单吧。你可以访问http://你的APPID.appspot.com来应用了。
绑定域名(可选,但很重要)
到上面为止,你已经可以正常使用KindleEar了,而且上面的内容也是网上能够找到的教程,我想说的是下面的。
你可能有两个方面问题很不爽,一个是这个域名实在太丑陋了,二是appspot.com很有可能上不去。为了解决这两个问题,我利用手头现有的VPS中搭建好的LNMP来解决,主要利用了Nginx中的反向代理功能。
反向代理原本是用来做动静分离或者负载均衡的,那么我们这里相当于用了偏方。
那么如果我有一个域名,为什么不能直接CNAME绑定?因为经过我测试,这个不成功,原因不讲。
这里要用到以前的一些知识,你需要有一个VPS、搭建好LNMP,并且把你的域名指向主机,并建立一个虚拟主机,这些可以从我以前的教程中找到,我不在啰嗦了。
我这次绑定的域名是kindle.sune.me,在lnmp建立好主机后,
进入conf的配置目录:cd /usr/local/nginx/conf/vhost
修改一下conf文件:vi kindle.sune.me.conf
在server部分添加一下代码:
location / {
sub_filter kindle-177810.appspot.com kindle.sune.me;
sub_filter_once off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer http://kindle-177810.appspot.com;
proxy_set_header Host kindle-177810.appspot.com;
proxy_pass http://kindle-177810.appspot.com;
proxy_set_header Accept-Encoding "";
}
标记中黑的地方需要修改为自己的内容,之后lnmp nginx restart重启服务。
这样可以访问http://kindle.sune.me相当于访问appspot.com了~
一点小修改:但是你在访问的时候,发现页面整个乱了,如下图。
这是因为一些静态文件可能设置的防盗链,那么简单的办法是把这些文件拷贝到本地。通过Chrome右键-查看网页源文件,发现在头部分有三个静态文件:两个css和一个png。
在本地主机的目录新建一个static目录,之后把这三个文件拷贝到本地,可以用FlashFXP传也可以直接Wget命令。
之后就一切就完美啦!是的,我就是个有点强迫症的人,如果你可以忍受,可选的这部分你可以略过。
KindleEar的简单说明
经过上述工作后,你的推送系统就ok了。那么你还需把gmail邮箱加入到信任地址。请到亚马逊账户中心页面将 你的邮箱@gmail.com 加入 'Approved Personal Document E-mail List'。
登录KindleEar进行具体设置:
1.在我的订阅中可以设置订阅的项目,可以自己添加一些RSS的订阅项目。只要是符合RSS/ATOM订阅(XML格式)的都可以。我搭建的时候发现,最新更新了很多漫画,感谢作者。
2.在设置中,添加你的Kindle的邮箱,还可以设置推送的周期、格式等内容。注意“能使自动定时投递”勾选后才是打开了投递功能,所以必须点上。
3、在投递日志中可以查看投递的结果。
功能说明我就简要的说到这里,其实想要完全掌握推送这个技能,还需要自己在研究一下。推荐查看一下连接:
其实我花费了很大时间,想把这个项目移植到Linux下,但是以失败告终,技不如人甘拜下风,所以只能用Google的GAE平台。
Kindle的推送也是一个小坑,想要弄到完美、称心如意还需要付出一定时间,本文只为大家讲解搭建平台,后期设置和RSS收集还需要时间,我也在研究,欢迎大家评论。
还是那句话,感谢开放的互联网提供这么多资源,且用且珍惜!
水星陨落
校验提示文案
[已注销]
校验提示文案
wise1808
校验提示文案
文文很温柔
校验提示文案
chenchen_0_0
校验提示文案
[已注销]
校验提示文案
skysu
校验提示文案
淘东西20112011
校验提示文案
demoola
校验提示文案
小宝犹豫买不买
校验提示文案
twwf
校验提示文案
萝卜魔王
校验提示文案
林佳树Yoshiki
校验提示文案
牧野边
校验提示文案
宛平南路的精神小伙
校验提示文案
七宝奇谋
校验提示文案
等等薅羊毛
校验提示文案
冰露矿泉水
校验提示文案
抽人烟机
校验提示文案
火炎焱燚V5
校验提示文案
狗吃了个红月亮
校验提示文案
情哥
校验提示文案
机械姬
校验提示文案
zky2009
校验提示文案
linuxcat
校验提示文案
lwdaq
另外有个问题,设置了定时推送,现在每天都有新书,看完想在kindle里直接删掉貌似不行,不能彻底删除,只能用电脑登录亚马逊来删除,有什么好办法可以自动删除过期的书籍吗?
校验提示文案
半年换一次
校验提示文案
梦想呢
校验提示文案
梦想呢
校验提示文案
我为你捉急
校验提示文案
zeze247
校验提示文案
99就就
校验提示文案
黄小茜
校验提示文案
dearsharkpig
校验提示文案
asdwxs
校验提示文案
值友7928525647
校验提示文案
Phanerozoic
校验提示文案
什么都要买买买
校验提示文案
klaus杨
校验提示文案
昵称不能为的
校验提示文案