使网络再次可读:将文章和新闻摘要发送到您喜欢的电子阅读器

RSS提要在当今网络中被大大低估了-至少在极客圈子之外。它们不仅比许多人想像的无处不在(每个受人尊敬的新闻网站至少提供一个供稿);它们不仅使用户能够通过聚合器创建自己的新闻提要和公告板,而无需依靠云运行算法的摆布;但是它们的结构化性质(RSS feed只是结构化XML)提供了构建自动化管道的可能性,该管道可以以所需的任何格式传递所需的内容,无论我们想要的是什么,只要我们想要的。 IFTTT是在RSS源上构建自定义逻辑的流行选项。它使建立相对复杂的规则变得非常直观,例如“向我发送每周一期的《经济学人》文章摘要”,或“每天早上6点从NYT发送电报消息与摘要”,或“向我们发送摘要”。 XKCD发布新漫画时,我的手机会收到通知。”但是,我认为这要归功于互联网连接的电子阅读器(例如Kindle或Mobiscribe)以及诸如Mercury和Instapaper之类的可转换网页的网络服务RSS提要以干净的易于打印的格式真正发挥出最佳的使用效果。将我们的新闻源整齐地组织在一个聚合器中,以及在发布新文章时或每天配置推送通知的可能性非常好/每周/每月摘要发送到我们喜欢的任何地方。但是这些功能只能解决问题的第一部分-内容分配。问题的第二部分-“内容消耗”-当我们单击链接时出现,该链接以我们喜欢的任何设备和任何格式交付,并且我们开始阅读实际的文章。如今,这种体验主要发生在笔记本电脑的屏幕上,或者更糟的是,在很小的智能手机屏幕上,我们希望可以在这些屏幕上滚动浏览通常经过非移动优化的,充满广告和付费墙的内容,而无数其他通知则需要他们的关注。在智能手机屏幕上阅读冗长的内容可以说是一种糟糕的体验,就像在Kindle上浏览网页一样。如果能够将我们喜欢的内容自动传送到我们喜欢的阅读设备,并以正确的格式并以舒适的可读性大小,没有所有的混乱和干扰,也没有始终在我们眼前的背光屏幕?在本文中,我们将介绍如何使用多种技术工具(电子阅读器,Kindle帐户,Mercury API,Instapaper)以及如何通过platypush将所有这些部件连接在一起来实现此目的。在第一部分中,您拥有一个Kindle,一个链接的Amazon帐户和一个Gmail帐户,我们将使用它们通过电子邮件以编程方式将文档发送到设备(我们将在本故事的后面看到如何在其他设备上利用Instapaper)首先,您必须创建一个与Kindle关联的电子邮件地址,该电子邮件地址将用于远程发送文档:

  • 前往Amazon内容和设备门户并使用您的帐户登录。
  • 单击第二个选项卡(“您的设备”),然后单击应在其中传送内容的设备旁边的上下文菜单。
  • 您会看到与设备关联的电子邮件地址。复制它或单击“编辑”进行更改。
  • 单击第三个选项卡(“设置”),然后滚动到底部的标题为“个人文档设置”的部分。
  • 滚动到底部的“批准的个人文档电子邮件列表”部分,然后将您的Gmail地址添加为可信来源。

要检查一切是否正常,您现在可以尝试将PDF文档从您的个人电子邮件地址发送到Kindle:如果设备已连接到WiFi,则文档应在几秒钟内自动下载。请安装带有所需依赖项的platypush我可能已经阅读了有关platypush的一些文章,这是我在过去几年中建立的自动化平台-那些不熟悉的人可以从我关于该主题的第一篇中篇文章开始。在它提供的功能中,还有本文需要的所有要素。我们特别需要构建一个自动化管道,以:

  • 定期检查RSS源列表中是否有新内容;
  • 通过简化网页(通过Mercury解析器或Instapaper)并选择性地将它们导出为PDF来预处理新项目;
  • 以编程方式将包含新内容的电子邮件发送到您的设备。

