KindleEar 搭建教程:推送 RSS 订阅到 Kindle

“Kindle推送”相关阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 805 条留言

  1. 你好,我这边部署完了为啥会是502bad gateway 啊?第一次部署提示Error: Page not found
    The requested URL was not found on this server.后来重新上传了一次就502了

      • 新版本和老版本不兼容,不能使用书伴的部署脚本,需要使用KindleEar自己的部署脚本,其项目文档有部署步骤。

  2. 您好,请问“允许不够安全的应用”这一项设置现在不能开启了要怎么办?
    “从 2022 年 5 月 30 日起,Google 不再支持那些会要求您仅使用用户名和密码登录 Google 帐号的第三方应用或设备。”
    目前所有都设置好之后还是404 page not found

  3. 问一下,我全部都设置好了。一开始我的订阅 打不开,internal server error。然后按照上面方法解决了。现在订阅好了,看着一切都好,就是不投递。定时推送没反应,点手动推送就是internal server error。不知道怎么解决了。

    • GAE 所在的项目是否已关联支付方式?Book、DeliverLog、Feed 三项的状态是否都正常?另外,可以查看一下项目日志,应该可以找到更具体的错误提示。

      • 感谢回答,有关联,看着都正常,那个项目日志具体在哪里打开?找了好久,功能太多了。是运维里的logging嘛?

      • 你好,弄到深夜两点好像明白了点,用的简单法,但还是部署有问题。UnknownQueueError。FAQ的:

        python appcfg.py update_indexes KindleEar/
        python appcfg.py update_queues KindleEar/
        python appcfg.py update_cron KindleEar/
        python appcfg.py update_queues KindleEar/
        python appcfg.py update_dispatch KindleEar/

        这几个命令不知如何使用?直接打进去的话都是:

        Welcome to Cloud Shell! Type "help" to get started.
        Your Cloud Platform project in this session is set to sunlitcharge328604.
        Use “gcloud config set project [PROJECT_ID]” to change to a different project.
        doriesking@cloudshell:~ (sunlitcharge328604)$ python appcfg.py update_indexes KindleEar/
        ********************************************************************************
        Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
        See https://cloud.google.com/python/docs/python2-sunset
        
        To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
        The command will automatically proceed in  seconds or on any key.
        ********************************************************************************
        /usr/bin/python: can't open file 'appcfg.py': [Errno 2] No such file or directory

        然后附上错误log日志

        2021-10-11 01:28:02.775 HKT  GET  500  155 B  2.503 s  Chrome 94.0.4606.71  /deliver?u=admin  错误
        2021-10-11 01:28:05.271 HKT  Traceback (most recent call last):  错误
        2021-10-11 01:28:05.272 HKT  File "lib/web/application.py", line 239, in process  错误
        2021-10-11 01:28:05.272 HKT  return self.handle()  错误
        2021-10-11 01:28:05.272 HKT  File "lib/web/application.py", line 230, in handle  错误
        2021-10-11 01:28:05.272 HKT  return self._delegate(fn, self.fvars, args)  错误
        2021-10-11 01:28:05.272 HKT  File "lib/web/application.py", line 420, in _delegate  错误
        2021-10-11 01:28:05.272 HKT  return handle_class(cls)  错误
        2021-10-11 01:28:05.272 HKT  File "lib/web/application.py", line 396, in handle_class  错误
        2021-10-11 01:28:05.272 HKT  return tocall(*args)  错误
        2021-10-11 01:28:05.272 HKT  File "/base/data/home/apps/n~sunlitcharge328604/1.438588642996314998/apps/View/Deliver.py", line 65, in GET  错误
        2021-10-11 01:28:05.272 HKT  self.flushqueue()  错误
        2021-10-11 01:28:05.272 HKT  File "/base/data/home/apps/n~sunlitcharge328604/1.438588642996314998/apps/View/Deliver.py", line 38, in flushqueue  错误
        2021-10-11 01:28:05.272 HKT  params=param, target="worker")  错误
        2021-10-11 01:28:05.272 HKT    File "/base/alloc/tmpfs/dynamic_runtimes/python27g/3f4b27f16594164f/python27/python27_lib/versions/1/google/appengine/api/taskqueue/taskqueue.py", line 2588, in add  错误
        2021-10-11 01:28:05.272 HKT  queue_name=queue_name, transactional=transactional)  错误
        2021-10-11 01:28:05.272 HKT  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/3f4b27f16594164f/python27/python27_lib/versions/1/google/appengine/api/taskqueue/taskqueue.py", line 1283, in add  错误
        2021-10-11 01:28:05.272 HKT  return self.add_async(queue_name, transactional).get_result()  错误
        2021-10-11 01:28:05.272 HKT  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/3f4b27f16594164f/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 615, in get_result  错误
        2021-10-11 01:28:05.272 HKT  return self.__get_result_hook(self)  错误
        2021-10-11 01:28:05.272 HKT  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/3f4b27f16594164f/python27/python27_lib/versions/1/google/appengine/api/taskqueue/taskqueue.py", line 2232, in ResultHook  错误
        2021-10-11 01:28:05.272 HKT  raise exception  错误
        2021-10-11 01:28:05.272 HKT  UnknownQueueError
        • 现在部署 GAE 需要使用 gcloud 命令,你看到的 FAQ 估计是还没更新,不过 KindleEar 的 README .md 里的“标准部署步骤”提到了重新部署计划任务的方法。

          根据你提供的信息,可以尝试下面这些步骤,应该可以解决你遇到的问题。

          首先访问下面这个网址,确定 Google Cloud 的 Cloud Tasks API 已经开启:

          https://console.cloud.google.com/apis/api/cloudtasks.googleapis.com

          然后重新部署应用的计划任务,打开 Cloud Shell 后运行下面这条命令:

          cd KindleEar && gcloud app deploy --version=1 app.yaml queue.yaml cron.yaml dispatch.yaml

          * 注意:如果运行命令后出现类似 NOT_FOUND: Unable to retrieve P4SA ... 的错误提示,需要重新运行一次命令。

  4. 部署好了,手动向Kindle推送图书出现内部错误,好像只有我遇到这个问题,我用的贵站自动推送脚本。数据储存的索引有四个,Book,DeliverLog, Feed,LastDelivered,都有绿色的勾表示正常。

  5. 感谢博主的教程,一直稳定运行了几年,没有进行任何调整,但今天访问突然报错500,是不是已经不能在gae上面部署运行了?

    • 我也是, 8月7号出现错报500,然后就收不到投递了,不知道是什么原因导致的,不晓得怎么办

      • 根据您在 https://bookfere.com/post/19.html#ke_1_5 的描述
        > 自 2019 年 11 月 30 日起,Google App Engine 将使用 Google Cloud Build 构建

        而2019年至出问题前,运行都是正常的,所以我还是不太明白为什么现在才开始500

  6. 您好:已经按照您说到进到那个页面了,没有发现Book、DeliverLog、Feed 这三项,我的设置是 自动上传,如何进入 KindleEar 目录

    • 没有这三项,说明没有上传成功,或者没有成功创建索引。建议重新上传一次试试,看安装过程中是否有错误提示。

      • 我就没有这三项
        试着按照步骤重新上传后,索引那栏还是提示“此应用没有任何复合索引。您可以在应用的索引配置文件中创建索引。”
        第一次安装和重新安装的过程中无任何错误提示

        运行文中提供的命令后提示显示
        “ERROR: (gcloud.app.deploy) [/home/a1234205a/index.yaml] does not exist.”

        • 出现这个错误说明命令没有执行成功。你需要先运行命令 cd KindleEar 进入源代码所在目录,然后再运行文中提供的那个命令。

          • 多谢!运行cd KindleEar之后再运行gcloud app deploy index.yaml –version=1 –quiet就好用了,索引成功建立了!感谢!

  7. 你好,我的RSS KindleEar,设置完以后,点 我的订阅,就出现、internal server error ,按照作者的解决办法,找不到 数据存储 这个项目,《 Book、DeliverLog、Feed 三项的状态》也见不到,请问如何处理

    • 点击项目左上角的汉堡菜单图标(三道杠图标),向下拉,在“数据库(Databases)”那一栏就可以找到“数据存储(Datastore)”这个菜单项。

      你需要进入“数据存储”页面,确认那三项索引是正常的,如果不正常需要按照文中第五部分第一个常见问题提供的方法更新索引。

  8. 您好,用github的方法上传失败了(实际上是更新,以前都可以的,这两天上传文件还正常,但是到了update service这步总出错,不知道为什么)

    Updating service [default]…failed.
    ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build c2e2cda4-81c2-4719-8cbb-8a1022f9df1a status: FAILURE

  9. 想咨询一个问题,我刚入手kindle不久,编程方面一点都不懂,一直想用Kindle追现在正在更新的网络小说,找了好久看到了一篇文章https://blog.csdn.net/u011522919/article/details/79463238
    然后我想到了自制rss然后利用wheremylife每日推送,我希望能知道这个办法能不能走的通,如果可以的话,想解决上边的问题该学习那方面的知识呢?

    • 在“制作 RSS”和“将 RSS 内容推送到 Kindle”这两个环节的可靠性能满足的前提下,你的思路是可行的,不需要编程知识。

      不过需要注意的是,这类工具虽然很方便,但也有很大的局限性,比如“制作 RSS”环节,你所使用的服务商需要抓取源网站的内容,如果该个网站屏蔽了服务商的 IP 或布置了反爬虫措施,那就很可能无法抓取成功。把 RSS 内容推送到 Kindle 也是同样道理,均依赖于服务商提供服务的可靠性。

  10. 为什么你的kindle上的书是样式那么好看呀,我的就是一个普通的列表,不是你这种坐标分类,右边标题的样式

  11. 请问大佬,我在需要绑定信用卡之前就部署好了kindle ear,现在也不打算绑定,有什么需要注意的地方吗?

    • 如果之前已经部署好了,应该是可以正常使用的,但是只能维持当前状态,若想重新部署就必须绑定信用卡。

  12. ╠═ Uploading 0 files to Google Cloud Storage ═╣
    ╚════════════════════════════════════════════════════════════╝
    File upload done.
    WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cl
    oud.google.com/billing/linkedaccount?wanglaoba

    上传新版软件的时候提示这个该怎么处理?国内没办法添加收费账户呀

    • 这个问题本文第一部分第 6 小节有提示。虽然 GAE 和以前一样仍然有免费额度可用,但自 2019 年 11 月 30 日起必需向支付账户添加一个支持美元支付的信用卡(如 Visa、MastCard 等)才行。

  13. 你好,我按步骤上传后出现这个错误,请问怎么解决?求大佬告知,谢谢
    ERROR: (gcloud.app.deploy) The project property is set to the empty string, which is invalid.
    To set your project, run:

    $ gcloud config set project PROJECT_ID

    or to unset it, run:

    $ gcloud config unset project

  14. 你好 完成一切登陆https://APP_ID.appspot.com/ 后显示

    404. That’s an error.

    The requested URL was not found on this server. That’s all we know.

    请问怎么回事?一样的问题,且APP_ID已经替换成了项目ID

      • 2019 年 11 月 30 日以后,如果 Google Cloud 的支付账户没有绑定信用卡,无法成功部署 GAE 应用。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署,需要为支付账户绑定信用卡才行。

        WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
    • 这是由于 GAE 的部署方式改变导致的,修正后的脚本已解决这个问题,请重新运行命令进行上传。

        • 2019 年 11 月 30 日以后,如果 Google Cloud 的支付账户没有绑定信用卡,无法成功部署 GAE 应用。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署,需要为支付账户绑定信用卡才行。

          WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
      • 完成一切登陆https://APP_ID.appspot.com/ 后显示

        404. That’s an error.

        The requested URL was not found on this server. That’s all we know.

        一直都不可以怎么办

            • 出现这个问题说明没有成功部署 KindleEar。你为 Google Cloud 的支付账户绑定信用卡了吗?在上传过程中出现什么错误了吗?

                • 如果没有绑定信用卡,应该是无法部署成功的。建议重新上传一次,然后注意是否出现了如下所示的提示信息,如果有的话就说明你的 GAE 应用无法正常部署。

                  WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkedaccount?YOUR-PROJECT-ID
              • WARNING: You will be unable to deploy applications after November 30, 2019 without adding a billing instrument to your project. Please add one at https://console.cloud.google.com/billing/linkeda
                ccount?q961184441
                Updating service [default]…failed.
                ERROR: (gcloud.app.deploy) Error Response: [7] Access Not Configured. Cloud Build has not been used in project q961184441 before or it is disabled. Enable it by visiting https://console.develope
                rs.google.com/apis/api/cloudbuild.googleapis.com/overview?project=q961184441 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry
                .

                出现了这两个 怎么解决呀

                • 解决这个问题需要向 Google Cloud 的结算账户添加一个支持美元支付的信用卡(如 Visa、MastCard 等)。