Git Product home page Git Product logo

leetcoderating's Introduction




LeetCodeRating,一款显示题目对应周赛难度分的浏览器插件。
支持中文和英文双站点,安装英文版本切换请切换github tag为english

📱 兼容性&安装

请注意: 英文版只有题库页面,tag页面和题目页面展示周赛分,并且不支持其余中文站功能 安装英文版本请切换github tag为english

Note: The English version only shows the difficulty rating of the question on the gallary page (problemset), the tag page and the question page, and does not support other functions in CN site. Click here to switch|点我直接切换

LeetCodeRating|一款显示题目对应周赛难度分的浏览器插件。

在使用脚本之前,你需要为浏览器安装脚本管理器插件。

经过测试,我们确定兼容以下浏览器和插件用于安装此脚本。

🌐 浏览器支持(任选其一即可)

  • Chrome 或 基于 Chromium 内核的浏览器 (Edge、360浏览器、CentBrowser等) *推荐
  • Firefox *功能兼容,但并非最佳性能

🙈 浏览器需要安装的脚本管理器插件

📄 安装脚本 (求star ヾ(≧▽≦*)o)

  • 从 GreasyFork 安装 通过 GreasyFork 安装脚本: 点我

🧪 支持的操作系统

  • Windows、MacOS、Linux 等支持 Chrome 或 Firefox 浏览器的所有操作系统 *移动平台如 iOS、Android 除外

🐒 插件说明

  • 周赛分数据的地方才会显示分数没有显示原有的难度

  • 界面没有改变的话只是因为对应的数据没有收录导致的

  • 当前所有的数据都出自项目: https://zerotrac.github.io/leetcode_problem_rating/
    项目设计初衷来自灵佬的视频: https://www.bilibili.com/video/BV1rS4y1s721/ | 训练技巧,上分技巧 部分

    • ps: 只描述了重要更新内容~

      💡1.1.3 更新:目前支持tag页面和题库页面显示难度分

      💡1.1.4 更新:支持题目界面problems显示难度分

      💡1.1.7 更新: 经反馈每次都重新获取数据过于影响性能,现已修改为一天获取一次

      💡1.2.0 更新: 修改具体问题页面UI,和题库页面保持一致,有难度分直接替换原本的难度标识

      💡1.2.1 更新: 增加对应周赛链接

      💡1.2.9 更新: 增加具体问题页面侧边栏题目中也显示难度分

      💡1.3.3 更新: 增加具体问题页面竞赛题属于Q几(周赛链接旁边)

      💡1.4.8 更新: 兼容新版pb内测页面

      💡1.6.1 更新: 使新版ui中题目提交记录界面趋向于旧版设计

💡 脚本效果 (求star ヾ(≧▽≦*)o)

image8

image1

image2

image5

image-20220912001243159

image4

image6

image7

image9

image10

image11

image12

image13

🚀 贡献

非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
要求如下:

  1. 修改版本号信息:
  • 如果第三位<10,将第三位+1,如果第三位=10,将第二位+1,第三位=0
  • 例:1.1.9 => 1.2.0; 1.1.3 => 1.1.4;
// @version      1.1.9
  1. 将更新描述在最上方加上一行,修改版本号(要求同上),并修改更新描述:
// @note    2022-09-07 1.1.9 (更新描述)

LeetCodeRating遵循 Contributor Covenant 行为规范。

❤️ 捐助特别鸣谢

捐助者 金额 渠道 时间 作者寄语
**君 8.8元 支付宝 2022-09-08 谢谢大佬支持~
A*w 2.0元 微信 2023-04-04 谢谢捧场~

🍬最后