首先,使用所需的其他功能安装platypush(任何具有兼容操作系统的设备都可以使用:RaspberryPi,未使用的笔记本电脑,远程服务器…):pip install'platypush(http,pdf,rss,google)'您还需要安装npm和mercury-parser:Postlight以前曾为其解析器提供Web API,但他们已停止使用它,而是选择将其设为项目开源:#假设您使用的是Debian或Debian衍生的操作系统
apt-get install nodejs npm
npm install @ postlight / mercury-parserSecond,将platypush链接到您的Gmail帐户,以通过电子邮件发送文档:

  • 在Google开发人员控制台上创建一个新项目;
  • 从上下文菜单-> OAuth客户端ID中单击“凭据”;
  • 生成后,您可以在“ OAuth 2.0客户端ID”部分中看到新的凭据。单击“下载”图标将其保存到JSON文件中;
  • 将文件复制到您的platypush设备/服务器,例如, 〜/ .credentials / client_secret.json;
  • 在设备上运行以下命令以授权应用程序:

python -m platypush.plugins.google.credentials
    “ https://www.googleapis.com/auth/gmail.modify”
    〜/ .credentials / client_secret.json
    –noauth_local_webserver

  • 将链接复制到浏览器中,并根据需要使用您的Google帐户登录并授权该应用程序。

现在您已经准备就绪,现在是时候配置platypush来处理您喜欢的提要了。创建规则以自动将文章发送到Kindlehttp.poll后端是一个灵活的组件,可以将其配置为从多个网站轮询和处理更新资源-JSON,RSS,Atom等。假设您想每天两次查看《纽约时报》 RSS feed的更新,并将摘要与新内容一起提供给Kindle。您需要在〜/ .config / platypush / config.yaml文件:backend.http.poll中创建如下所示的配置:
    要求:
        —
            #此民意测验将处理RSS供稿
            类型:platypush.backend.http.request.rss.RssUpdates
            #RSS提要URL和标题
            网址:http://feeds.podtrac.com/zKq6WZZLTlbM
            标题:《纽约时报》-The Daily
            #我们要多久检查一次更新
            #12h = 43200秒
            poll_seconds:43200
            #我们希望将内容转换为PDF
            摘要格式:pdf
            #我们要解析并提取内容
            #使用Mercury Parser的网页
            extract_content:TrueCreate现在是一个事件挂钩,该事件挂钩对NewFeedEvent做出反应,并通过以下电子邮件将处理后的内容发送到Kindle:event.hook.OnPdfDigest:
    如果:
        类型:platypush.message.event.http.rss.NewFeedEvent
        摘要格式:pdf
    然后:
        动作:google.mail.compose
        args:
            发件人:your-personal@gmail.com
            到:your-kindle@kindle.com
            主旨:${title}摘要
            正文:您的${title} RSS供稿直接发送到Kindle
            文件:
                -${digest_filename}重新启动platypush。一旦应用程序在目标提要中找到尚未处理的项目,它将对其进行解析,将其转换为PDF,触发将由您的钩子捕获的NewFeedEvent,并将生成的PDF发送到Kindle 。您可以通过简单地在http.poll后端的request属性中添加更多项来添加更多受监视的RSS源。现在,您可以从适当的屏幕上阅读文章,每天一次或两次直接发送到电子阅读器中。一旦进入这种新的体验,小巧的智能手机屏幕,付费墙,弹出窗口和广告就显得非常过时了向您发送内容flyRSS提要上的电子阅读器很棒,但它们并不是我们今天消费发现和消费内容的唯一方式。很多时候,我们滚动浏览自己喜欢的社交媒体时间轴,碰到一篇有趣的文章,开始在我们的小屏幕上阅读,而我们希望以后在大屏幕上继续阅读。为了解决“解析,保存并稍后阅读”问题,出现了几种工具和产品,包括Evernote,Pocket和Instapaper等。但是,其中大多数仍然受到相同问题的影响:要么它们在以较高可读性的格式实际解析和提取内容方面做得不好(Instapaper除外; Pocket仅保存指向原始内容的链接,至少可以说,Eve​​rnote的内容解析功能还有很大的改进空间),或者它们仍然绑定到运行它们的智能手机或计算机的背光屏幕上。当我们在Android设备上滚动Facebook时间轴,并通过单击将其以一种美观且易读的格式发送到Kindle时,碰上有趣的文章会不会很酷?让我们看看如何在platypush中实施这样的规则。首先,我们需要在移动设备上运行的某些内容,以编程方式与Raspberry /计算机/服务器上安装的platypush实例进行通信。我认为Tasker是最适合此目的的应用程序之一:使用Tasker(以及joaoapps开发的其他相关应用程序),可以使Android设备上的任何内容自动化并创建将其连接到任何内容的复杂规则。 Tasker有多种与platypush进行通信的方法(通过HTTP调用进行直接RPC,使用Join与外部MQTT服务器进行分派消息,使用中间IFTTT挂钩或Pushbullet…),以及platypush进行通信的方法有很多返回到您的移动设备上的Tasker(将AutoRemote与platypush插件结合使用以发送自定义事件,将IFTTT与连接到您的移动设备的任何服务一起使用,或者使用Join API,或者再次使用Pushbullet…)。我们将在本文中使用Pushbullet,因为它不需要像其他技术一样多的配置步骤。

  • 在Android设备上安装Tasker,AutoShare和Pushbullet;
  • 转到您的Pushbullet帐户页面,然后单击“创建访问令牌”以创建一个新的访问令牌,platypush将使用该访问令牌来侦听发送到您帐户的消息。通过将以下行添加到〜/ .config / platypush / config.yaml中,在platypush上启用Pushbullet后端:

