Skip to content

Commit 1e1b444

Browse files
authored
v1.6.0: 修复并提升一定速度
1 parent 5e62baa commit 1e1b444

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

SpeedRunHelper.user.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name Speedrun.com Helper
33
// @namespace https://github.com/jc3213/userscript
4-
// @version 1.5.0
4+
// @version 1.6.0
55
// @description Easy way for speedrun.com to open record window
66
// @author jc3213
77
// @match https://www.speedrun.com/*
@@ -15,7 +15,7 @@ let srFixed = fixedPanePlayer();
1515
let srDrag;
1616
let srY;
1717
let srX;
18-
let srPane = 0;
18+
let srPane = -1;
1919
let srWatch = location.pathname.split('/')?.[1];
2020
var {clientWidth, clientHeight} = document.documentElement;
2121

@@ -54,7 +54,7 @@ document.querySelector('main').addEventListener('contextmenu', (event) => {
5454
});
5555

5656
function mainboard(event) {
57-
speedrunRecord(event, 'div.flex.flex-row.flex-wrap.items-start.justify-start.p-2', (record) => {
57+
speedrunRecord(event, 'div.cursor-pointer.x-focus-outline-offset.overflow-hidden', (record) => {
5858
let [rank, time, player] = record.querySelectorAll('a > .truncate, a.x-username-truncate');
5959
return {url: rank.parentNode.href, rank, player, time};
6060
});
@@ -94,19 +94,19 @@ async function speedrunRecord(event, selector, callback) {
9494
return;
9595
}
9696
worker[id] = true;
97-
let title = '<div>Rank: ' + rank.innerHTML + '</div><div>Player: ' + player.innerHTML + '</div><div>Time: ' + time.textContent + '</div>';
97+
let title = `<div>Rank: ${rank.innerHTML}</div><div>Player: ${player.innerHTML}</div><div>Time: ${time.textContent}</div>`;
9898
if (speedrun[id]) {
9999
worker[id] = false;
100100
speedrun[id].style.cssText = style[id] = fixedPanePosition(speedrun[id].offset);
101101
return document.body.appendChild(speedrun[id]);
102102
}
103103
let response = await fetch(url);
104104
let html = await response.text();
105-
let xml = document.createElement('div');
106-
xml.innerHTML = html;
107-
let iframe = xml.querySelector('iframe[class]');
105+
let start = html.indexOf('<iframe');
106+
let end = html.indexOf('</iframe>', start) + 9;
107+
let iframe = html.substring(start, end);
108+
console.log(iframe);
108109
createRecordWindow(id, title, top, iframe);
109-
xml.remove();
110110
}
111111

112112
const recordHandlers = {
@@ -153,13 +153,19 @@ document.addEventListener('drop', (event) => {
153153
function createRecordWindow(id, title, top, player) {
154154
let pane = document.createElement('div');
155155
pane.id = 'speedrun-' + id;
156-
pane.offset = srPane * 30;
156+
pane.offset = ++srPane * 30;
157157
pane.className = 'speedrun-window';
158158
pane.draggable = true;
159-
pane.innerHTML = `<div class="speedrun-record">${title}</div>
160-
<div class="speedrun-menu"><div id="speedrun-minimum">➖</div><div id="speedrun-restore">🔳</div><div id="speedrun-maximum">🔲</div><div id="speedrun-remove">❌</div></div>`;
159+
pane.innerHTML = `
160+
<div class="speedrun-record">${title}</div>
161+
<div class="speedrun-menu">
162+
<div id="speedrun-minimum">➖</div>
163+
<div id="speedrun-restore">🔳</div>
164+
<div id="speedrun-maximum">🔲</div>
165+
<div id="speedrun-remove">❌</div>
166+
</div>
167+
${player}`;
161168
pane.style.cssText = style[id] = fixedPanePosition(pane.offset);
162-
pane.appendChild(player);
163169
pane.addEventListener('click', (event) => {
164170
let handler = recordHandlers[event.target.id];
165171
if (handler) {
@@ -168,7 +174,6 @@ function createRecordWindow(id, title, top, player) {
168174
});
169175
document.body.appendChild(pane);
170176
speedrun[id] = pane;
171-
++ srPane;
172177
worker[id] = false;
173178
}
174179

0 commit comments

Comments
 (0)