v2ex 中查看回复所属的对话详情的正确姿势

2017-10-24 23:05:22 +08:00
 hanzichi

如果玩过知乎,肯定看到过「对话详情」,即查看某个讨论下某两个人之间的对话详情。但是 v 站没有这个功能,个人觉得十分有必要,经常某人回复我,却忘了之前我说过什么,尴尬,还得一层层往上寻找。遂在我开发的 chrome 扩展 v2ex-helper 中加入了这个功能。

使用是这个样子的:

开发过程中几个需要注意的点:

  1. 在有且仅有一个 @ 的楼层加入「对话详情」按钮,层主记为 A,回复的人记为 B
  2. 遍历该主题贴所有楼层,找到 A to B 或者 B to A 的帖子
  3. 以上这点需要注意需要同时包括 A to B,C。。或者 B to A,C。。 的帖子
  4. 找到 A 和 B 的回复帖(回复主题,没有指定的回复人)
  5. 展示步骤 2 和 4 找到的会话

比较蛋疼的情况是 v 站回复可以一对多,所以我把第三步的情况也包括了。为了对话的完整性,抱着宁可错杀一千也不放过一个的心理,做了第 4 步操作。

插件安装方式以及源码详见 https://github.com/hanzichi/v2ex-helper,欢迎 bug 以及各种建议意见

终于在程序员日当天写完了,回家

3665 次点击
所在节点    程序员
12 条回复
flowfire
2017-10-24 23:21:42 +08:00
翻页的话会调接口取上一页的数据么
autoxbc
2017-10-25 07:10:36 +08:00
@flowfire 看了代码是每次点击遍历前面的全部页面提取,原则上有性能问题

另外这种遍历的频度比较高的话,会触发 V2EX 的反爬规则,我已成功被封 ip,翻墙上来含泪回复

不怕死的可以装好扩展,猛击这个帖子
https://www.v2ex.com/t/377051
autoxbc
2017-10-25 08:02:45 +08:00
不好意思泼冷水了,看到 Access Denied 有点情绪

推荐楼主用这个 topic api 建立对话流,自带头像数据
https://www.v2ex.com/api/replies/show.json?topic_id=400404
49gd
2017-10-25 08:34:01 +08:00
的确比较麻烦 看回复的话
wxyz
2017-10-25 08:58:58 +08:00
我也准备开发一个类似的插件呢,看到这个插件很赞~

@autoxbc 这个接口好用
cisisustring
2017-10-25 09:09:55 +08:00
太好了,看到这么好的 api 手痒难耐,等我有空了造一个更差的
hanzichi
2017-10-25 09:37:05 +08:00
@autoxbc 卧槽,我居然忘了这个 api,多写了好多脏代码,感谢提醒

btw,我看 [api 说明]( https://www.v2ex.com/p/7v9TEc53) 说请求会被缓存,不是程序去爬的话,应该不至于被封 ip 把 ..
hanzichi
2017-10-25 09:38:56 +08:00
@flowfire 会,但是我做的不好,有 api,详见二楼
hanzichi
2017-10-25 09:42:07 +08:00
@autoxbc 确实 403 了,wtf,这是被封 ip 了?
czjxy881
2017-10-25 10:59:37 +08:00
居然有这个 api
zhenizhui
2017-11-01 19:40:27 +08:00
我好奇的是怎么,一开始 v2 就没有这个功能?
hanzichi
2017-11-01 20:56:12 +08:00
@zhenizhui maybe

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

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

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

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

© 2021 V2EX