文章
技术

【kindle】通过github actions实现定期发送新闻给Kindle

霏艺Faye 图书管理员
霏艺Faye  ·  2021年2月21日 图书管理员

kindle 合适买出版物的电子版本,但是看新闻,追更小说,漫画不方便。【美国人没有追更习惯么?】

比如用kindle看报纸,难道每次都要打开商城自己购买报纸?反正我现在只能每次自己去亚马逊买读者半月刊!

美国人没有类似起点这样的小说网站?

本想自己动手丰衣足食,利用calibre的代码,实现一套定期抓取网络新闻,做成mobi文件,推送给邮箱

年纪大了,来不及验证想法了

  1. 注册一个github账号

  2. 创建一个github actions

  3. on,也就是条件,写schedule 而不是push,cron写成每天早上5点

  4. uses: actions/setup-python@v2

  5. 然后写自己的main.py

  6. 参考 https://github.com/kovidgoyal/calibre/blob/master/src/calibre/ebooks/conversion/cli.py

  7. input插件是recipe,output插件只需要用mobi就可以了

  8. 裁剪calibre的源码,提交到github上,https://github.com/kovidgoyal/calibre/tree/master/src/calibre/ebooks/conversion

plugins目录下,只保留recipe_input.py 和 mobi_output.py 不知道行不行?

https://github.com/kovidgoyal/calibre/tree/master/src/calibre/ebooks/oeb

https://github.com/kovidgoyal/calibre/tree/master/src/calibre/ebooks/mobi

9.参考https://github.com/kovidgoyal/calibre/tree/master/recipes下的例子,写自己的新闻网站的recipe脚本

10.实现 parse_index 方法就可以了

返回类型大概长这样

[(第一章, [{title:第一回, content:第一回内容},{title:第二回, content:第二回内容},...]),

(第二章, [{title:第一回, content:第一回内容},{title:第二回, content:第二回内容},...]),

(第三章, [{title:第一回, content:第一回内容},{title:第二回, content:第二回内容},...])

...]

11.也可以考虑对笔趣阁,wenku8,成为小说家吧,等网站进行定期更新【用来追更】

12.最后,调用https://github.com/kovidgoyal/calibre/blob/master/src/calibre/utils/smtp.py

来实现邮箱推送


遗留问题???

  1. 我不想生成临时文件,希望得到的mobi文件直接作为smtp的入参发送,整个过程在内存里完成,没有磁盘读写

  2. 如果是追更小说,需要记录当前的进度,只推送更新的部分

parse_index函数,每次执行完都用调用json.dump 记录当前进度,

同时每次开始parse_index 前都先读取这个json文件,判断小说有没有更新

菜单
  1. 霏艺Faye 图书管理员
    霏艺Faye   图书管理员

    还有个想法

    利用亚马逊的aws lambda来做一个在线epub转mobi文件并推送的网站

    web界面大概是一个input选择epub文件,两个输入框,一个是发送邮箱地址,第二个是kindle邮箱

    然后一个button是推送

    点击button的时候,post请求给aws lambda

    在线转成mobi文件并推送给kindle邮箱

    亚马逊不会校验邮件合法性,所以我把10086@qq.com 加入了信任邮箱列表,就可以用10086@qq.com给自己kindle发邮件了

    smtp服务器填localhost就可以了

  2. 李舜生  

    https://github.com/cdhigh/KindleEar 默秒全

  3. solids   Ñøñë
    内容已隐藏
    内容已被作者本人或管理员隐藏。 如有疑问,请点击菜单按钮,查看管理日志以了解原因。