|
1 | 1 | // ==UserScript==
|
2 | 2 | // @name LeetCodeRating|显示力扣周赛难度分
|
3 | 3 | // @namespace https://github.com/zhang-wangz
|
4 |
| -// @version 2.4.0 |
| 4 | +// @version 2.4.1 |
5 | 5 | // @license MIT
|
6 | 6 | // @description LeetCodeRating 力扣周赛分数显现,支持所有页面评分显示
|
7 | 7 | // @author 小东是个阳光蛋(力扣名)
|
|
177 | 177 | // @note 2024-07-30 2.3.9 2.3.1补丁 修改题目完成情况ui(尝试过icon)更贴近力扣官方设计,修复如果有历史提交ac,但最新提交失败的情况下更新题目状态为notac的问题
|
178 | 178 | // @note 2024-07-31 2.3.10 2.3.1补丁 修复讨论区如果没有关注讨论发布者或者讨论发布者没有携带徽章的情况下无法触发observer监听导致不能添加ac情况的bug, 拓展ac显示范围至讨论区发布讨论时的预览和题目页发布讨论,详细可以自己测试体验~
|
179 | 179 | // @note 2024-07-31 2.4.0 2.3.1补丁 修复2.3.10的题目页拓展之后没有考虑lc需要时间请求后台刷新a标签的问题造成新增加题目页的识别错误bug
|
| 180 | +// @note 2024-08-16 2.4.1 上线新功能<每天最多只更新一次>,勾选后如果有更新,最多只会弹框一次,更新之后剩余如果再有更新会在第二天才弹窗 |
180 | 181 | // ==/UserScript==
|
181 | 182 |
|
182 | 183 | (async function () {
|
183 | 184 | 'use strict';
|
184 | 185 |
|
185 |
| - let version = "2.4.0" |
| 186 | + let version = "2.4.1" |
186 | 187 | let pbstatusVersion = "version11"
|
187 | 188 | const dummySend = XMLHttpRequest.prototype.send;
|
188 | 189 | const originalOpen = XMLHttpRequest.prototype.open;
|
|
230 | 231 | let pbName2Id = JSON.parse(GM_getValue("pbName2Id", "{}").toString())
|
231 | 232 | // 英文
|
232 | 233 | let pbNamee2Id = JSON.parse(GM_getValue("pbNamee2Id", "{}").toString())
|
| 234 | + // preDate为更新分数使用,preDate1为更新版本使用 |
233 | 235 | let preDate = GM_getValue("preDate", "")
|
| 236 | + let preDate1 = GM_getValue("preDate1", "") |
234 | 237 | // level数据
|
235 | 238 | let levelData = JSON.parse(GM_getValue("levelData", "{}").toString())
|
236 | 239 | // 中文
|
|
429 | 432 | function script_setting(){
|
430 | 433 | let menu_ALL = [
|
431 | 434 | ['switchvpn', 'vpn', '是否使用cdn访问数据', false, false],
|
| 435 | + ['switchupdate', 'switchupdate', '是否每天最多只更新一次', true, true], |
432 | 436 | ['switchTea', '0x3f tea', '题库页灵茶信息显示', true, true],
|
433 | 437 | ['switchpbRepo', 'pbRepo function', '题库页周赛难度评分(不包括灵茶)', true, false],
|
434 | 438 | ['switchdelvip', 'delvip function', '题库页去除vip加锁题目', false, true],
|
|
764 | 768 | `)
|
765 | 769 | }
|
766 | 770 | } else {
|
767 |
| - console.log(GM_getValue("switchpbstatusLocation")) |
768 | 771 | if(GM_getValue("switchpbstatusLocation")) {
|
769 | 772 | GM_addStyle(`
|
770 | 773 | circle.mycircle {
|
|
1877 | 1880 | }
|
1878 | 1881 | let t1 // pb
|
1879 | 1882 | let pbCnt = 0
|
| 1883 | + let pbCnt2 = 0 |
1880 | 1884 | function getpb() {
|
1881 | 1885 | let switchrealoj = GM_getValue("switchrealoj")
|
1882 | 1886 | // 搜索功能
|
|
1894 | 1898 | }
|
1895 | 1899 | // 流动布局逻辑
|
1896 | 1900 | if (isDynamic) {
|
| 1901 | + // pb其他页面时刷新多次后也直接关闭 |
1897 | 1902 | let t = document.querySelector(".text-title-large")
|
1898 | 1903 | if (t == null) {
|
1899 | 1904 | t1 = "unknown"
|
1900 | 1905 | pbCnt = 0
|
| 1906 | + if (pbCnt2 == shortCnt) clearId("pb") |
| 1907 | + pbCnt2 += 1 |
1901 | 1908 | return
|
1902 | 1909 | }
|
1903 | 1910 |
|
|
2140 | 2147 | lcCnt = 0 // ✅
|
2141 | 2148 | tagCnt = 0
|
2142 | 2149 | pbCnt = 0 // ✅
|
| 2150 | + pbCnt2 = 0 // ✅ |
2143 | 2151 | pbsideCnt = 0 // ✅
|
2144 | 2152 | companyCnt = 0 // ❌,因为已经搁置(需要vip),所以暂时关闭该功能
|
2145 | 2153 | pbListCnt = 0 // ✅
|
|
2293 | 2301 | getPromiseLevel()
|
2294 | 2302 |
|
2295 | 2303 | // 版本更新机制
|
| 2304 | + let now = getCurrentDate(1) |
| 2305 | + preDate1 = GM_getValue("preDate1", "") |
| 2306 | + let checkVersionLayer = GM_getValue("switchupdate")? (preDate1 == "" || preDate1 != now):true; |
2296 | 2307 | GM_xmlhttpRequest({
|
2297 | 2308 | method: "get",
|
2298 | 2309 | url: versionUrl + "?timeStamp=" + new Date().getTime(),
|
|
2307 | 2318 | let v = json["version"]
|
2308 | 2319 | let upcontent = json["content"]
|
2309 | 2320 | if (v != version) {
|
2310 |
| - layer.open({ |
2311 |
| - area: ['500px', '300px'], |
2312 |
| - content: '<pre class="versioncontent" style="color:#000">更新通知: <br/>leetcodeRating有新的版本' + v +'啦,请前往更新~ <br/>' + "更新内容: <br/>" + upcontent + "</pre>", |
2313 |
| - yes: function (index, layer0) { |
2314 |
| - let c = window.open(sciptUrl + "?timeStamp=" + new Date().getTime()) |
2315 |
| - c.close() |
2316 |
| - layer.close(index) |
2317 |
| - } |
2318 |
| - }); |
| 2321 | + if (checkVersionLayer) { |
| 2322 | + console.log("弹窗更新栏一次..") |
| 2323 | + layer.open({ |
| 2324 | + area: ['500px', '300px'], |
| 2325 | + content: '<pre class="versioncontent" style="color:#000">更新通知: <br/>leetcodeRating有新的版本' + v +'啦,请前往更新~ <br/>' + "更新内容: <br/>" + upcontent + "</pre>", |
| 2326 | + yes: function (index, layer0) { |
| 2327 | + let c = window.open(sciptUrl + "?timeStamp=" + new Date().getTime()) |
| 2328 | + c.close() |
| 2329 | + layer.close(index) |
| 2330 | + preDate1 = now |
| 2331 | + GM_setValue("preDate1", preDate1) |
| 2332 | + console.log("update preDate1 success") |
| 2333 | + } |
| 2334 | + }); |
| 2335 | + } else { |
| 2336 | + console.log("有新的版本,但是已经弹窗过且开启了最多只更新一次功能,等待明天弹窗..") |
| 2337 | + } |
2319 | 2338 | } else {
|
2320 | 2339 | console.log("leetcodeRating难度分插件当前已经是最新版本~")
|
2321 | 2340 | }
|
|
0 commit comments