如何获得本地新坡的推送 #Ingress

如何获得本地新坡的推送 #Ingress

频道道长

“获得本地新坡上线通知”这个需求由来已久,折腾了好几种实现方式。虽然最后还是靠在云上跑几行代码安逸了下来,但中间有段时间是用 #NoCode 实现的,思路值得分享。特别说明我们不是要撸Intel的数据,因为会违反ToS。得益于真正神秘的工程师频道 @newportal ,咱们可以撸它,给Ta的推送信息按地名过个滤就完事了。下面就来说说我都用过哪些方式来实现这个过滤。想直接看最终方法的可以跳过方法一、二,直接看方法三。

↘方法一:用 Telegram 的频道订阅 Bot @junction_bot

@junction_bot 的核心功能是:不成为频道订阅者,却能获取频道推送。

@junction_bot 能做啥?

这 bot 还支持给内容过滤,我一开始就是利用的这个功能:

@junction_bot 支持给订阅内容设置自定义过滤

因此,订阅了 @newportal 后,来一条命令即可:

/filter @newportal mustHave 日本
@junction_bot 过滤命令提示
@junction_bot 推送效果

‼方法一的优缺点:只要 @junction_bot 给力就没问题,问题有时候 Ta 不给力。😂

↘方法二:利用 TelegramChannel 转 RSS 工具给 @newportal 生成个 RSS feed,然后再过滤。

@newportal 这个真正工程师频道也是厉害,每秒中能发布全球十几个新坡上线消息,只好动用抓取速度最快的 TelegramChannel 转 RSS 工具为其生成 RSS Feed 。这里不表“什么是 RSS ?”了,不了解的请自行放G家去搜。我已知的抓取频率最高的服务是这家 https://tg.i-c-a.su/

tg.i-c-a.su

还可以选择一次抓 100 条内容,即

https://tg.i-c-a.su/rss/newportal?limit=100

然后,用了另一家专门自定义 RSS feed 内容过滤的服务来过滤上面这个 feed:https://siftrss.com/

专门过滤 RSS Feed 的工具 siftrss

最后,找来 Telegram 上最快的 RSS 订阅 bot : @el_monitorro_bot ,来订阅通过 siftrss 生成的 feed。这个 bot 可以每分钟查阅一次 feed 有没有新条目。

@el_monitorro_bot 订阅示例

方法二的优缺点:还算堪用,推送挺及时的。我做了个测试发现了问题:我用这个最快的 RSS 订阅 bot ,直接订阅 https://tg.i-c-a.su/rss/newportal?limit=100 。一段时间后,@el_monitorro_bot 推送的条目数,大概是 @newportal 发布数的四分之三左右。也就是说,还是会有缺失,何况中间还要受 siftrss 的抓取频率的影响。

方法三:和方法二同套路,区别在于只给过滤后的结果生成 RSS feed。

@newportal 的超快更新频率是个坎儿,必须坚决绕开。所以先过个滤吧,把更新频率降下来。哪里可以过滤呢?https://t.me/s/newportal 这个频道页上的搜索框可以:

箭头处填入关键词回车,即可得到搜索结果页

填入“朝阳区”搜索后,页面链接从 https://t.me/s/newportal 变为

https://t.me/s/newportal?q=%E6%9C%9D%E9%98%B3%E5%8C%BA

看到这个页面有独立url,不禁大喜。掏出 Everything is RSSible 的 RSSHub 就打算生成 RSS feed 了,可惜发现其只能为频道生成 RSS feed,搜索页还不支持。

RSSHub 可以为 TG 频道生成 RSS Feed

难道 #NoCode 要失败了? 必须 coding 个新 RSSHub 路由了么? 并不。你还可以去给 RSSHub 提个 issue 让其它大佬去 coding (这句该有删除线,可惜Telegraph并不支持🤣)。不抱希望地拿 RSSHub 的前辈 RSS-Bridge 试了下,竟然发现是支持给搜索结果生成 RSS Feed 的!赞爆!

RSS-Bridge logo

我是用的项目 Wiki 里的一个 Public Host:托管在隐私保护工具集成站 Snopyta 上的 https://rss-bridge.snopyta.org/。填的 Username 如下:

@newportal?q=朝阳区
Username 处的填法

然后点击 Atom 或 Mrss 都行,剩下的就是用 TG RSS bot 或其它 RSS 阅读器订阅生成的 RSS Feed 了。大功告成,完美 #NoCode 。

后续

为什么开头还是说跑了几行代码才安逸呢?因为我贪心啊。

首先,光有新坡还不够,我还如法炮制了基于 @oprBrainstorming 的准坡推送和基于 @Premovedingress 的删坡推送。可惜的是, @oprBrainstorming 里1分送走情况普遍、多人打分会重复推送,因此被迫写了个脚本正则一下、做个筛选并实现同个申请坡仅推送一次。这是因为我的需求并不是看打分,而是想知道什么东西被其它特工申过并已在评。

其次,我想定制推送文本,去掉一些无关紧要的内容,添加一些 tag 。这就只能用 coding 来实现了。

Update(20200708): RSSHub 也已支持为 Telegram 公开频道的关键词搜索页生成 RSS Feed 。大家又多了个选择。

RSSHub 于20200708更新后,支持了为 Telegram 公开频道的关键词搜索页生成 RSS Feed



Report Page