Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Update.json
Original file line number Diff line number Diff line change
Expand Up @@ -3883,6 +3883,17 @@
}
],
"Notes": "用户评分重新设计:从「AC 率 × 1000」改为综合做题量、准确度和坚持度的 0–3000 分,更难刷分,用户名颜色改为六档。详见 https://docs.xmoj-script.uk/features/rating.html"
},
"3.8.7": {
"UpdateDate": 1791247094090,
"Prerelease": true,
"UpdateContents": [
{
"PR": 1049,
"Description": "Show script admins with violet names instead of a badge"
}
],
"Notes": "脚本管理员的用户名改为紫色显示(悬停提示「脚本管理员」),不再单独显示「脚本管理员」徽章,为自定义徽章腾出空间。"
}
}
}
29 changes: 15 additions & 14 deletions XMOJ.user.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ==UserScript==
// @name XMOJ
// @version 3.8.6
// @version 3.8.7
// @description XMOJ增强脚本
// @author @XMOJ-Script-dev, @langningchen and the community
// @namespace https://github/langningchen
Expand Down Expand Up @@ -685,10 +685,11 @@ const ThemeCanvasCSS = `
html[data-bs-theme='light'] { background: var(--mono-white, var(--bs-body-bg, #fff)); color-scheme: light; }
`;

// Username colors by rating tier. Each color keeps at least 3.3:1 contrast on both
// the light and the dark background, so one palette is used on every page and
// theme instead of Bootstrap's link-* colors, which change with theme. Like
// Bootstrap, hover darkens the color by 20% and makes the underline opaque.
// Username colors by rating tier, plus violet for script admins. Each color keeps
// at least 3.3:1 contrast on both the light and the dark background, so one
// palette is used on every page and theme instead of Bootstrap's link-* colors,
// which change with theme. Like Bootstrap, hover darkens the color by 20% and
// makes the underline opaque.
const RatingColorCSS = `
a.xmoj-rating-red { color: #dc2f5a !important; text-decoration-color: rgba(220, 47, 90, 0.5) !important; }
a.xmoj-rating-red:hover, a.xmoj-rating-red:focus { color: #b02648 !important; text-decoration-color: #b02648 !important; }
Expand All @@ -702,6 +703,8 @@ const RatingColorCSS = `
a.xmoj-rating-cyan:hover, a.xmoj-rating-cyan:focus { color: #127a8d !important; text-decoration-color: #127a8d !important; }
a.xmoj-rating-gray { color: #78828c !important; text-decoration-color: rgba(120, 130, 140, 0.5) !important; }
a.xmoj-rating-gray:hover, a.xmoj-rating-gray:focus { color: #606870 !important; text-decoration-color: #606870 !important; }
a.xmoj-rating-admin { color: #a855f7 !important; text-decoration-color: rgba(168, 85, 247, 0.5) !important; }
a.xmoj-rating-admin:hover, a.xmoj-rating-admin:focus { color: #8644c6 !important; text-decoration-color: #8644c6 !important; }
`;

// Both UI initializers use this link; loading only in legacy main() leaves /web
Expand Down Expand Up @@ -1640,13 +1643,14 @@ let GetUsernameHTML = async (Element, Username, Simple = false, Href = "https://
}
HTMLData += `" class="rounded me-2" style="width: 20px; height: 20px; ">`;
}
HTMLData += `<a href="${Href}${Username}" class="link-offset-2 link-underline-opacity-50 `
if (UtilityEnabled("Rating")) {
let IsScriptAdmin = AdminUserList.includes(Username);
HTMLData += `<a href="${Href}${Username}"${IsScriptAdmin ? ` title="脚本管理员"` : ""} class="link-offset-2 link-underline-opacity-50 `
if (IsScriptAdmin) {
// Violet is reserved for script admins and replaces the old badge, so it
// applies whether or not ratings are shown and never means a rating tier.
HTMLData += "xmoj-rating-admin";
} else if (UtilityEnabled("Rating")) {
let Rating = UserInfo.Rating;
// if(AdminUserList.includes(Username)){
// HTMLData += "link-fuchsia"
// }
// else
if (Rating >= 2400) {
HTMLData += "xmoj-rating-red";
} else if (Rating >= 2000) {
Expand All @@ -1665,9 +1669,6 @@ let GetUsernameHTML = async (Element, Username, Simple = false, Href = "https://
}
HTMLData += `\";"></a>`;
if (!Simple) {
if (AdminUserList.includes(Username)) {
HTMLData += `<span class="badge text-bg-danger ms-2">脚本管理员</span>`;
}
let BadgeInfo = await GetUserBadge(Username);
if (BadgeInfo.Content != "") {
HTMLData += `<span class="badge ms-2" style="background-color: ${BadgeInfo.BackgroundColor}; color: ${BadgeInfo.Color}">${BadgeInfo.Content}</span>`;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xmoj-script",
"version": "3.8.6",
"version": "3.8.7",
"description": "an improvement script for xmoj.tech",
"main": "AddonScript.js",
"scripts": {
Expand Down
Loading