V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
BlackGlory
V2EX  ›  分享创造

Gloria: Chrome 上的可编程网站通知聚合器, 编写脚本定时抓取页面弹出新内容提醒

  •  
  •   BlackGlory ·
    BlackGlory · 2016-08-26 10:19:07 +08:00 · 12497 次点击
    这是一个创建于 3010 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自制的 Chrome 扩展程序, 通过为特定网站编写 JavaScript 脚本来实现网站的提醒功能.

    Chrome 应用商店: https://chrome.google.com/webstore/detail/gloria/cnelmenogjgobndnoddckekbojgginbn

    这款扩展可以让知乎发出提醒:

    这款扩展可以让油管发出提醒:

    这款扩展可以让B 站发出提醒:

    这款扩展可以让P 站发出提醒:

    这款扩展可以实时显示Github 动态:

    这款扩展可以实时显示Steam 动态:

    你还可以用它发出Feedly 的通知, 不再堆积一大堆没看过的 RSS 订阅内容:

    甚至第一时间收到V2EX 酷工作的提醒:

    实现这些功能, 只需要你往 Gloria 里编写一段 JavaScript 代码, 剩下的 Gloria 会帮你搞定. 举个例子, 这是 B 站通知的代码:

    fetch('http://api.bilibili.com/x/feed/pull?ps=10&type=0&pn=1')
    .then(res => res.json())
    .then(json => {
      return json.data.feeds.map(feed => {
        return {
          title: feed.addition.title
        , message: feed.addition.description
        , iconUrl: feed.source.avatar
        , imageUrl: feed.addition.pic
        , url: feed.addition.link
        }
      })
    })
    .then(commit)
    

    关于代码如何编写, 我写了一份使用指南, 如果你对此有任何疑问, 请在本帖留言提出.

    另外, 我建立了一个网站专门用于分享 Gloria 的代码: Gloria.Pub, 用户可以在这里找到 /分享自己需要的脚本, 同时能够很方便的将代码装进 Gloria.

    如果这个扩展程序对你有用, 别忘了在 Github 给它加个 Star: https://github.com/BlackGlory/Gloria

    第 1 条附言  ·  2016-08-29 12:14:18 +08:00

    2016/8/29 更新 0.9.0

    • 新增全局通知 Reducer (支持通过 Pushbullet 推送到移动端)
    • Gloria Notification 的 url 属性现在会检查是否已经有同 url 的页面被打开, 如果有则转到已打开的页面.
    20 条回复    2016-08-29 11:13:16 +08:00
    mikuazusa
        1
    mikuazusa  
       2016-08-26 10:38:09 +08:00
    聚合通知,挺好的,很久以前就有这样的想法,这个结合 Chrome OS 肯定很好用,期望能移植到手机去
    mpco
        2
    mpco  
       2016-08-26 10:45:52 +08:00 via Android
    很不错
    qiayue
        3
    qiayue  
       2016-08-26 10:51:52 +08:00
    楼主,已把你的作品收录到我的网站
    crystom
        4
    crystom  
       2016-08-26 10:53:22 +08:00
    @mikuazusa chromeos 即将支持 Googleplay 以后可能和安卓合体
    crystom
        5
    crystom  
       2016-08-26 10:56:17 +08:00
    能不能触发事件后,除了弹出 notification 之外还能向指定地址发请求。以便通过 pushbullet 等服务在手机上收到通知。
    BlackGlory
        6
    BlackGlory  
    OP
       2016-08-26 11:24:03 +08:00
    @crystom 我也有这个想法, 昨天看了一下 FCM 的文档, 发现必须要自建一个应用服务器才能从客户端发送通知到上游, 我担心这样会有人因为可能存在隐私问题而放弃使用, 就没有加入这方面的功能. 不知道 Pushbullet 需不需要自建服务器?
    BlackGlory
        7
    BlackGlory  
    OP
       2016-08-26 11:25:15 +08:00
    @qiayue 谢谢, 有网址可以观摩一下吗?
    greatghoul
        8
    greatghoul  
       2016-08-26 11:29:07 +08:00
    做了我一直想做的事,非常支持。
    qiayue
        9
    qiayue  
       2016-08-26 11:37:49 +08:00
    @BlackGlory 还没正式上线,过段时间吧
    yxjxx
        10
    yxjxx  
       2016-08-26 12:34:15 +08:00
    暴力膜,不可取。

    不过楼主搞的这个扩展啊 excited
    DlYgod
        11
    DlYgod  
       2016-08-26 12:44:51 +08:00
    赞赞赞!
    xream
        12
    xream  
       2016-08-26 13:03:10 +08:00
    能做到点击通知后不直接跳转而是执行回调吗...比如实现点击 inbox 通知后优先切换到已经打开的 inbox 网页
    yehon
        13
    yehon  
       2016-08-26 13:08:13 +08:00 via iPhone
    楼主, 2 我不是技术,就是请教下: IFTT 是不是也有这功能?
    haocity
        14
    haocity  
       2016-08-26 13:11:36 +08:00
    赞赞赞!
    BlackGlory
        15
    BlackGlory  
    OP
       2016-08-26 13:51:05 +08:00
    @xream 执行回调应该是没法做到了, 任务代码的执行环境与扩展本身是隔离的, 之间的通信全是纯文本, 如果传回调的话, 免不了要在扩展的运行环境里执行自定义的代码, 将有可能污染到扩展的运行环境. 你提的优先切换到已打开页面的想法很好, 我会试着在之后的版本加上, 谢谢反馈.
    BlackGlory
        16
    BlackGlory  
    OP
       2016-08-26 13:53:08 +08:00
    @yehon IFTTT 需要网络服务接入 IFTTT, 提供的 Recipes 自由度也很有限.
    sinalvee
        17
    sinalvee  
       2016-08-26 14:04:55 +08:00
    挺不错的
    但是好想吐槽这个图标……
    fatedier
        18
    fatedier  
       2016-08-27 02:12:41 +08:00
    @BlackGlory 赞一个,写了一个获取 github 未读通知的脚本,不过不知道 Stage 的功能能否在脚本中设置是否启用,我希望每隔一段时间检查一次未读的通知,只要还未读取就会一直提醒,简单看了下好像和 Stage 的功能有些冲突。
    BlackGlory
        19
    BlackGlory  
    OP
       2016-08-27 10:20:02 +08:00   ❤️ 1
    @fatedier Stage 只会弹出新的消息, 所以确实存在冲突. Stage 是根据 title + message 来判断 notification 是否重复的, 你可以往 message 里加上一个会随时间改变的量, 这样 Stage 就会将 notification 判断为新的消息, 继而弹出提醒. 你也可以在创建完任务后启用“弹出的通知需要用户交互”, 这样通知就会一直存在到你点击通知为止.
    BlackGlory
        20
    BlackGlory  
    OP
       2016-08-29 11:13:16 +08:00
    @crystom 我更新了 0.9.0 版本, 现在可以支持 Pushbullet, 请参考 http://docs.gloria.pub/advanced/notification-reducer.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3412 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:43 · PVG 12:43 · LAX 20:43 · JFK 23:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.