backend.pushbullet:
    令牌:您的代币
    设备:platypush设备

  • 还向您的config.yaml添加一个过程,该过程给定URL作为输入,以提取内容,将其转换为PDF并将其发送到Kindle:

procedure.send_web_page_to_kindle:
    #有些应用不仅共享链接,还共享一些链接
    #文字,例如“我找到了这篇有趣的文章
    #on XXX”。以下操作会删除多余的内容
    #从输入中提取,仅提取URL。
    -动作:variable.mset
      args:
          网址:“ ${__ import __(“ re”).sub(r“ ^。*(https?://(^ s)*)。*”,r“ 1”,${url})}'
    #提取内容并生成PDF
    -动作:http.webpage.simplify
      args:
          网址:${url}
          外档:〜/ outfile.pdf
    #使用解析的标题作为PDF的名称
    -动作:variable.mset
      args:
          OUTFILE:/home/user/${title}.pdf
    -动作:shell.exec
      args:
          cmd:“ mv〜/ outfile.pdf“ ${OUTFILE}”“
    #将文件发送到您的Kindle电子邮件地址
    -操作:google.mail.compose
      args:
          发件人:your-personal@gmail.com
          到:your-kindle@kindle.com
          主题:${title}
          正文:“原始网址:${url}”
          文件:
              -${OUTFILE}
    #删除临时PDF
    -动作:shell.exec
      args:
          cmd:'rm“ ${OUTFILE}”'

  • 重新启动platypush,然后从Pushbullet中检查是否已创建新的虚拟设备,即上面示例中的“ platypush-device”。
  • 在您的移动设备上,打开自动共享,选择“管理命令”,然后创建一个新命令,例如“发送至Kindle”;
  • 打开Tasker并创建一个新的配置文件;选择事件->自动共享->配置->命令->命令过滤器->“发送到Kindle”。这意味着只要您从共享链接对话框中选择“发送到Kindle”,就会触发此配置文件;
  • 在与此触发器关联的任务中,点击“加号”图标以添加新操作,然后选择“推送通知”(该操作旁边带有绿色的Pushbullet图标);
  • 选择“ platypush-device”作为目标设备,并将以下JSON作为消息粘贴:

{“类型”:“请求”,“操作”:“ procedure.send_web_page_to_kindle”,“参数”:{“ url”:“%astext”}}

  • 在上面的示例中,%astext是Tasker中的一个特殊变量,其中包含源应用程序共享的文本(在这种情况下,链接发送到AutoShare);
  • 打开浏览器,然后转到您要发送到Kindle的文章的Web链接,选择“共享”->“自动共享”命令->“发送至Kindle”;
  • 解析后的文章应在几秒钟内以优化的PDF格式交付给您的电子阅读器。

在其他基于Android的电子阅读器上使用Instapaper我已经在本文中简要提到了Instapaper。我真的很喜欢作为应用程序的服务;我认为这是Evernote应该已经实现和从未实现过的实现。只需浏览到网络上的一篇文章,单击“共享到Instapaper”,然后单击一次,该网页将被解析为可读格式,所有混乱和广告都将被删除,并添加到您的帐户中。事实是它的Android应用程序确实很小(但设计得非常好),并且在运行旧版Android或功能不那么强大的设备上也能很好地运行。如果不是像Mobiscribe这样的产品正在慢慢推向市场,那本身就不会有什么大不了的。我希望它的榜样能被其他人效仿。 Mobiscribe既可以用作电子阅读器,也可以用作电子墨水记事本,但真正有趣的是它运行的是Android-即使它是古老的Android KitKat修改版,迟早也要有更新的版本。与其他类似产品(例如reMarkable,已选择使用其自己的操作系统)相比,Android操作系统的存在使该电子阅读器/平板电脑更加有趣:即使它是旧版Android,并且运行在受支持的设备,仍然可以在其上安装一些应用程序-Instapaper就是其中之一。它可以非常轻松地增强您的阅读体验:只需浏览网络,将文章添加到您的Instapaper帐户,然后就可以将其交付给飞到您的电子阅读器。如果需要,您还可以在platypush中使用Instapaper API,以编程方式将内容发送到您的Instapaper帐户而不是Kindle。只需创建如下过程:procedure.instapaper_add:
    -动作:http.request.get
      args:
          网址:https://www.instapaper.com/api/add
          参数:
              网址:${url}
              用户名:your_instapaper_username
              密码:your_instapaper_password,并通过在您喜欢的任何后端上发送JSON请求来调用它:{“ type”:“ request”,“ action”:“ procedure.instapaper_add”,“ args”:{“ url”:“ https:// custom -url / article“}},您也可以更改之前显示的event.hook.OnPdfDigest的内容,以便将摘要保存到您的Instapaper帐户中,而不是通过电子邮件将摘要发送到Kindle。结论过去几年,Web呈指数级增长,但是分发和使用此类内容的方法(至少在灵活性方面)并没有太大改善。社交媒体和Google新闻等平台的指数级增长意味着,如今很少有大型公司决定应在您眼前出现哪些内容,如何将这些内容传递给您以及可以在哪里使用。技术应该是在创造更多的机会和灵活性,而不是减少它们,因此,如此剧烈的中心化不应为高级用户所接受。幸运的是,像RSS feed这样具有数十年历史的技术可以拯救人们,使我们能够调整想要阅读的内容,并构建自动化管道以在需要的任何地方分发内容。此外,电子阅读器正变得越来越普及,谢谢最近几年电子墨水显示器的价格下跌,以及更多的公司和产品进入市场。自动将网络内容交付给电子阅读器确实可以创建一种新的且更舒适的方式来保持了解情况-并为我们的Kindle找到另一个很好的用例,而不是下载小说在沙滩上阅读。
          
          
          
          

          

          
          
          
        

资讯来源:由0x资讯编译自HACKERNOON。版权归作者所有,原文链接:https://hackernoon.com/make-the-web-readable-again-deliver-article-and-news-digests-to-your-favourite-e-reader-nl3l3thr。未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