Skip to content

Instantly share code, notes, and snippets.

@s0kil
Last active November 5, 2024 17:06
Show Gist options
  • Save s0kil/8e7d3c4ca5f302c2e5ef77fc6e03c466 to your computer and use it in GitHub Desktop.
Save s0kil/8e7d3c4ca5f302c2e5ef77fc6e03c466 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WhatsMiner Product Categories</title>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
whatsminer: {
100: "#F3E8FF",
500: "#A855F7",
700: "#7E22CE",
},
},
},
},
};
</script>
</head>
<body class="bg-gray-100 p-8">
<div class="max-w-7xl mx-auto bg-white p-6 rounded-lg shadow-md">
<h1 class="text-3xl font-bold mb-4 text-whatsminer-700">
WhatsMiner Product Categories
</h1>
<div class="mb-4">
<p class="font-semibold">Legend:</p>
<p>
<span class="bg-whatsminer-100 text-whatsminer-700 px-2 py-1 rounded"
>T</span
>
- Terahash (TH/s): Hashrate
</p>
<p>
<span class="bg-gray-100 text-gray-700 px-2 py-1 rounded">P</span> -
Efficiency (J/TH): Joules per Terahash
</p>
</div>
<div class="mb-4">
<input type="file" id="fileInput" accept=".txt" class="mb-2" />
<button
id="readButton"
class="bg-whatsminer-500 hover:bg-whatsminer-700 text-white font-bold py-2 px-4 rounded"
>
Load Custom File
</button>
</div>
<div id="fileContent" class="mt-6"></div>
</div>
<script>
const product_categories_default = `
M20SV1X,M20SV2X,M20SV3X|T:74-76:74|T:71.5-74:72|T:69.5-71.5:70|T:67-69.5:68|T:64-67:65|T:61-64:62|T:58-61:60|T:54-58:56|T:50-54:52|T:46-50:48|T:42-46:44|P:45-46.5:46|P:46.5-50:48|P:50-54:52|P:54-58:56|P:58-62:60|P:62-66:64|P:66-72:69|
M21SV2X|T:61-63:62|T:59-61:60|T:57-59:58|T:55-57:56|T:53-55:54|T:51-53:52|T:49-51:50|T:47-49:48|T:45-47:46|T:43-45:44|T:41-43:42|T:39-41:40|T:37-39:38|T:35-37:36|T:33-35:34|T:31-33:32|T:29-31:30|T:27-29:28|T:24-27:26|P:45-49:46|P:49-53:50|P:53-55:54|P:55-58:56|P:58-63:60|P:63-69:66|P:69-75:72|P:75-81:78|P:81-87:84|P:87-95:90|
M21SV6X,M21SV7X|T:69-71.5:70|T:67-69:68|T:65-67:66|T:63-65:64|T:61-63:62|T:59-61:60|T:57-59:58|T:55-57:56|T:53-55:54|T:51-53:52|T:49-51:50|T:47-49:48|T:45-47:46|T:43-45:44|T:41-43:42|T:39-41:40|T:37-39:38|T:35-37:36|T:33-35:34|T:31-33:32|T:29-31:30|T:27-29:28|T:24-27:26|P:47-49:48|P:49-51:50|P:51-53:52|P:53-55:54|P:55-58:56|P:58-63:60|P:63-69:66|P:69-75:72|P:75-81:78|P:81-93:84|
M21V1X|T:32.5-34:33|T:31.5-32.5:32|T:30.5-31.5:31|T:29.5-30.5:30|T:28.5-29.5:29|T:27.5-28.5:28|T:26.5-27.5:27|T:25.5-26.5:26|T:23.5-25.5:24|P:0-100:60|
M20V1X|T:43-47:45|P:46-51:48|
M20S+V3X|T:78-80:78|T:76-78:76|T:74-76:74|T:72-74:72|T:70-72:70|T:68-70:68|P:43-46:44|P:46-48:46|P:48-50:48|
M21S+V2X|T:66-68:66|T:64-66:64|T:62-64:62|T:60-62:60|T:58-60:58|T:56-58:56|T:54-56:54|T:52-54:52|T:50-52:50|T:48-50:48|T:46-48:46|T:44-46:44|T:42-44:42|T:40-42:40|P:49-53:50|P:53-56:54|P:56-59:56|P:59-63:60|
M29V1X|T:31-32:31|T:30-31:30|T:29-30:29|P:0-51:50|
M39V2X|T:36-37:36|T:35-36:35|T:34-35:34|P:0-51:42|
M50VK4X,M50VK5X,M50SVK1X,M50SVK2X,M50SVK3X,M50SVK4X,M50SVK5X,M50SVK6X,M50VJ1X,M50VJ2X,M50VJ3X,M50SVJ1X,M50SVJ2X,M50SVJ3X,M50SVJ4X,M50SVH1X,M50SVH2X,M50SVH3X,M50SVH4X,M50SVH5X,M50VH1X,M50VH2X,M50VH3X,M50VH4X,M50VH5X,M50VH6X,M50VH7X,M50VH8X,M50VH9X,M50VG3X,M50VE3X|T:140-142:140|T:138-140:138|T:136-138:136|T:134-136:134|T:132-134:132|T:130-132:130|T:128-130:128|T:126-128:126|T:124-126:124|T:122-124:122|T:120-122:120|T:118-120:118|T:116-118:116|T:114-116:114|T:112-114:112|T:110-112:110|T:108-110:108|T:106-108:106|T:104-106:104|P:23.9-24.8:24|P:24.9-25.85:25|P:25.85-26.9:26|P:26.9-27.9:27|P:27.9-28.9:28|P:28.9-29.9:29|P:29.8-30.8:30|P:30.8-32.3:31|
M30S++VG3X,M30S++VG4X,M30S++VG5X,M30S++VF4X,M30S++V1X,M30S++V2X,M30S++VE3X,M30S++VE4X,M30S++VE5X|T:92-94:92|T:94-96:94||T:96-98:96||T:98-100:98|T:100-102:100|T:102-104:102|T:104-106:104|T:106-108:106|T:108-110:108|T:110-111.8:110|T:111.8-113.8:112|T:113.8-115.8:114|T:115.8-117.8:116|T:117.8-119.8:118|P:27.8-28.8:28|P:28.8-29.8:29|P:29.8-30.8:30|P:30.8-32:31|P:32-33.5:32|P:33.5-35.5:34|P:35.5-37.5:36|
M30S++VK3X,M30S++VK4X,M30S++VK5X,M30S++VJ5X,M30S++VJ6X,M30S++VJ7X,M30S++VJ2X,M30S++VJ3X,M30S++VH10X,M30S++VH11X,M30S++VH7X,M30S++VH1X,M30S++VH5X,M30S++VH6X,M30S++VH4X,M30S++VH8X,M30S++VH9X,M30S++VH2X,M30S++VH3X|T:92-94:92|T:94-96:94||T:96-98:96||T:98-100:98|T:100-102:100|T:102-104:102|T:104-106:104|T:106-108:106|T:108-109.8:108|T:109.8-111.8:110|T:111.8-113.8:112|T:113.8-115.8:114|T:115.8-117.8:116|T:117.8-119.8:118|P:26.9-27.9:27|P:27.9-28.8:28|P:28.8-29.8:29|P:29.8-30.8:30|P:30.8-31.9:31|P:31.9-33.5:32|P:33.5-35.5:34|P:35.5-37.5:36|
M30S+VJ3X,M30S+VJ4X,M30S+VJ5X,M30S+VH7X,M30S+VH6X,M30S+VH5X,M30S+VH4X,M30S+VH3X,M30S+VH2X,M30S+VH1X,M36S+VG3X,M30S+VG3X,M30S+VG4X,M30S+VG5X,M30S+VG6X,M30S+VF2X,M30S+VF3X,M30S+V1X,M30S+V2X,M30S+V3X,M30S+V4X,M30S+V5X,M30S+V6X,M30S+V7X,M30S+V8X,M30S+V9X,M30S+V10X,M30S+VE3X,M30S+VE4X,M30S+VE5X,M30S+VE6X,M30S+VE7X,M30S+VE8X,M30S+VE9X,M30S+VE10X|T:142-144:142|T:144-146:144|T:146-148:146|T:148-150:148|T:150-152:150|T:152-154:152|T:154-156:154|T:156-158:156|T:158-160:158|T:160-162:160|T:162-164:162|T:164-166:164|T:88-90:88|T:90-92:90|T:92-94:92|T:94-96:94|T:96-98:96|T:98-99.8:98|T:99.8-101.8:100|T:101.8-103.8:102|T:103.8-105.8:104|T:105.8-107.8:106|T:107.8-109.8:108|T:86-88:86|T:84-86:84|T:82-84:82|T:80-82:80|T:78-80:78|T:76-78:76|P:27.9-28.9:28|P:28.9-29.9:29|P:29.9-30.8:30|P:30.8-32:31|P:32-33.5:32|P:33.5-35.5:34|P:35.5-37.5:36|P:37.5-39.5:38|P:39.5-41.5:40|P:41.5-43.5:42|
M30SVH6X,M30SVJ3X,M30SVI2X,M30SVE1X,M30SVH6X,M30SVH5X,M30SVH4X,M30SVH3X,M30SVH2X,M30SVH1X,M30SVG1X,M30SVG2X,M30SVG3X,M30SVG4X,M30SV1X,M30SV2X,M30SV3X,M30SV4X,M30SV5X,M30SV6X,M30SV7X,M30SV8X,M30SVF1X,M30SVF2X,M30SVE1X,M30SVE2X,M30SVE3X,M30SVE4X,M30SVE5X,M30SVE6X,M30SVE7X,M30SVF3X|T:103.8-105.8:104|T:101.8-103.8:102|T:99.8-101.8:100|T:97.8-99.8:98|T:95.8-97.8:96|T:93.8-95.8:94|T:91.8-93.8:92|T:90-91.8:90|T:88-90:88|T:86-88:86|T:84-86:84|T:82-84:82|T:80-82:80|T:78-80:78|T:76-78:76|T:74-76:74|P:31.5-33.5:32|P:33.5-35.5:34|P:35.5-37.5:36|P:37.5-39.5:38|P:39.5-41.5:40|P:41.5-43.5:42|P:43.5-45.5:44|P:45.5-47.5:46|
M31S+VE21,M31S+VG2X,M31S+VG3X,M30V1X,M30V2X,M31S+V1X,M31S+V2X,M31S+V3X,M31S+V4X,M31S+V5X,M31S+V6X,M31S+V8X,M31S+V9X,M31S+V10X,M31S+VE1X,M31S+VE2X,M31S+VE3X,M31S+VE4X,M31S+VE5X,M31S+VE6X,M31S+VE8X,M31S+VF2X,M31S+VF3X|T:88-90:88|T:86-88:86|T:84-86:84|T:82-84:82|T:80-82:80|T:78-80:78|T:76-78:76|T:74-76:74|T:72-74:72|T:70-72:70|T:68-70:68|T:66-68:66|T:64-66:64|P:37.5-39.5:38|P:39.5-41.5:40|P:41.5-43.5:42|P:43.5-45.5:44|P:45.5-47.5:46|P:47.5-49.5:48|P:49.5-51.5:50|
M31SVE1X,M31SVE2X,M31SVE3X,M31SV1X,M31SV2X,M31V1X,M31V2X,M31SV3X,M31SV4X,M31SV5X,M31SV6X,M31SV7X,M31SV8X,M31SV9X,M32V1X,M32V2X|T:84-86:84|T:82-84:82|T:80-82:80|T:78-80:78|T:76-78:76|T:74-76:74|T:72-74:72|T:70-72:70|T:68-70:68|T:66-68:66|T:64-66:64|T:62-64:62|T:60-62:60|T:58-60:58|T:56-58:56|T:54-56:54|T:52-54:52|T:50-52:50|T:48-50:48|T:46-48:46|T:44-46:44|T:42-44:42|T:40-42:40|T:38-40:38|T:36-38:36|T:34-36:34|T:32-34:32|T:30-32:30|T:28-30:28|T:27-28:27|T:26-27:26|T:25-26:25|T:24-25:24|T:23-24:23|T:22-23:22|T:21-22:21|P:39.5-41.5:40|P:41.5-43.5:42|P:43.5-45.5:44|P:45.5-47.5:46|P:47.5-49.5:48|P:49.5-51.5:50|P:51.5-53.5:52|P:53.5-55.5:54|P:55.5-57.5:56|P:57.5-59.5:58|P:59.5-61.5:60|P:61.5-63.5:62|P:63.5-65.5:64|P:65.5-67.5:66|P:67.5-69.5:68|P:69.5-71.5:70|P:71.5-73.5:72|P:73.5-75.5:74|P:75.5-77.5:76|P:77.5-79.5:78|P:79.5-83.5:80|P:83.5-87.5:85|P:106-120:110|P:96-106:100|P:92-96:94|P:87.5-92:90|
M31SEV1X,M31SEV2X,M31SEV3X|T:78-80:78|T:76-78:76|T:74-76:74|T:72-74:72|T:70-72:70|T:68-70:68|T:66-68:66|T:64-66:64|T:62-64:62|P:43.5-45.5:44|P:45.5-47.5:46|P:47.5-49.5:48|
M33V1X,M33V2X,M33V3X|T:47-48:47|T:46-47:46|T:45-46:45|T:44-45:44|T:43-44:43|T:42-43:42|T:38-39:38|T:37-38:37|T:36-37:36|T:35-36:35|T:34-35:34|T:33-34:33|T:32-33:32|P:0-50:45|
M36SVE1X,M34S+VE1X,M31HV4X|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|T:166-168:166|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|T:138-140:140|T:138-140:138|T:136-138:136|T:134-136:134|T:132-134:132|T:130-132:130|T:128-130:128|T:126-128:126|T:124-126:124|P:35.5-37.5:36|P:37.5-39.5:38|P:39.5-41.5:40|P:41.5-43.5:42|P:43.5-45.5:44|P:45.5-47.5:46|P:47.5-49.5:48|
M52SVK3X,M36S+VG3X,M36S++VH3X,M33SVG3X,M33S+VH3X,M33S++VH3X,M33S++VG4X,M33S+VH2X,M33S++VH2X|T:246-248:246|T:244-246:244|T:242-244:242|T:240-242:240|T:238-240:238|T:236-238:236|T:234-236:234|T:232-234:232|T:230-232:230|T:228-230:228|T:226-228:226|T:224-226:224|T:222-224:222|T:220-222:220|T:218-220:218|T:216-218:216|T:214-216:214|T:212-214:212|T:210-212:210|T:208-210:208|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|T:166-168:166|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|T:148-150:148|T:146-148:146|P:27.9-28.9:28|P:28.9-29.9:29|P:29.9-30.8:30|P:30.8-32.3:31|P:32.3-34:32|P:34-36:34|
M56VH3X,M59VH3X,M53VH3X,M53VH4X,M53VH5X,M53VK3X,M53VK6X|T:282-284:282|T:280-282:280|T:278-280:278|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|T:264-266:264|T:262-264:262|T:258-260:260|T:256-258:258|T:254-256:256|T:254-256:254|T:252-254:252|T:250-252:250|T:248-250:248|T:246-248:246|T:244-246:244|T:242-244:242|T:240-242:240|T:238-240:238|T:236-238:236|T:234-236:234|T:232-234:232|T:230-232:230|T:228-230:228|T:226-228:226|T:224-226:224|T:222-224:222|T:220-222:220|T:218-220:218|T:216-218:216|T:214-216:214|T:212-214:212|T:210-212:210|T:208-210:208|T:206-208:206|T:204-206:204|T:202-204:202|T:200-202:200|T:198-200:198|T:196-198:196|T:194-196:194|T:192-194:192|T:190-192:190|T:188-190:188|T:186-188:186|T:184-186:184|T:182-184:182|T:180-182:180|T:178-180:178|T:176-178:176|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|P:24.9-25.9:25|P:25.9-26.9:26|P:26.9-27.9:27|P:27.9-28.9:28|P:28.9-29.9:29|
M56SVJ3X,M56SVJ4X,M56SVH3X|T:220-222:220|T:218-220:218|T:216-218:216|T:214-216:214|T:212-214:212|T:210-212:210|T:208-210:208|T:206-208:206|T:204-206:204|T:202-204:202|T:200-202:200|T:198-200:198|T:196-198:196|T:194-196:194|T:192-194:192|T:190-192:190|T:188-190:188|T:186-188:186|T:184-186:184|T:182-184:182|T:180-182:180|T:178-180:178|T:176-178:176|P:24.9-25.8:25|P:25.9-26.9:26|P:26.9-27.9:27|
M53SVJ3X,M53SVJ4X,M53SVH2X,M53SVH3X|T:294-296:294|T:292-294:292|T:290-292:290|T:288-290:288|T:286-288:286|T:284-286:284|T:282-284:282|T:280-282:280|T:278-280:278|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|T:264-266:264|T:262-264:262|T:260-262:260|T:258-260:258|T:256-258:256|T:254-256:254|T:252-254:252|T:250-252:250|T:248-250:248|P:24.9-25.85:25|P:25.85-26.9:26|P:26.9-27.9:27|
M50VJ6X,M50S+VK1X,M50S+VK2X,M50S+VK3X,M50S+VH4X,M50S+VJ3X,M50S+VJ4X,M50S+VH3X|T:152-154:152|T:150-152:150|T:148-150:148|T:146-148:146|T:144-146:144|T:142-144:142|T:140-142:140|T:138-140:138|T:136-138:136|T:134-136:134|T:132-134:132|T:130-132:130|T:128-130:128|T:126-128:126|T:124-126:124|T:122-124:122|T:120-122:120|T:118-120:118|T:116-118:118|T:114-116:114|T:112-114:112|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|P:24.9-25.85:25|P:25.85-26.9:26|P:26.9-27.9:27|
M53SVK3X,M53S+VJ3X,M53S+VJ4X,M53S+VK1X,M53S+VK2X,M53S+VK3X|T:316-318:316|T:314-316:314|T:312-314:312|T:310-312:310|T:308-310:308|T:306-308:306|T:304-306:304|T:302-304:302|T:300-302:300|T:298-300:298|T:296-298:296|T:294-296:294|T:292-294:292|T:290-292:290|T:288-290:288|T:286-288:286|T:284-286:284|T:282-284:282|T:280-282:280|T:278-280:278|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|P:24.9-25.85:25|P:25.85-26.9:26|
M61VK1X,M61VK2X,M61VK3X,M61VK4X,M61VL1X,M61VL2X,M61VL3X,M61VL4X,M61VL5X,M61VL6X,M56S+VJ3X,M56S+VK3X,M56S+VK4X,M56S+VK5X|T:238-240:238|T:236-238:236|T:234-236:234|T:232-234:232|T:230-232:230|T:228-230:228|T:226-228:226|T:224-226:224|T:222-224:222|T:220-222:220|T:218-220:218|T:216-218:216|T:214-216:214|T:212-214:212|T:210-212:210|T:208-210:208|T:206-208:206|T:204-206:204|T:202-204:202|T:200-202:200|T:198-200:198|T:196-198:196|T:194-196:194|T:192-194:192|P:18.9-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|P:24.9-25.85:25|P:25.85-26.9:26|
M50S++VL2X,M50S++VL3X,M50S++VL4X,M50S++VL6X,M50S++VK1X,M50S++VK2X,M50S++VK3X,M50S++VK4X,M50S++VK5X,M50S++VK6X|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|T:148-150:148|T:146-148:146|T:144-146:144|T:142-144:142|T:140-142:140|T:138-140:138|T:136-138:136|T:134-136:134|T:132-134:132|T:130-132:130|T:128-130:128|P:18.9-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|
M53S++VL3X,M53S++VK1X,M53S++VK2X,M53S++VK3X,M53S++VK4X,M53S++VK5X,M53S++VK6X|T:346-348:346|T:344-346:344|T:342-344:342|T:340-342:340|T:338-340:338|T:336-338:336|T:334-336:334|T:332-334:332|T:330-332:330|T:328-330:328|T:326-328:326|T:324-326:324|T:322-324:322|T:320-322:320|T:318-320:318|T:316-318:316|T:314-316:314|T:312-314:312|T:310-312:310|T:308-310:308|T:306-308:306|T:304-306:304|T:302-304:302|T:300-302:300|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|
M54S++VL3X,M54S++VL4X,M54S++VK3X,M56S++VK1X,M56S++VK2X,M56S++VK3X,M56S++VK4X,M56S++VK5X,M56S++VK6X|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|T:264-266:264|T:262-264:262|T:260-262:260|T:258-260:258|T:256-258:256|T:254-256:254|T:252-254:252|T:250-252:250|T:248-250:248|T:246-248:246|T:244-246:244|T:242-244:242|T:240-242:240|T:238-240:238|T:236-238:236|T:234-236:234|T:232-234:232|T:230-232:230|T:228-230:228|T:226-228:226|T:226-228:226|T:224-226:224|T:222-224:222|T:220-222:220|T:218-220:218|T:216-218:216|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|P:23.9-24.9:24|
M64VL3X,M64VL4X,M60VL1X,M60VL2X,M60VL3X,M60VL4X,M60VL5X,M60VK1X,M60VK2X,M60VK3X,M60VK4X,M60VK5X,M60VK6X|T:182-184:182|T:180-182:180|T:178-180:178|T:176-178:176|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|T:166-168:166|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|P:22.8-23.9:23|
M63VL3X,M63VK1X,M63VK2X,M63VK3X,M63VK4X,M63VK5X|T:386-388:386|T:384-386:384|T:382-384:382|T:380-382:380|T:378-380:378|T:376-378:376|T:374-376:374|T:372-374:372|T:370-372:370|T:368-370:368|T:366-368:366|T:364-366:364|T:362-364:362|T:360-362:360|T:358-360:358|T:356-358:356|T:354-356:354|T:352-354:352|T:350-352:350|T:348-350:348|T:346-348:346|T:344-346:344|T:342-344:342|T:340-342:340|T:338-340:338|T:336-338:336|T:334-336:334|T:332-334:332|T:330-332:330|T:328-330:328|T:326-328:326|T:324-326:324|T:322-324:322|T:320-322:320|T:318-320:318|T:316-318:316|T:314-316:314|T:312-314:312|T:310-312:310|T:308-310:308|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|
M66VL1X,M66VL2X,M66VL3X,M66VK1X,M66VK2X,M66VK3X,M66VK4X,M66VK5X|T:306-308:306|T:304-306:304|T:302-304:302|T:300-302:300|T:298-300:298|T:296-298:296|T:294-296:294|T:292-294:292|T:290-292:290|T:288-290:288|T:286-288:286|T:284-286:284|T:282-284:282|T:280-282:280|T:278-280:278|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|T:264-266:264|T:262-264:262|T:260-262:260|T:258-260:258|T:256-258:256|T:254-256:254|T:252-254:252|T:250-252:250|T:248-250:248|T:246-248:246|T:244-246:244|T:242-244:242|T:240-242:240|T:238-240:238|T:236-238:236|T:234-236:234|T:232-234:232|T:230-232:230|T:228-230:228|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|P:21.8-22.8:22|
M64SVL3X,M60SVL1X,M60SVL2X,M60SVL3X,M60SVL4X,M60SVL5X,M60SVK1X,M60SVK2X,M60SVK3X,M60SVK4X,M60SVK5X|T:192-194:192|T:190-192:190|T:188-190:188|T:186-188:186|T:184-186:184|T:182-184:182|T:180-182:180|T:178-180:178|T:176-178:176|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|T:166-168:166|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|P:17-17.6:17|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
M63SVL1X,M63SVL2X,M63SVL3X,M63SVL4X,M63SVL5X,M63SVL6X,M65SVK1X,M65SVK2X,M65SVK3X,M67SVK3X,M63SVK1X,M63SVK2X,M63SVK3X,M63SVK4X,M63SVK5X,M63SVK6X|T:414-416:414|T:412-414:412|T:410-412:410|T:408-410:408|T:406-408:406|T:404-406:404|T:402-404:402|T:400-402:400|T:398-400:398|T:396-398:396|T:394-396:394|T:392-394:392|T:390-392:390|T:388-390:388|T:386-388:386|T:384-386:384|T:382-384:382|T:380-382:380|T:378-380:378|T:376-378:376|T:374-376:374|T:372-374:372|T:370-372:370|T:368-370:368|T:366-368:366|T:364-366:364|T:362-364:362|T:360-362:360|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
M66SVL1X,M66SVL2X,M66SVL3X,M66SVL4X,M66SVL5X,M66SVL6X,M66SVK1X,M66SVK2X,M66SVK3X,M66SVK4X,M66SVK5X,M66SVK6X|T:314-316:314|T:312-314:312|T:310-312:310|T:308-310:308|T:306-308:306|T:304-306:304|T:302-304:302|T:300-302:300|T:298-300:298|T:296-298:296|T:294-296:294|T:292-294:292|T:290-292:290|T:288-290:288|T:286-288:286|T:284-286:284|T:282-284:282|T:280-282:280|T:278-280:278|T:276-278:276|T:274-276:274|T:272-274:272|T:270-272:270|T:268-270:268|T:266-268:266|T:264-266:264|T:262-264:262|T:260-262:260|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
M60S+VL1X,M60S+VL2X,M60S+VL3X,M60S+VL6X,M60S+VK1X,M60S+VK2X,M60S+VK3X,M60S+VK4X,M60S+VK5X,M60S+VK6X,M60S+VK7X|T:192-194:192|T:190-192:190|T:188-190:188|T:186-188:186|T:184-186:184|T:182-184:182|T:180-182:180|T:178-180:178|T:176-178:176|T:174-176:174|T:172-174:172|T:170-172:170|T:168-170:168|T:166-168:166|T:164-166:164|T:162-164:162|T:160-162:160|T:158-160:158|T:156-158:156|T:154-156:154|T:152-154:152|T:150-152:150|P:16.5-16.9:16.5|P:16.9-17.6:17|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
M62S+VK1X,M66S+VL1X,M66S+VL2X,M66S+VL3X,M66S+VK1X,M66S+VK2X,M66S+VK3X,M66S+VK4X,M66S+VK5X|T:340-342:340|T:338-340:338|T:336-338:336|T:334-336:334|T:332-334:332|T:330-332:330|T:328-330:328|T:326-328:326|T:324-326:324|T:322-324:322|T:320-322:320|T:318-320:318|T:316-318:316|T:314-316:314|T:312-314:312|T:310-312:310|T:308-310:308|T:306-308:306|T:304-306:304|T:302-304:302|T:300-302:300|T:298-300:298|T:296-298:296|T:294-296:294|T:292-294:292|T:290-292:290|T:288-290:288|T:286-288:286|T:284-286:284|T:282-284:282|T:280-282:280|T:278-280:278|P:16.5-16.9:16.5|P:16.9-17.6:17|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
M65S+VK3X,M63S+VK3X|T:440-442:440|T:438-440:438|T:436-438:436|T:434-436:434|T:432-434:432|T:430-432:430|T:428-430:428|T:426-428:426|T:424-426:424|T:422-424:422|T:420-422:420|T:418-420:418|T:416-418:416|T:414-416:414|T:412-414:412|T:410-412:410|T:408-410:408|T:406-408:406|T:404-406:404|T:402-404:402|T:400-402:400|T:398-400:398|T:396-398:396|T:394-396:394|P:16.5-16.9:16.5|P:16.9-17.6:17|P:17.6-18:17.5|P:18-18.45:18|P:18.45-19:18.5|P:19-19.7:19|P:19.7-20.8:19.9|P:20.8-21.8:21|
`;
const fileInput = document.getElementById("fileInput");
const readButton = document.getElementById("readButton");
const fileContent = document.getElementById("fileContent");
const createElementWithClass = (tag, className) => {
const element = document.createElement(tag);
element.className = className;
return element;
};
const createModelBadge = (model) => {
const badge = createElementWithClass(
"span",
"bg-whatsminer-100 text-whatsminer-700 text-sm font-medium mr-2 px-2.5 py-0.5 rounded"
);
badge.textContent = model.trim();
return badge;
};
const createDataRow = (range) => {
const row = createElementWithClass("div", "mb-1 text-gray-600");
row.textContent = range;
return row;
};
const createDataSection = (title, className) => {
const section = createElementWithClass(
"div",
`bg-gray-100 p-4 rounded ${className}`
);
section.innerHTML = `<h3 class="font-semibold mb-2 ${className}">${title}</h3>`;
return section;
};
const displayContent = (content) => {
fileContent.innerHTML = "";
const lines = content.trim().split("\n");
lines.forEach((line) => {
const [models, ...data] = line.split("|");
const modelDiv = createElementWithClass(
"div",
"mb-8 p-4 bg-gray-50 rounded"
);
const modelHeader = createElementWithClass(
"h2",
"text-xl font-semibold mb-2 text-whatsminer-700"
);
modelHeader.textContent = "Models:";
modelDiv.appendChild(modelHeader);
const modelGrid = createElementWithClass(
"div",
"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2 mb-4"
);
models
.split(",")
.forEach((model) => modelGrid.appendChild(createModelBadge(model)));
modelDiv.appendChild(modelGrid);
const dataGrid = createElementWithClass(
"div",
"grid grid-cols-1 md:grid-cols-2 gap-4"
);
const hashrateDiv = createDataSection(
"Hashrate (TH/s)",
"text-whatsminer-700"
);
const efficiencyDiv = createDataSection(
"Efficiency (J/TH)",
"text-gray-700"
);
data.forEach((category) => {
const [type, rangeData] = category.split(":");
if (!rangeData) return;
const range = rangeData.split(":")[0];
const dataRow = createDataRow(range);
type === "T"
? hashrateDiv.appendChild(dataRow)
: efficiencyDiv.appendChild(dataRow);
});
dataGrid.appendChild(hashrateDiv);
dataGrid.appendChild(efficiencyDiv);
modelDiv.appendChild(dataGrid);
fileContent.appendChild(modelDiv);
});
};
const handleFileRead = (event) => {
const content = event.target.result;
displayContent(content);
};
const handleFileSelect = () => {
const file = fileInput.files[0];
if (file) {
const reader = new FileReader();
reader.onload = handleFileRead;
reader.readAsText(file);
} else {
alert("Please select a file");
}
};
readButton.addEventListener("click", handleFileSelect);
// Render Default File
displayContent(product_categories_default);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment