Skip to content
This repository was archived by the owner on Feb 14, 2022. It is now read-only.

Commit b1801b5

Browse files
committed
Update expTable from API and Fixed formattings
Add spaces between operands and opraters Replace from constant exp table to exp table fetched from api Signed-off-by: Seokho Song <0xdevssh@gmail.com>
1 parent c467e18 commit b1801b5

2 files changed

Lines changed: 16 additions & 16 deletions

File tree

src/content/main.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ async function addLevelIndicators() {
242242
const isShowUserTempTier = JSON.parse(await getPrefs('show_userpage_temp_tier', 'false'))
243243
const userData = await (await fetch("https://api.solved.ac/user_information.php?id=" + userId)).json()
244244

245-
if (!userData &&!isShowUserTempTier) return
245+
if (!userData && !isShowUserTempTier) return
246246

247247
var newRow = document.createElement("tr")
248248
var newRowHeader = document.createElement("th")
@@ -256,21 +256,25 @@ async function addLevelIndicators() {
256256
var levelData = []
257257

258258
const levelDataResponses = await (await fetch("https://api.solved.ac/exp_table.php")).text()
259-
levelDataResponses.split(',').forEach(level=>levelData.push(parseInt(level)));
259+
levelDataResponses.split(',').forEach(level => levelData.push(parseInt(level)))
260260

261-
for(i = 0; i< acceptProblems.length;i++) {
261+
for(i = 0; i < acceptProblems.length; i++) {
262262
var problemId = acceptProblems[i].textContent;
263263
promises[i] = fetch("https://api.solved.ac/problem_level.php?id=" + problemId)
264264
}
265265

266-
responses = await Promise.all(promises);
267-
for(i = 0;i<responses.length;i++) {
266+
responses = await Promise.all(promises)
267+
for(i = 0; i < responses.length; i++) {
268268
data = await responses[i].json()
269269
if(data.level != 0)
270-
totalExpPoint+= levelData[data.level]
270+
totalExpPoint += levelData[data.level]
271271
}
272272

273-
var expectLevel = getExpectLevelFromExpPoint(totalExpPoint)
273+
var expTable = []
274+
const expTableData = await (await fetch("https://api.solved.ac/exp_cap.php")).text()
275+
expTableData.split(',').forEach(level => expTable.push(parseInt(level)))
276+
var expectLevel = getExpectLevelFromExpPoint(totalExpPoint, expTable)
277+
274278
newRowHeader.innerText = "solved.ac 임시티어"
275279
newRowDescription.innerHTML = "<a href=\"https://www.acmicpc.net/user/" + userId + "\">"
276280
+ "<span class=\"text-" + levelCssClass(expectLevel) + "\">"

src/content/utils.js

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,11 @@ function algorithmToTag(item, showTagsInEnglish) {
105105
}
106106
}
107107

108-
function getExpectLevelFromExpPoint(exp) {
109-
const expTable = [0, 4800, 15740, 38720, 83400, 163700, 298000, 785400, 1202800, 1795000, 2834700,
110-
4276000, 6261000, 8982000, 12704000, 18796000, 26842000, 37941000, 52792000,
111-
720000000, 152000000, 213000000, 294000000, 380000000, 639000000, 1000000000,
112-
1200000000, 1500000000]
113-
for(i=0;i<expTable.length-1;i++) {
114-
if(expTable[i] < exp && exp < expTable[i+1])
115-
return i+1;
108+
function getExpectLevelFromExpPoint(exp, expTable) {
109+
for(i=0; i < expTable.length - 1; i++) {
110+
if(expTable[i] < exp && exp < expTable[i + 1])
111+
return i + 1;
116112
}
117-
if(exp>expTable[expTable.length-1])
113+
if(exp>expTable[expTable.length - 1])
118114
return expTable.length
119115
}

0 commit comments

Comments
 (0)