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

油猴脚本“V2EX - 超级增强”:体验更现代化的 V2EX!

  •  7
     
  •   zyronon · 2023-04-07 11:32:28 +08:00 · 9798 次点击
    这是一个创建于 620 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天看到有个 V 友发贴做了个 V2 的浏览器插件,回复里看到大家都在问有没有油猴脚本。

    为了 V 友的摸鱼体验,我连夜肝了一个脚本出来 (过年比较闲,做了一个功能类似的油猴脚本,到目前安装量 600 多,自用了几个月后,还是比较满意的)

    安装地址: https://greasyfork.org/zh-CN/scripts/458024

    主要功能

    • 回复以楼中楼的方式展示

      • 提供三种排序方式:按感谢排序、楼中楼、V2 原版
      • 一次性加载所有回复,保持楼中楼回复解析正确
      • 超过 15 层嵌套,默认隐藏剩余回复,点击可展开,保证嵌套过多不会导致页面变形 0.png 1.png
    • 首页、节点页面,可选预览帖子详情 2.png

    • 列表点击帖子弹框显示详情(不跳转页面),异步加载帖子内容

      这里说一下,点击列表帖子,默认是弹框显示详情。想在新标签页打开,可以用鼠标中键点击帖子名字

    • 操作按钮(感谢、收藏、回复、隐藏)异步请求,不会刷新页面

    • 划词 base64 解码

    • 自动加载下一页

    • 自适应屏幕宽度

    • 回复指定用户添加楼层号(尽管本脚本不以楼层号来解析,原因在下面。但为了保证其他脚本显示正常也默认加上)

    • 支持黑暗模式

    关于楼中楼

    • 注:其他的脚本的楼中楼回复功能。是基于当前页面做解析。如果回复没超过一页,显示正常,如果回复超过一页,楼中楼就会显示的莫名奇妙。换而言之,如果他的帖子详情要翻页,那楼中楼绝对是错误的
    • 注:v2 的帖子详情页,打开时并不总是第一页,比如回复有 3 页时,打开帖子详情页展示的最后一页的回复
    • 注:本脚本不以‘#楼层’ 来做解析。因为 v2 的回复被忽略后,会占据原来的楼层。导致按‘#楼层’解析,会出问题

    注意事项

    本脚本与其他脚本不兼容,因为本脚本会删除网页元素

    源码

    GitHub 源码仓库: https://github.com/zyronon/v2ex-script

    其他

    有很多功能想加,但怕脚本没人用...成自嗨了

    第 1 条附言  ·  2023-04-07 14:32:23 +08:00
    各位 V 友使用本脚本时,请务必暂时关闭其他脚本。有冲突会导致报错无法正常使用。
    第 2 条附言  ·  2023-04-09 00:19:08 +08:00

    大家提的bug,我都连夜修复了哈。我改了首页逻辑,不再删除dom了,所以其他脚本应该也可以使用了。另外自动加载下一页这个功能暂时去掉了。

    • 修复Edge上无法使用的问题
    • 修复跨域问题
    • 修复楼中楼解析错误的问题
    • 优化一下楼中楼的线条
    • 优化其他UI设计
    • 重构首页逻辑,不再删除dom
    • 添加键盘事件,以适配vim
    • 修复在子节点列表页面,无法加载的问题
    • 添加支持右侧的今日热议主题和最近查看过的主题
    第 3 条附言  ·  2023-04-10 16:37:54 +08:00
    • 支持给用户打标签啦,数据存在自己V2账号的记事本里面,换了浏览器也能同步
    • 后续考虑做公共标签
    63 条回复    2023-12-13 18:32:46 +08:00
    HongJay
        1
    HongJay  
       2023-04-07 11:33:43 +08:00
    还能 base64 解码
    JasonFW
        2
    JasonFW  
       2023-04-07 11:34:11 +08:00
    我先来
    JasonFW
        3
    JasonFW  
       2023-04-07 11:38:57 +08:00
    能把 V2 的节点抬头冻结吗?每次都往回拉
    zyronon
        4
    zyronon  
    OP
       2023-04-07 11:43:55 +08:00   ❤️ 1
    @JasonFW #3 可以加,我下次更新给 V2 的节点加个 css 就行了,不过更推荐你使用 Chrome 的鼠标手势插件...按住右键上划就到顶部了
    lovestudykid
        5
    lovestudykid  
       2023-04-07 11:50:22 +08:00
    效果不错,但是体验太激进了,无感一点好
    jiezaichan
        6
    jiezaichan  
       2023-04-07 12:18:39 +08:00
    @zyronon #4 非常好用 感谢!
    WasteNya
        7
    WasteNya  
       2023-04-07 12:48:05 +08:00
    昨天的和这个都体验了 10 来分钟,虽然都卸载了,感觉这款实用性强一个档次,star 了,主要是我用 edge 在列表那见不进去,然后有时楼中楼无法加载,不知咋回事
    ooops
        8
    ooops  
       2023-04-07 13:02:14 +08:00
    有一个点的优化点:搭配 vim 使用时,翻页键不管用了,可以兼容下嘛
    ooops
        9
    ooops  
       2023-04-07 13:09:15 +08:00
    补充下,应该是没有 focus ,我点一下 popup 就可以使用了。
    xulianbang
        10
    xulianbang  
       2023-04-07 13:18:36 +08:00 via iPhone
    能否优化一下楼中楼的线条,看着好难受
    zyronon
        11
    zyronon  
    OP
       2023-04-07 13:50:35 +08:00
    @xulianbang #10 竖着的那根吗?
    rimutuyuan
        12
    rimutuyuan  
       2023-04-07 14:00:00 +08:00
    ![v2ex.gif]( https://s2.loli.net/2023/04/07/EoUgyj7RNOB8map.gif)

    我打开帖子是这样的,而且返回直接返回两层页面
    20210610204811
        13
    20210610204811  
       2023-04-07 14:04:57 +08:00
    但凡一个帖子超过一页就一直转圈,我现在已经把这个脚本暂时停了。
    night98
        14
    night98  
       2023-04-07 14:08:38 +08:00
    楼中楼可不可以参考贴吧那样显示,这种显示层级一多看起来很难受
    另外就是 edge 下面打开帖子有问题,详情里面没内容
    cxxxxx
        15
    cxxxxx  
       2023-04-07 14:09:57 +08:00
    首页右侧的今日热议主题和最近查看过的主题还是不支持详情页
    zyronon
        16
    zyronon  
    OP
       2023-04-07 14:19:07 +08:00
    @rimutuyuan 我这打开没问题,麻烦看下是不是有其他脚本和插件存在,禁用掉试试呢
    zyronon
        17
    zyronon  
    OP
       2023-04-07 14:29:57 +08:00
    @20210610204811 @night98 我这打开没问题,麻烦看下是不是有其他脚本和插件存在,禁用掉试试呢。edge 我也试过了没问题
    zyronon
        18
    zyronon  
    OP
       2023-04-07 14:30:32 +08:00
    @night98 #14 可以啊,只有一级是吧。下次更新加上
    ChillDude
        19
    ChillDude  
       2023-04-07 14:35:08 +08:00
    不登录的时候有空白框
    vicinity5139
        20
    vicinity5139  
       2023-04-07 14:51:47 +08:00
    我这 vim 也用不了
    densuc
        21
    densuc  
       2023-04-07 16:29:25 +08:00
    用了一段时间了,目前发现的 bug 就是二级节点下比如二手交易节点,点击帖子然后关掉之后,链接不会自动变为之前的二级节点链接而是一直保持帖子的链接,导致后续加载不出来。
    不懂别人有没有这个问题。
    然后触发这个问题的时候,帖子的链接会重复嵌套,正常情况下比如是 /t/xxxx 会变成 /t/t/xxxx 。
    zyronon
        22
    zyronon  
    OP
       2023-04-07 16:32:22 +08:00
    @densuc #21 好的,谢谢反馈,尽快修复。之前怎么不去 greasyfork.org 反馈呀
    Rookie01
        23
    Rookie01  
       2023-04-07 16:33:25 +08:00
    昨天安装一开始好好的,后来打开任何帖子都是空白内容显示 0 点击 0 回复,重新安装也不行。

    另外鼠标中键点击帖子名字这个操作 对 Magic Mouse 有点不友好……
    fanxasy
        24
    fanxasy  
       2023-04-07 17:43:27 +08:00
    这演示的截图给我看乐了哈哈
    so2back
        25
    so2back  
       2023-04-07 17:57:55 +08:00
    niu
    unlighted
        26
    unlighted  
       2023-04-07 20:11:29 +08:00
    有个问题. 自动加载帖子会导致底部的节点无法选取到
    unlighted
        27
    unlighted  
       2023-04-07 20:11:54 +08:00
    然后开启脚本,会导致无法回复.报 403:unsafe url
    zyronon
        28
    zyronon  
    OP
       2023-04-07 20:15:18 +08:00
    @unlighted #27 好的,了解!
    vinbor
        29
    vinbor  
       2023-04-07 20:19:13 +08:00
    @rimutuyuan #12 我也是这种情况
    sunshower
        30
    sunshower  
       2023-04-07 20:49:10 +08:00
    与其它脚本冲突是指其他 v2 脚本还是所有脚本?
    stefwoo
        31
    stefwoo  
       2023-04-07 22:03:24 +08:00 via iPhone
    能否支持 ios ,我现在发现 ios 用 web 比客户端好用。😂
    shunia
        32
    shunia  
       2023-04-07 23:11:33 +08:00
    我顶了,我的意思是你加油做好点兄弟,那个楼中楼功能是绝杀,然而目前看起来整体不够稳定,而且不可配置也有点难受。另外建议把 V2EX plus 的关键性功能高亮楼主回复也加上。
    lovestudykid
        33
    lovestudykid  
       2023-04-07 23:25:25 +08:00
    @zyronon #17 因为不支持 v2ex.com ,我开始也一直转圈,后来才发现。另外这里也看到同时 @两个人就不行了
    lovestudykid
        34
    lovestudykid  
       2023-04-07 23:30:02 +08:00
    @lovestudykid #33 楼中楼的识别也有点问题,因为 V2EX 实际没有这个信息,匹配的你最后回复的消息?我上一条回复的是“@20210610204811 @night98 我这打开没问题,麻烦看下是不是有其他脚本和插件存在,禁用掉试试呢。edge 我也试过了没问题”
    zyronon
        35
    zyronon  
    OP
       2023-04-08 00:11:15 +08:00
    @sunshower #30 其他 v2 脚本
    lucacham
        36
    lucacham  
       2023-04-08 08:36:39 +08:00
    我现在用的是这个
    amrice
        37
    amrice  
       2023-04-08 12:41:13 +08:00
    好用,感谢 op 主开发此脚本!
    xulianbang
        38
    xulianbang  
       2023-04-08 12:54:20 +08:00
    @zyronon 对啊,特别是暗黑模式下,楼中楼竖线看着好难受,太密集了,改一下或者颜色浅一点呢
    superBearL
        39
    superBearL  
       2023-04-08 18:55:21 +08:00
    不错,支持
    zyronon
        40
    zyronon  
    OP
       2023-04-08 23:46:54 +08:00
    - 修复 Edge 上无法使用的问题
    - 修复跨域问题
    - 修复楼中楼解析错误的问题
    - 优化一下楼中楼的线条
    - 优化其他 UI 设计
    - 重构首页逻辑,不再删除 dom 。
    - 添加键盘事件,以适配 vim
    - 修复在子节点列表页面,无法加载的问题
    - 添加支持右侧的今日热议主题和最近查看过的主题

    @ooops
    @xulianbang
    @rimutuyuan
    @cxxxxx
    @vicinity5139
    @densuc
    @Rookie01
    @unlighted
    @lovestudykid
    @xulianbang
    zyronon
        41
    zyronon  
    OP
       2023-04-08 23:53:39 +08:00
    @lovestudykid

    匹配规则是,你回复的那个人,的最后一次回复。

    比如说:A 连续评论了 3 条,占据 1 ,2 ,3 楼。然后你回复他第一条( 1 楼)。

    解析出来的结果是你回复了的最后一条,也就是第 3 楼。

    目前我也没办法,以楼层号来解析的话,隐藏和 Block 会导致使用者看到的楼层不一致。

    比如说,你回复 A 时,在内容里面指定了回复 #1 。

    你回复完成之后,把 A 的回复全部隐藏或者 Block 掉。那么原先的楼层号并不会跟着 A 的回复一起消失。就会导致你的回复明明 @A #1 ,但此时的#1 却是另一个人。
    mdyh
        42
    mdyh  
       2023-04-09 06:53:58 +08:00
    好用。谢谢!!!
    xulianbang
        43
    xulianbang  
       2023-04-09 12:20:31 +08:00
    @zyronon #40 大佬太强了,更新速度这么快,现在有个问题,点击帖子是以弹窗形式展示(是盖在原有网页上的一层,右边有 2 条上下滑动条,背景颜色不统一,只盖住了中间部分),点击右上角 X 回到默认的网页,用的 EDGE 浏览器!有没有办法做到无感呢?
    lemen
        44
    lemen  
       2023-04-09 14:40:19 +08:00
    5rWL6K+V5LiA5LiLYmFzZTY06Kej56CB5aW95LiN5aW955So
    zyronon
        45
    zyronon  
    OP
       2023-04-09 16:16:07 +08:00
    @lemen #44 已修复无法解析中文的问题
    zyronon
        46
    zyronon  
    OP
       2023-04-09 16:21:59 +08:00
    @xulianbang #43
    出现 2 个滑动条的问题已修复。

    目前除了点击右上角的 X 回到默认的网页,也可以点两侧的透明处...

    至于无感,我不太明白你的意思。

    在列表点击帖子,要么网页跳转至详情页( V2 原来的那种),要么就是不跳转网页以弹框在当前页面显示详情啊。还有其他的 UI 展示形式吗?欢迎探讨,我这个弹框是仿的 Reddit.
    xulianbang
        47
    xulianbang  
       2023-04-10 19:43:18 +08:00
    @zyronon
    1 、无感指的是跳转详情页再弹出弹框太明显了,能否跳转至详情页,不弹窗直接在原页面上改变样式
    2 、不跳转网页在当前页面弹窗显示详情,右侧最近查看过的主题,热议主题不生效,
    3 、不跳转网页在当前页面弹窗显示详情有的能弹窗,有的不弹窗直接跳转详情
    KevinDo2
        48
    KevinDo2  
       2023-04-10 21:42:44 +08:00 via iPhone
    这个嵌套排序是怎么实现的?修改 原本 dom 还是什么
    zyronon
        49
    zyronon  
    OP
       2023-04-10 23:42:43 +08:00
    @KevinDo2 #48 获取帖子的所有回复,然后解析出每条回复的 @人员,再递归匹配即可
    PickOne
        50
    PickOne  
       2023-04-11 10:26:18 +08:00
    @rimutuyuan #12 我也遇到了,解决办法是把这个脚本在油猴里禁用,刷新页面就能显示了(虽然禁用了,但插件效果还在。。)
    zyronon
        51
    zyronon  
    OP
       2023-04-11 10:32:09 +08:00
    @PickOne #50 能过留个微信?我看下报什么错方便修复
    PickOne
        52
    PickOne  
       2023-04-11 10:44:10 +08:00
    @zyronon #51 Base64:bHV6eS05
    uxin
        53
    uxin  
       2023-04-11 17:58:26 +08:00
    有没有自动签到功能?
    zyronon
        54
    zyronon  
    OP
       2023-04-11 18:00:43 +08:00
    @uxin #53 暂时没有,可以用其他脚本先顶着
    bao3
        55
    bao3  
       2023-04-11 21:15:07 +08:00
    好用~~~太赞了。
    kaiger
        56
    kaiger  
       2023-04-12 09:58:44 +08:00
    好用,膜拜大佬
    20210610204811
        57
    20210610204811  
       2023-04-12 18:00:26 +08:00
    bug report:我实际上回复的是 3 楼。

    zyronon
        58
    zyronon  
    OP
       2023-04-12 18:08:09 +08:00
    @20210610204811 你这种情况以目前的解析方式是正确的,因为目前并不是按照楼层来作解析,这样可以保证所有的脚本使用者看到的回复,大多数情况下不出错,你可以看看我这个帖子里面 41 楼的解释。后续会加上以楼层号解析的功能
    Akkuman
        59
    Akkuman  
       2023-04-20 22:10:25 +08:00
    报错 Uncaught ReferenceError: Vue is not defined
    站点上其他油猴脚本已关闭
    harrozze
        60
    harrozze  
       2023-06-01 22:02:19 +08:00
    @zyronon 我给它加了个 base64 encode 的功能,因为感觉不够理想,没提 PR 。

    不够理想的原因是,这个功能大概率会用在输入框里输入自己微信的时候,而不是从文章或回复的内容里选择的时候用到。

    代码在 https://github.com/harrozze/v2ex-script
    s1e42NxZVE484pwH
        61
    s1e42NxZVE484pwH  
       2023-07-11 21:21:33 +08:00 via iPhone
    能加上移动端的适配吗楼主
    HaroldFinchNYC
        62
    HaroldFinchNYC  
       2023-10-31 11:21:24 +08:00
    看着很牛 B 的样子
    horizon
        63
    horizon  
       2023-12-13 18:32:46 +08:00
    ```
    parseA(a) {
    let href = a.href;
    let id;
    if (href.includes("/t/")) {
    id = href.substring(href.indexOf("/t/") + 3, href.indexOf("/t/") + 9);
    }
    return { href, id, title: a.innerText };
    },
    ```
    id 提取出问题了。。因为超过了 1000000 , 笑死。
    可以改为
    ```
    id = href.substring(href.indexOf("/t/") + 3);
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5287 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:21 · PVG 17:21 · LAX 01:21 · JFK 04:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.