如果有帮助到你,请给repo点个star,让更多的人看到 ~ ("▔□▔)/

License

License

Supported by

JetBrains Logo (Main) logo

leetcoderating's People

Contributors

chalkydoge avatar github-actions[bot] avatar hhgnbz avatar quzard avatar wwwld1 avatar zhang-wangz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

leetcoderating's Issues

Feature Request: 支持按Rating区间查看问题

背景

如题,希望支持按照Rating 区间查看问题,例如2000至2499这样的区间。

其效果如:https://huxulm.github.io/lc-rating/#/zen。但LC rating不支持题目解答状态的同步。这个issue 提到可以给它添加状态的localStorage存储并手动维护。 但是实际上手动维护非常不方便。

探索

我探索了一下leetcode的GraphQL接口,可能并不能支持按照title/id查询。直接去修改问题列表页也并非不可,但是可以预见相当麻烦。

我认为可以借由学习计划功能实现,因为学习计划页面使用的字段、涉及的逻辑较少,实现起来更加方便。一个初步的做法如下:

  1. 【现状】我们现有问题Rating的JSON和当前用户所有解答记录的接口。
  2. 【修改】为用户提供一个学习计划id,例如byrating,这样访问https://leetcode.cn/studyplan/byrating/就可以进入学习计划页面。
  3. 【现状】当前的逻辑是,用户访问这个学习的时候,会使用byrating请求GraphQL接口。若无此学习计划则接口不会返回值。
  4. 【修改】拦截对这个学习计划id的请求,用根据Rating数据和用户解答记录,构造相同形状的数据。
  5. 【修改】将难度文案替换为问题Rating。

这样就完成了按照Rating区间查看问题,且问题的解答状态基本可用。

如何恢复旧版提交界面ui?

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

image
hello ? 这是您的新版提交页面ui,能否恢复到旧版本的那种呢?类似下面这种
image

获取节点失败 应当不执行

添加vx heymanwz 可直接与作者沟通

控制台报错会造成有一点卡顿:

随便一个题目

没有判断节点是否存在,不断重复获取

image

代码1246 行和 1254

1246

 let pbarr = overflow?.childNodes[0]?.childNodes[1]?.childNodes[0];
  if(!pbarr){
     return;
  }

1254

let pbName = onepb?.childNodes[0]?.childNodes[1]?.childNodes[0]?.textContent
if(!pbName){
    continue;
}

image

对应周赛链接存在问题

update: 打扰抱歉,看来显示不了是因为中文站没有对应的周赛。
一点建议:获取中文站的最早一个周赛场次,如果当前的场次比它小则跳到主站去。
这样至少比一直显示空白好一点,没有错误提示的话会以为自己的网速有问题。

请描述你遇到的问题:

比如对于 此题目,插件显示为 第69场周赛Q2,点进去之后会一直刷不出东西
原因是leetcode中文站只有一部分周赛,剩下的在主站才有。
而对应的双周赛 是多出来一个bi的。

不懂这个标签怎么搞,这个应该是bug 而非 [help wanted]、

Bug report

  1. 这个load函数应该没有执行, urlchang没有dispatch
  2. 这种判断最好放在外部, 如果没有开启这个, 就不应该调用getTagData
    if (!GM_getValue("switchtag")) return;
  3. 这个querySelector返回值是null, 这个条件成立是因为== , 建议规范下
    let t = document.querySelector(".text-title-large")
  4. 这个逻辑应该是有问题的, t1在有些页面切换的时候, 执行中的handler(func)并不会把t1赋值为unknown (当页面 .text-lg存在, 但colorSpan不存在), 导致t1 == id 一直成立, 但是dom已经改变, 需要重新修改(复现场景: 打开一个题解, 然后直接返回题目描述, 难度标签不会被刷新成难度分)
    if (t1 != undefined && t1 == id) {
  5. 这样注册interval应该是有问题的, timeout太小, 导致handler执行频率太高了, 而且handler完成目标功能的时候就应该自我清除了, 而不是仅靠urlchange的时候清除handler(好况且好像urlchange也没触发过), 等urlchange的时候重新执行setInterval, 开启新的handler
    else id = setInterval(funcLst[targetIdx], timeout)
  6. 因为 1. 没有执行, 这个事件也没有触发过
    window.addEventListener("urlchange", () => {
  7. 你没有清除match时候原始的handler, 如果疯狂点题目描述页, urlchange事件会多次触发, 导致match时会执行多次的setInterval, 这样会同时执行很多个一样的handler, 而且这样操作页面切换的时候没办法把所有的interval清除, GM_setValue的时候interval id就被覆盖了
  8. 纸片人好像也不太需要(doge)

题目页面分数无法正常显示

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

今天下午发现在题库页面处,题目的难度分正常显示,但是点进后无法正常显示,只有简单中等困难的分级
leetcode

使用此插件是否符合官方规定-符合

请描述你遇到的问题:

注意到官网更新了条款,有一条是

3.1.7. 不得使用未经力扣授权或许可的任何插件、外挂、系统或第三方工具对“力扣”及相关服务的正常运行进行干扰、破坏、修改或施加其他影响。

请问使用此插件是否属于以上情况?

竞赛页上的 container 多出一层黄色背景且布局错乱

请描述你遇到的问题:

所有会影响到力扣网页的插件均己关闭,也没有安装其它的油猴脚本。

image

image

image

image

container 上会被增加一层奇怪的东西,把这两个属性注释掉就正常了:

image

系统是 macOS 13,浏览器是 Microsoft Edge。

模版测试信息

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

这是一条模版测试信息~

UI 建议

对于具体的题目页面:

  1. 在难度分没有的情况下,不显示「难度分未知」。
  2. 如果有难度分,可以直接替换「简单」「中等」「困难」为难度分。

[bug] 灵茶翻译部分 转义的小bug

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

03.13茶的题干没有展示完整;
发现是containerlingtea内容框内部的 中文翻译符号转义错误
把'<'识别成htmltag的一部分,导致题目渲染被吞了一部分

掉格式

需要的修改

checktrans函数把所有的'<','>'都转义一下就好啦😀
之前是replace 但是实际上可能有很多个符号,所以需要replaceAll

image

修改之后

image

提交时间功能

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

我使用的旧版UI, 提交代码之后, 我不希望看到本次提交花费的时间, 如果有可能的话, 可以单独设置一个开关吗?因为右下角的时间显示我还是挺喜欢的
image
image

[bug] 灵の试炼标签无限循环了

添加vx heymanwz 可直接与作者沟通

请描述你遇到的问题:

环境:Firefox浏览器 + 最新版脚本(支持灵佬文档跳转的版本)
图片

问题:
图片

开启脚本,进入页面后会不停的刷undefined 😂 不能正常使用了。。。
会很快就卡死了。感觉是难度那里的逻辑有点问题?(里面混进去一点奇怪的东西。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.