Skip to content

Commit 8a49d45

Browse files
authored
Merge pull request #3 from net-tech/v1.1.0
V1.1.0
2 parents 7933543 + dfd02d7 commit 8a49d45

File tree

7 files changed

+105
-109
lines changed

7 files changed

+105
-109
lines changed

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
"dev": "ts-node ./src/index.ts"
88
},
99
"dependencies": {
10-
"@sapphire/stopwatch": "^1.5.0",
11-
"@sapphire/time-utilities": "^1.7.8",
10+
"@types/cli-progress": "^3.11.0",
11+
"@types/ms": "^0.7.31",
1212
"@types/node": "^18.11.13",
1313
"@types/prompt": "^1.1.4",
1414
"axios": "^1.1.3",
15+
"cli-progress": "^3.11.2",
16+
"ms": "^2.1.3",
1517
"pino": "^8.7.0",
1618
"pino-pretty": "^9.1.1",
1719
"prompt": "^1.3.0"

src/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import prompt from "prompt"
22
import { log } from "./services/logger"
33
import TimeService from "./services/time"
4-
import { DurationFormatter } from "@sapphire/time-utilities"
4+
import ms from "ms"
55

66
const schema = {
77
properties: {
@@ -38,10 +38,10 @@ prompt.get(schema, (err: any, result: { url: string }) => {
3838
? `\n\n${result.zeros.count} times out of ${result.joinCount} were 0ms apart. (This happened ${result.zeros.chanceRounded}% of the time in this raid)\n\nThese are the indexes of the 0ms apart times: ${result.zeros.indexListString}.`
3939
: ""
4040

41-
const averageTime = new DurationFormatter().format(parseInt(result.averageTime.averageRounded))
41+
const averageTime = ms(result.averageTime.averageRounded)
4242

4343
log.info(
44-
`Detected ${result.joinCount} joins. Average difference between join times rounded is ${averageTime} (${result.averageTime.averageRaw}ms).${zerosString}\n\nTook ${result.timeTaken}.`
44+
`Detected ${result.joinCount} joins. Average difference between join times rounded is ${averageTime}ms (${result.averageTime.averageRaw}ms).${zerosString}.`
4545
)
4646
})
4747
.catch((error) => {

src/services/text.ts

-30
This file was deleted.

src/services/time.ts

+43-23
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,31 @@
1-
import { Stopwatch } from "@sapphire/stopwatch"
2-
import TextService from "./text"
31
import { log } from "./logger"
4-
import { timeDifferenceResult } from "../types/time"
5-
import { logDomains } from "../types/general"
2+
import { logDomains, timeDifferenceResult } from "../types/master"
3+
import cliProgress from "cli-progress"
4+
import axios from "axios"
65

76
class TimeService {
7+
8+
/**
9+
* Gets text from a URL.
10+
* @param url The URL to get the text from.
11+
* @returns The text from the URL.
12+
*/
13+
public static getText(url: string) {
14+
log.debug(`Getting text from ${url}.`)
15+
return new Promise((resolve, reject) => {
16+
axios
17+
.get(url)
18+
.then((response) => {
19+
log.debug(`Got text from ${url}.`)
20+
resolve(response.data)
21+
})
22+
.catch((error) => {
23+
log.error(error, `Error getting text from ${url}.`)
24+
reject(error)
25+
})
26+
})
27+
}
28+
829
public static async timeDifference(
930
url: string
1031
): Promise<timeDifferenceResult> {
@@ -15,7 +36,7 @@ class TimeService {
1536
process.exit(1)
1637
}
1738

18-
const text = await TextService.getText(url)
39+
const text = await this.getText(url)
1940
.then((text) => text as string)
2041
.catch((error) => {
2142
log.fatal(error, "Error getting text from URL.")
@@ -24,8 +45,6 @@ class TimeService {
2445

2546
log.debug("Got text from URL.")
2647

27-
const time = new Stopwatch()
28-
2948
const times = text.match(/\d\d:\d\d:\d\d\.\d\d\d-\d\d\d\d/g)
3049
const zeros: number[] = []
3150
const diffs: number[] = []
@@ -35,28 +54,29 @@ class TimeService {
3554
process.exit(1)
3655
}
3756

38-
const dates = times.map(
39-
(time) =>
40-
new Date(
41-
Date.parse(
42-
`${new Intl.DateTimeFormat("en-CA", {
43-
timeZone: "America/Los_Angeles",
44-
}).format(Date.now())}T${time.replace(/(\d\d)(\d\d)$/, "$1:$2")}`
45-
)
57+
const bar1 = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic)
58+
bar1.start(times.length, 0)
59+
60+
const dates: Date[] = []
61+
for (let i = 0; i < times.length; i++) {
62+
bar1.increment()
63+
const date = new Date(
64+
Date.parse(
65+
`${new Intl.DateTimeFormat("en-CA", {
66+
timeZone: "America/Los_Angeles",
67+
}).format(Date.now())}T${times[i].replace(/(\d\d)(\d\d)$/, "$1:$2")}`
4668
)
47-
)
69+
)
70+
dates.push(date)
71+
}
4872

4973
for (let i = 1; i < dates.length; i++) {
74+
bar1.update(i + 1)
5075
const diff = dates[i].getTime() - dates[i - 1].getTime()
5176
diffs.push(diff)
5277
if (diff === 0) {
5378
zeros.push(i)
5479
}
55-
log.debug(
56-
`Difference between join time of ID ${times[i]} and ID ${
57-
times[i - 1]
58-
} is ${diff}ms.`
59-
)
6080
}
6181

6282
const zerosList =
@@ -65,7 +85,8 @@ class TimeService {
6585
: zeros.join(", ")
6686
const chance = zeros.length / diffs.length
6787
const average = diffs.reduce((a, b) => a + b) / diffs.length
68-
time.stop()
88+
89+
bar1.stop()
6990

7091
return {
7192
averageTime: {
@@ -79,7 +100,6 @@ class TimeService {
79100
indexArray: zeros,
80101
},
81102
joinCount: diffs.length,
82-
timeTaken: time.toString(),
83103
}
84104
}
85105
}

src/types/general.ts

-3
This file was deleted.

src/types/time.ts src/types/master.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const logDomains = ["logs.beemo.gg", "archive.ayu.dev"]
2+
13
interface averageTime {
24
averageRaw: number
35
averageRounded: string
@@ -14,7 +16,6 @@ interface timeDifferenceResult {
1416
averageTime: averageTime
1517
zeros: zeros
1618
joinCount: number
17-
timeTaken: string
1819
}
1920

20-
export { timeDifferenceResult }
21+
export { logDomains, timeDifferenceResult }

yarn.lock

+52-46
Original file line numberDiff line numberDiff line change
@@ -7,49 +7,17 @@
77
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
88
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
99

10-
"@sapphire/cron@^1.0.0":
11-
version "1.0.0"
12-
resolved "https://registry.yarnpkg.com/@sapphire/cron/-/cron-1.0.0.tgz#55728f3477c5c1d50a877367d5f10cc84d3af03f"
13-
integrity sha512-pKYfpnHiDFknur3yoquA8cqbJZS140y2oqjshwGGmtjiuIbUngQhPHGwdWHNDKDrF6EKbOK06nd2URE+0eUrfQ==
14-
dependencies:
15-
"@sapphire/utilities" "^3.9.3"
16-
17-
"@sapphire/duration@^1.0.0":
18-
version "1.0.0"
19-
resolved "https://registry.yarnpkg.com/@sapphire/duration/-/duration-1.0.0.tgz#baec4898ee71099093580db774474b25167150ff"
20-
integrity sha512-B+6nKYnBmIlqqbamcR4iBvbQHz6/Kq2JUVM0rA3lQ+aYUYDdcA1Spt66CKtPWwdTYEtSv0VY6Jv27WCtFNYTUg==
21-
22-
"@sapphire/stopwatch@^1.5.0":
23-
version "1.5.0"
24-
resolved "https://registry.yarnpkg.com/@sapphire/stopwatch/-/stopwatch-1.5.0.tgz#4acf7352f969f0c81d69a838ecbfc8b6026ff660"
25-
integrity sha512-DtyKugdy3JTqm6JnEepTY64fGJAqlusDVrlrzifEgSCfGYCqpvB+SBldkWtDH+z+zLcp+PyaFLq7xpVfkhmvGg==
26-
dependencies:
27-
tslib "^2.4.0"
28-
29-
"@sapphire/time-utilities@^1.7.8":
30-
version "1.7.8"
31-
resolved "https://registry.yarnpkg.com/@sapphire/time-utilities/-/time-utilities-1.7.8.tgz#b96cf739e58b1a9776f8c84abcb5915b020bf84d"
32-
integrity sha512-T6X/nwCvKhxmNRexgmA3KwLt3Z+xzlErkre4viflx46hHOmNNb3hoIyQtekgHYrabEaHWNbqW4PW7gC3hBc+ag==
10+
"@types/cli-progress@^3.11.0":
11+
version "3.11.0"
12+
resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.0.tgz#ec79df99b26757c3d1c7170af8422e0fc95eef7e"
13+
integrity sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==
3314
dependencies:
34-
"@sapphire/cron" "^1.0.0"
35-
"@sapphire/duration" "^1.0.0"
36-
"@sapphire/timer-manager" "^1.0.0"
37-
"@sapphire/timestamp" "^1.0.0"
38-
39-
"@sapphire/timer-manager@^1.0.0":
40-
version "1.0.0"
41-
resolved "https://registry.yarnpkg.com/@sapphire/timer-manager/-/timer-manager-1.0.0.tgz#e8ecf15a7042ee611048b4f90fab1399653d3934"
42-
integrity sha512-vxxnv75QPMGKt6IB6nL2xRJfwzcUQ9DBGzJLg6G8eS5O4u7j3IR/yr/GQsa4gIpjw6kQOgn8lUdnSTlpnERTbQ==
43-
44-
"@sapphire/timestamp@^1.0.0":
45-
version "1.0.0"
46-
resolved "https://registry.yarnpkg.com/@sapphire/timestamp/-/timestamp-1.0.0.tgz#572571e8cfc3515265d719704fb2818135f3ad31"
47-
integrity sha512-80g0xYP4zxsgNizMO0HVf+LcM1mD/jxke4feSytDzw8u1pEPr1APfIz3Ix7JB9VI113p0KjLBMywl+ceaN7jrw==
15+
"@types/node" "*"
4816

49-
"@sapphire/utilities@^3.9.3":
50-
version "3.11.0"
51-
resolved "https://registry.yarnpkg.com/@sapphire/utilities/-/utilities-3.11.0.tgz#2dccfb332dc5c119e1425cce6b2c64160b770bad"
52-
integrity sha512-ich7J+329UTEgWxgk8b871rMhbFW/hvXdabdiKaUKd6g10eIMkIakWf+EGkDQsiDSiebIXll9TIPPmWtN3cVSw==
17+
"@types/ms@^0.7.31":
18+
version "0.7.31"
19+
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
20+
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
5321

5422
"@types/node@*", "@types/node@^18.11.13":
5523
version "18.11.13"
@@ -76,6 +44,11 @@ abort-controller@^3.0.0:
7644
dependencies:
7745
event-target-shim "^5.0.0"
7846

47+
ansi-regex@^5.0.1:
48+
version "5.0.1"
49+
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
50+
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
51+
7952
8053
version "3.2.3"
8154
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
@@ -132,6 +105,13 @@ buffer@^6.0.3:
132105
base64-js "^1.3.1"
133106
ieee754 "^1.2.1"
134107

108+
cli-progress@^3.11.2:
109+
version "3.11.2"
110+
resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.11.2.tgz#f8c89bd157e74f3f2c43bcfb3505670b4d48fc77"
111+
integrity sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==
112+
dependencies:
113+
string-width "^4.2.3"
114+
135115
colorette@^2.0.7:
136116
version "2.0.19"
137117
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
@@ -164,6 +144,11 @@ delayed-stream@~1.0.0:
164144
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
165145
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
166146

147+
emoji-regex@^8.0.0:
148+
version "8.0.0"
149+
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
150+
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
151+
167152
end-of-stream@^1.1.0:
168153
version "1.4.4"
169154
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -257,6 +242,11 @@ inherits@2, inherits@^2.0.3:
257242
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
258243
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
259244

245+
is-fullwidth-code-point@^3.0.0:
246+
version "3.0.0"
247+
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
248+
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
249+
260250
261251
version "0.1.2"
262252
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -296,6 +286,11 @@ minimist@^1.2.6:
296286
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
297287
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
298288

289+
ms@^2.1.3:
290+
version "2.1.3"
291+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
292+
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
293+
299294
mute-stream@~0.0.4:
300295
version "0.0.8"
301296
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
@@ -470,13 +465,29 @@ [email protected]:
470465
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
471466
integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
472467

468+
string-width@^4.2.3:
469+
version "4.2.3"
470+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
471+
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
472+
dependencies:
473+
emoji-regex "^8.0.0"
474+
is-fullwidth-code-point "^3.0.0"
475+
strip-ansi "^6.0.1"
476+
473477
string_decoder@^1.1.1:
474478
version "1.3.0"
475479
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
476480
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
477481
dependencies:
478482
safe-buffer "~5.2.0"
479483

484+
strip-ansi@^6.0.1:
485+
version "6.0.1"
486+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
487+
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
488+
dependencies:
489+
ansi-regex "^5.0.1"
490+
480491
strip-json-comments@^3.1.1:
481492
version "3.1.1"
482493
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -489,11 +500,6 @@ thread-stream@^2.0.0:
489500
dependencies:
490501
real-require "^0.2.0"
491502

492-
tslib@^2.4.0:
493-
version "2.4.1"
494-
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
495-
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
496-
497503
util-deprecate@^1.0.1:
498504
version "1.0.2"
499505
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"

0 commit comments

Comments
 (0)