-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsteam-ea-date.user.js
63 lines (53 loc) · 2.28 KB
/
steam-ea-date.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// ==UserScript==
// @name Steam EA Date
// @namespace https://github.com/Vinfall/UserScripts
// @version 0.2.3
// @author Vinfall
// @match https://store.steampowered.com/app/*
// @icon https://store.steampowered.com/favicon.ico
// @grant none
// @license MIT
// @description Show Early Access date on Steam card
// @description:zh-cn Steam 商店页面显示抢先体验发售日
// @run-at document-end
// ==/UserScript==
(() => {
function makeRow(_rowClass, subtitle, text) {
const row = document.createElement('div');
row.className = 'release_date';
const subtitleEl = document.createElement('div');
subtitleEl.className = 'subtitle column';
subtitleEl.textContent = subtitle;
const dateEl = document.createElement('div');
dateEl.className = 'date';
dateEl.textContent = text;
row.appendChild(subtitleEl);
row.appendChild(dateEl);
return row;
}
function addRow() {
const EA_TEXTS = [
{ text: 'Early Access Release Date:', label: 'EA Release:' },
{ text: '抢先体验发行日期:', label: '抢先体验:' },
{ text: '搶先體驗發行日期:', label: '搶先體驗:' },
{ text: '早期アクセスリリース日:', label: '早期発売:' },
];
const eaDateElement = Array.from(document.querySelectorAll('.details_block b')).find((el) =>
EA_TEXTS.some((item) => el.textContent.includes(item.text)),
);
if (!eaDateElement) return; // exit if it's not an ea release
const matchedText = EA_TEXTS.find((item) => eaDateElement.textContent.includes(item.text));
const eaDate = eaDateElement.nextSibling.textContent.trim();
const eaDateRow = makeRow('ea_date', matchedText.label, eaDate);
const releaseDate = document.querySelector('.release_date');
if (releaseDate) {
releaseDate.parentNode.insertBefore(eaDateRow, releaseDate.nextSibling);
} else {
const firstDevRow = document.querySelector('.glance_ctn_responsive_left .dev_row');
if (firstDevRow) {
firstDevRow.parentNode.insertBefore(eaDateRow, firstDevRow);
}
}
}
addRow();
})();