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

2016-08-26 10:19:07 +08:00
 BlackGlory

自制的 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

12341 次点击
所在节点    分享创造
20 条回复
mikuazusa
2016-08-26 10:38:09 +08:00
聚合通知,挺好的,很久以前就有这样的想法,这个结合 Chrome OS 肯定很好用,期望能移植到手机去
mpco
2016-08-26 10:45:52 +08:00
很不错
qiayue
2016-08-26 10:51:52 +08:00
楼主,已把你的作品收录到我的网站
crystom
2016-08-26 10:53:22 +08:00
@mikuazusa chromeos 即将支持 Googleplay 以后可能和安卓合体
crystom
2016-08-26 10:56:17 +08:00
能不能触发事件后,除了弹出 notification 之外还能向指定地址发请求。以便通过 pushbullet 等服务在手机上收到通知。
BlackGlory
2016-08-26 11:24:03 +08:00
@crystom 我也有这个想法, 昨天看了一下 FCM 的文档, 发现必须要自建一个应用服务器才能从客户端发送通知到上游, 我担心这样会有人因为可能存在隐私问题而放弃使用, 就没有加入这方面的功能. 不知道 Pushbullet 需不需要自建服务器?
BlackGlory
2016-08-26 11:25:15 +08:00
@qiayue 谢谢, 有网址可以观摩一下吗?
greatghoul
2016-08-26 11:29:07 +08:00
做了我一直想做的事,非常支持。
qiayue
2016-08-26 11:37:49 +08:00
@BlackGlory 还没正式上线,过段时间吧
yxjxx
2016-08-26 12:34:15 +08:00
暴力膜,不可取。

不过楼主搞的这个扩展啊 excited
DlYgod
2016-08-26 12:44:51 +08:00
赞赞赞!
xream
2016-08-26 13:03:10 +08:00
能做到点击通知后不直接跳转而是执行回调吗...比如实现点击 inbox 通知后优先切换到已经打开的 inbox 网页
yehon
2016-08-26 13:08:13 +08:00
楼主, 2 我不是技术,就是请教下: IFTT 是不是也有这功能?
haocity
2016-08-26 13:11:36 +08:00
赞赞赞!
BlackGlory
2016-08-26 13:51:05 +08:00
@xream 执行回调应该是没法做到了, 任务代码的执行环境与扩展本身是隔离的, 之间的通信全是纯文本, 如果传回调的话, 免不了要在扩展的运行环境里执行自定义的代码, 将有可能污染到扩展的运行环境. 你提的优先切换到已打开页面的想法很好, 我会试着在之后的版本加上, 谢谢反馈.
BlackGlory
2016-08-26 13:53:08 +08:00
@yehon IFTTT 需要网络服务接入 IFTTT, 提供的 Recipes 自由度也很有限.
sinalvee
2016-08-26 14:04:55 +08:00
挺不错的
但是好想吐槽这个图标……
fatedier
2016-08-27 02:12:41 +08:00
@BlackGlory 赞一个,写了一个获取 github 未读通知的脚本,不过不知道 Stage 的功能能否在脚本中设置是否启用,我希望每隔一段时间检查一次未读的通知,只要还未读取就会一直提醒,简单看了下好像和 Stage 的功能有些冲突。
BlackGlory
2016-08-27 10:20:02 +08:00
@fatedier Stage 只会弹出新的消息, 所以确实存在冲突. Stage 是根据 title + message 来判断 notification 是否重复的, 你可以往 message 里加上一个会随时间改变的量, 这样 Stage 就会将 notification 判断为新的消息, 继而弹出提醒. 你也可以在创建完任务后启用“弹出的通知需要用户交互”, 这样通知就会一直存在到你点击通知为止.
BlackGlory
2016-08-29 11:13:16 +08:00
@crystom 我更新了 0.9.0 版本, 现在可以支持 Pushbullet, 请参考 http://docs.gloria.pub/advanced/notification-reducer.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/301858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX