Improve tierlist view a bit and support SDVX Tierlist Rendering

This commit is contained in:
zkldi
2022-03-08 00:22:27 +00:00
parent 5c86ff6697
commit efd64ac344
5 changed files with 40 additions and 149 deletions
+1 -1
View File
@@ -86,7 +86,7 @@
"rg-stats": "^0.2.0",
"socicon": "3.0.5",
"sync-fetch": "^0.3.1",
"tachi-common": "0.5.15"
"tachi-common": "0.6.7"
},
"devDependencies": {
"@types/humanize-duration": "3.25.1",
+13 -144
View File
@@ -88,7 +88,7 @@ specifiers:
socicon: 3.0.5
style-loader: 1.0.0
sync-fetch: ^0.3.1
tachi-common: 0.5.15
tachi-common: 0.6.7
terser-webpack-plugin: 1.4.1
ts-pnp: 1.1.4
typescript: 4.3.5
@@ -164,7 +164,7 @@ dependencies:
rg-stats: 0.2.0
socicon: 3.0.5
sync-fetch: 0.3.1
tachi-common: 0.5.15
tachi-common: 0.6.7
devDependencies:
'@types/humanize-duration': 3.25.1
@@ -3050,8 +3050,8 @@ packages:
resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
dev: false
/@types/mongodb/3.6.20:
resolution: {integrity: sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==}
/@types/mongodb/3.6.18:
resolution: {integrity: sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==}
dependencies:
'@types/bson': 4.2.0
'@types/node': 16.0.0
@@ -3953,13 +3953,6 @@ packages:
dev: true
optional: true
/bl/2.2.1:
resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==}
dependencies:
readable-stream: 2.3.7
safe-buffer: 5.2.1
dev: false
/bluebird/3.7.2:
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
dev: true
@@ -4143,11 +4136,6 @@ packages:
node-releases: 1.1.75
dev: true
/bson/1.1.6:
resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==}
engines: {node: '>=0.6.19'}
dev: false
/bson/4.5.1:
resolution: {integrity: sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==}
engines: {node: '>=6.9.0'}
@@ -4738,6 +4726,7 @@ packages:
/core-util-is/1.0.2:
resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
dev: true
/cosmiconfig/5.2.1:
resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
@@ -5277,11 +5266,6 @@ packages:
resolution: {integrity: sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==}
dev: false
/denque/1.5.1:
resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==}
engines: {node: '>=0.10'}
dev: false
/depd/1.1.2:
resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=}
engines: {node: '>= 0.6'}
@@ -7370,6 +7354,7 @@ packages:
/isarray/1.0.0:
resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
dev: true
/isexe/2.0.0:
resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
@@ -7929,11 +7914,6 @@ packages:
readable-stream: 2.3.7
dev: true
/memory-pager/1.5.0:
resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==}
dev: false
optional: true
/merge-deep/3.0.3:
resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==}
engines: {node: '>=0.10.0'}
@@ -8298,86 +8278,6 @@ packages:
dependencies:
minimist: 1.2.5
/mongodb/3.7.0:
resolution: {integrity: sha512-JOAYjT9WYeRFkIP6XtDidAr3qvpfLRJhT2iokRWWH0tgqCQr9kmSfOJBZ3Ry0E5A3EqKxVPVhN3MV8Gn03o7pA==}
engines: {node: '>=4'}
peerDependencies:
aws4: '*'
bson-ext: '*'
kerberos: '*'
mongodb-client-encryption: '*'
mongodb-extjson: '*'
snappy: '*'
peerDependenciesMeta:
aws4:
optional: true
bson-ext:
optional: true
kerberos:
optional: true
mongodb-client-encryption:
optional: true
mongodb-extjson:
optional: true
snappy:
optional: true
dependencies:
bl: 2.2.1
bson: 1.1.6
denque: 1.5.1
optional-require: 1.1.7
safe-buffer: 5.2.1
optionalDependencies:
saslprep: 1.0.3
dev: false
/monk-middleware-cast-ids/0.2.1:
resolution: {integrity: sha1-QMQOWmyzPM7cKJIglDJ17ohhxSk=}
dev: false
/monk-middleware-fields/0.2.0:
resolution: {integrity: sha1-/2N6819ZSIecyyvhWpE2CRG+psE=}
dev: false
/monk-middleware-handle-callback/0.2.2:
resolution: {integrity: sha512-5hBynb7asZ2uw9XVze7C3XH0zXT51yFDvYydk/5HnWWzh2NLglDSiKDcX0yLKPHzFgiq+5Z4Laq5fFVnFsmm8w==}
dev: false
/monk-middleware-options/0.2.1:
resolution: {integrity: sha1-WNrhxRjUZjbr3/UG+t/Hc7tEKIY=}
dev: false
/monk-middleware-query/0.2.0:
resolution: {integrity: sha1-qSbGd9SlYgxiFRsKVtDAwVFnWHQ=}
dev: false
/monk-middleware-wait-for-connection/0.2.0:
resolution: {integrity: sha1-MSlY0w5Yi1fQl1TdfJe0hDMWg1o=}
dev: false
/monk/7.3.4:
resolution: {integrity: sha512-PkPNiElwroVyKQj01usyziOvwiKYBUVSq7YU1FB4KFr0J3v0GeXW0TebYsLR4u33WB8JGqPiAcuzDspfdujqQg==}
dependencies:
'@types/mongodb': 3.6.20
debug: 4.3.2
mongodb: 3.7.0
monk-middleware-cast-ids: 0.2.1
monk-middleware-fields: 0.2.0
monk-middleware-handle-callback: 0.2.2
monk-middleware-options: 0.2.1
monk-middleware-query: 0.2.0
monk-middleware-wait-for-connection: 0.2.0
object-assign: 4.1.1
transitivePeerDependencies:
- aws4
- bson-ext
- kerberos
- mongodb-client-encryption
- mongodb-extjson
- snappy
- supports-color
dev: false
/move-concurrently/1.0.1:
resolution: {integrity: sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=}
dependencies:
@@ -8756,13 +8656,6 @@ packages:
webpack: 4.41.0
dev: false
/optional-require/1.1.7:
resolution: {integrity: sha512-cIeRZocXsZnZYn+SevbtSqNlLbeoS4mLzuNn4fvXRMDRNhTGg0sxuKXl0FnZCtnew85LorNxIbZp5OeliILhMw==}
engines: {node: '>=4'}
dependencies:
require-at: 1.0.6
dev: false
/optionator/0.9.1:
resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
engines: {node: '>= 0.8.0'}
@@ -9760,6 +9653,7 @@ packages:
/process-nextick-args/2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
dev: true
/process/0.11.10:
resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=}
@@ -10264,6 +10158,7 @@ packages:
safe-buffer: 5.1.2
string_decoder: 1.1.1
util-deprecate: 1.0.2
dev: true
/readable-stream/3.6.0:
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
@@ -10435,11 +10330,6 @@ packages:
engines: {node: '>=0.10'}
dev: true
/require-at/1.0.6:
resolution: {integrity: sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==}
engines: {node: '>=4'}
dev: false
/require-directory/2.1.1:
resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=}
engines: {node: '>=0.10.0'}
@@ -10629,6 +10519,7 @@ packages:
/safe-buffer/5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
/safe-regex/1.1.0:
resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=}
@@ -10639,14 +10530,6 @@ packages:
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
/saslprep/1.0.3:
resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==}
engines: {node: '>=6'}
dependencies:
sparse-bitfield: 3.0.3
dev: false
optional: true
/sass-loader/7.2.0_webpack@4.41.0:
resolution: {integrity: sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==}
engines: {node: '>= 6.9.0'}
@@ -11023,13 +10906,6 @@ packages:
resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==}
dev: false
/sparse-bitfield/3.0.3:
resolution: {integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=}
dependencies:
memory-pager: 1.5.0
dev: false
optional: true
/spdx-correct/3.1.1:
resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
dependencies:
@@ -11198,6 +11074,7 @@ packages:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
dependencies:
safe-buffer: 5.1.2
dev: true
/string_decoder/1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
@@ -11424,18 +11301,10 @@ packages:
strip-ansi: 6.0.0
dev: true
/tachi-common/0.5.15:
resolution: {integrity: sha512-7pBspD/7TduoJu1OdguRRxg5LyWwodhbZi5NU4y6aviJmHRetTwWXksCi4QBc72NbKlwqGwnbGrxdKFKdKQNhQ==}
/tachi-common/0.6.7:
resolution: {integrity: sha512-fdparD1htWITEz+dtEqlcdtHFoo9AZWRDX3iL052ePRGPRu0jRX5bO+V1A4cbYThMcBDefCAh3o0tBIbExyUiw==}
dependencies:
monk: 7.3.4
transitivePeerDependencies:
- aws4
- bson-ext
- kerberos
- mongodb-client-encryption
- mongodb-extjson
- snappy
- supports-color
'@types/mongodb': 3.6.18
dev: false
/tapable/1.1.3:
@@ -32,7 +32,7 @@ import { FolderDataset } from "types/tables";
import { Playtype } from "types/tachi";
import { ONE_DAY } from "util/constants/time";
import { CreateChartIDMap, CreateChartLink, CreateSongMap } from "util/data";
import { NO_OP } from "util/misc";
import { DistinctArr, NO_OP } from "util/misc";
import { NumericSOV, StrSOV } from "util/sorts";
import { GetScaleAchievedFn } from "util/tierlist";
import { FormatDate, FormatTime } from "util/time";
@@ -504,7 +504,15 @@ function TierlistInfoLadder({
.map(bucket => (
<React.Fragment key={bucket[0].data!.value}>
<Col className="ladder-header" xs={12}>
{bucket[0].data!.value} ({bucket[0].data!.text})
{bucket[0].data!.value} (
{DistinctArr(
bucket.map(e =>
gptConfig.tierlists.length === 1
? e.data.text
: `${e.key}: ${e.data.text}`
)
).join(", ")}
)
</Col>
{bucket.map((tierlistInfo, i) => (
+12
View File
@@ -278,3 +278,15 @@ export function ConditionalLeadingSpace(maybeStr: string | null) {
return ` ${maybeStr}`;
}
export function DistinctArr<T>(arr: T[]): T[] {
return [...new Set(arr)];
}
export function TruncateString(string: string, len = 30) {
if (string.length < len) {
return string;
}
return `${string.slice(len - 3)}...`;
}
+4 -2
View File
@@ -1,4 +1,4 @@
import { Game, GPTTierlists, IDStrings, IIDX_LAMPS, ScoreDocument } from "tachi-common";
import { Game, GPTTierlists, IDStrings, IIDX_LAMPS, ScoreDocument, SDVX_LAMPS } from "tachi-common";
import { Playtype } from "types/tachi";
type ScaleAchievedFns = {
@@ -39,7 +39,9 @@ const ScaleNameAchievedFns: ScaleAchievedFns = {
"museca:Single": {
"tachi-score": null,
},
"sdvx:Single": {},
"sdvx:Single": {
clear: k => k.scoreData.lampIndex >= SDVX_LAMPS.CLEAR,
},
"usc:Controller": {},
"usc:Keyboard": {},
"wacca:Single": {},