LeetCode 付费题目移除(兼容新版本力扣)

LeetCode 付费题目移除, 匹配 1.题目列表 2. 官方题单 3. 标签 tag 界面 4. 题目界面的左下角"题目列表"

Author
5z4!WW
Daily installs
1
Total installs
1,257
Ratings
3 0 0
Version
1.1.0.1
Created
2021-05-01
Updated
2021-09-11
License
GPL-3.0-only
Applies to

描述都在简介里了

仅适配 LCCN

已知问题:

  1. 在 tag 界面切换 tag 或在 problem-list 界面切换题单时不会进行付费题目的移除, 因为监视这个事件个人感觉没啥必要, 所以不进行适配
  2. 脚本出现了一个奇怪的问题, 从 https://leetcode-cn.com/problemset/all/ 进网页就会导致脚本失效, 而 https://leetcode-cn.com/problemset/all/?page=*** 这个形式脚本就有效, 并没有排查出来为什么, 直观的体现就是前者在换页时不会触发 Observer, 由于我没正经学过前端不了解这些组件的底层实现, 因此百思不得其解, 如果有大佬知晓还请指点迷津

ps: 由于力扣前端最近经常大改版, 失效了请反馈

09/11/2021 更新日志

1.1.0.0 版本进行了力扣新版界面适配, 同时取消了对旧版界面的适配, 如果有人需要的话请反馈, 我会重新进行添加

新版本更新了匹配算法, 能够减少遍历 dom 元素的次数, 原理是通过判断题号和通过 api 传递的数据进行匹配. 接收到的数据将会在本地进行缓存, 过期时间是一周, 由于接收题目列表数据(将近 900k, 比网页上一般的图片都要大)需要一定的时间, 因此初次使用脚本和缓存过期时移除付费题目可能存在一分钟之内的延迟.

ps: 如果觉得缓存过期时间过短的话, 可以自行修改脚本, 我就不提供图形界面上的配置了, 相关的配置规则我已经进行了注释, 见 line 44.

ps: 新版力扣真几把卡, 不知道这些前端怎么想的, 为了颜值牺牲性能? 我不是专业前端, 但是我感觉这种做法好像不怎么可取吧...... 而且新界面我感觉还没有旧版页面清爽