@rian8337/osu-droid-utilities 4.0.0-beta.13 → 4.0.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var osuBase = require('@rian8337/osu-base');
4
- var osuDroidReplayAnalyzer = require('@rian8337/osu-droid-replay-analyzer');
5
4
 
6
5
  /**
7
6
  * Represents an osu!droid score.
@@ -62,30 +61,51 @@ class Score {
62
61
  */
63
62
  oldStatistics;
64
63
  /**
65
- * The forced AR of the play.
64
+ * The force CS of the play.
66
65
  */
67
- forcedAR;
66
+ forceCS;
68
67
  /**
69
- * The replay of the score.
68
+ * The force AR of the play.
70
69
  */
71
- replay;
70
+ forceAR;
71
+ /**
72
+ * The force OD of the play.
73
+ */
74
+ forceOD;
75
+ /**
76
+ * The force HP of the play.
77
+ */
78
+ forceHP;
79
+ /**
80
+ * The follow delay set for the FL mod, in seconds.
81
+ */
82
+ flashlightFollowDelay;
72
83
  /**
73
84
  * The complete mod string of this score (mods, speed multiplier, and force AR combined).
74
85
  */
75
86
  get completeModString() {
76
87
  let finalString = `+${this.mods.length > 0 ? this.mods.map((v) => v.acronym) : "No Mod"}`;
77
- if (this.forcedAR !== undefined || this.speedMultiplier !== 1) {
78
- finalString += " (";
79
- if (this.forcedAR !== undefined) {
80
- finalString += `AR${this.forcedAR}`;
81
- }
82
- if (this.speedMultiplier !== 1) {
83
- if (this.forcedAR !== undefined) {
84
- finalString += ", ";
85
- }
86
- finalString += `${this.speedMultiplier}x`;
87
- }
88
- finalString += ")";
88
+ const customStats = [];
89
+ if (this.speedMultiplier !== 1) {
90
+ customStats.push(`${this.speedMultiplier}x`);
91
+ }
92
+ if (this.forceAR !== undefined) {
93
+ customStats.push(`AR${this.forceAR}`);
94
+ }
95
+ if (this.forceOD !== undefined) {
96
+ customStats.push(`OD${this.forceOD}`);
97
+ }
98
+ if (this.forceCS !== undefined) {
99
+ customStats.push(`CS${this.forceCS}`);
100
+ }
101
+ if (this.forceHP !== undefined) {
102
+ customStats.push(`HP${this.forceHP}`);
103
+ }
104
+ if (this.flashlightFollowDelay !== undefined) {
105
+ customStats.push(`FLD${this.flashlightFollowDelay}`);
106
+ }
107
+ if (customStats.length > 0) {
108
+ finalString += ` (${customStats.join(", ")})`;
89
109
  }
90
110
  return finalString;
91
111
  }
@@ -100,26 +120,9 @@ class Score {
100
120
  this.date = new Date(values?.date ?? 0);
101
121
  this.accuracy = values?.accuracy ?? new osuBase.Accuracy({});
102
122
  this.hash = values?.hash ?? "";
103
- const modstrings = (values?.mods ?? "").split("|");
104
- let actualMods = "";
105
- for (const str of modstrings) {
106
- if (!str) {
107
- continue;
108
- }
109
- if (str.startsWith("AR")) {
110
- this.forcedAR = parseFloat(str.replace("AR", ""));
111
- }
112
- else if (str.startsWith("x")) {
113
- this.speedMultiplier = parseFloat(str.replace("x", ""));
114
- }
115
- else {
116
- actualMods += str;
117
- }
118
- }
119
- this.mods = osuBase.ModUtil.droidStringToMods(actualMods);
120
- // The pipe was added in 1.6.8 first pre-release (https://github.com/osudroid/osu-droid/commit/c08c406f4b2e535ed1ec43607a72fd8f70f8e316),
121
- // so we can use that information to infer whether the score was set on version 1.6.7 or lower.
122
- this.oldStatistics = !(values?.mods ?? "").includes("|");
123
+ this.mods = [];
124
+ this.oldStatistics = false;
125
+ this.parseMods(values?.mods ?? "");
123
126
  }
124
127
  /**
125
128
  * Retrieves score information on a beatmap from a player.
@@ -159,24 +162,7 @@ class Score {
159
162
  this.score = parseInt(play[3]);
160
163
  this.combo = parseInt(play[4]);
161
164
  this.rank = play[5];
162
- const modstrings = play[6].split("|");
163
- let actualMods = "";
164
- for (const str of modstrings) {
165
- if (!str) {
166
- continue;
167
- }
168
- if (str.startsWith("AR")) {
169
- this.forcedAR = parseFloat(str.replace("AR", ""));
170
- }
171
- else if (str.startsWith("x")) {
172
- this.speedMultiplier = parseFloat(str.replace("x", ""));
173
- }
174
- else {
175
- actualMods += str;
176
- }
177
- }
178
- this.mods = osuBase.ModUtil.droidStringToMods(actualMods);
179
- this.oldStatistics = !play[6].includes("|");
165
+ this.parseMods(play[6]);
180
166
  this.accuracy = new osuBase.Accuracy({
181
167
  n300: parseInt(play[8]),
182
168
  n100: parseInt(play[9]),
@@ -203,23 +189,55 @@ class Score {
203
189
  this.hash = play[14];
204
190
  return this;
205
191
  }
206
- /**
207
- * Downloads the replay of this score.
208
- */
209
- async downloadReplay() {
210
- if (!this.scoreID || this.replay) {
211
- return;
212
- }
213
- this.replay = await new osuDroidReplayAnalyzer.ReplayAnalyzer({
214
- scoreID: this.scoreID,
215
- }).analyze();
216
- }
217
192
  /**
218
193
  * Returns a string representative of the class.
219
194
  */
220
195
  toString() {
221
196
  return `Player: ${this.username}, uid: ${this.uid}, title: ${this.title}, score: ${this.score}, combo: ${this.combo}, rank: ${this.rank}, acc: ${this.accuracy}%, date: ${this.date}, mods: ${this.mods}, hash: ${this.hash}`;
222
197
  }
198
+ /**
199
+ * Parses a modstring returned from the osu!droid API or replay.
200
+ *
201
+ * @param str The modstring.
202
+ */
203
+ parseMods(str) {
204
+ const modstrings = str.split("|");
205
+ let actualMods = "";
206
+ for (const str of modstrings) {
207
+ if (!str) {
208
+ continue;
209
+ }
210
+ switch (true) {
211
+ // Forced stats
212
+ case str.startsWith("CS"):
213
+ this.forceCS = parseFloat(str.replace("CS", ""));
214
+ break;
215
+ case str.startsWith("AR"):
216
+ this.forceAR = parseFloat(str.replace("AR", ""));
217
+ break;
218
+ case str.startsWith("OD"):
219
+ this.forceOD = parseFloat(str.replace("OD", ""));
220
+ break;
221
+ case str.startsWith("HP"):
222
+ this.forceHP = parseFloat(str.replace("HP", ""));
223
+ break;
224
+ // FL follow delay
225
+ case str.startsWith("FLD"):
226
+ this.flashlightFollowDelay = parseFloat(str.replace("FLD", ""));
227
+ break;
228
+ // Speed multiplier
229
+ case str.startsWith("x"):
230
+ this.speedMultiplier = parseFloat(str.replace("x", ""));
231
+ break;
232
+ default:
233
+ actualMods += str;
234
+ }
235
+ }
236
+ this.mods = osuBase.ModUtil.droidStringToMods(actualMods);
237
+ // The pipe was added in 1.6.8 first pre-release (https://github.com/osudroid/osu-droid/commit/c08c406f4b2e535ed1ec43607a72fd8f70f8e316),
238
+ // so we can use that information to infer whether the score was set on version 1.6.7 or lower.
239
+ this.oldStatistics = !str.includes("|");
240
+ }
223
241
  }
224
242
 
225
243
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/Score.ts","../src/Player.ts"],"sourcesContent":["import { Accuracy, ModUtil, DroidAPIRequestBuilder, } from \"@rian8337/osu-base\";\nimport { ReplayAnalyzer } from \"@rian8337/osu-droid-replay-analyzer\";\n/**\n * Represents an osu!droid score.\n */\nexport class Score {\n /**\n * The uid of the player.\n */\n uid;\n /**\n * The ID of the score.\n */\n scoreID;\n /**\n * The player's name.\n */\n username;\n /**\n * The title of the beatmap.\n */\n title;\n /**\n * The maximum combo achieved in the play.\n */\n combo;\n /**\n * The score achieved in the play.\n */\n score;\n /**\n * The rank achieved in the play.\n */\n rank;\n /**\n * The date of which the play was set.\n */\n date;\n /**\n * The accuracy achieved in the play.\n */\n accuracy;\n /**\n * Enabled modifications in the score.\n */\n mods;\n /**\n * MD5 hash of the play.\n */\n hash;\n /**\n * The speed multiplier of the play.\n */\n speedMultiplier = 1;\n /**\n * Whether to use old statistics for this score when calculating with `MapStats`.\n *\n * Otherwise, this denotes whether the score was set in version 1.6.7 or lower.\n */\n oldStatistics;\n /**\n * The forced AR of the play.\n */\n forcedAR;\n /**\n * The replay of the score.\n */\n replay;\n /**\n * The complete mod string of this score (mods, speed multiplier, and force AR combined).\n */\n get completeModString() {\n let finalString = `+${this.mods.length > 0 ? this.mods.map((v) => v.acronym) : \"No Mod\"}`;\n if (this.forcedAR !== undefined || this.speedMultiplier !== 1) {\n finalString += \" (\";\n if (this.forcedAR !== undefined) {\n finalString += `AR${this.forcedAR}`;\n }\n if (this.speedMultiplier !== 1) {\n if (this.forcedAR !== undefined) {\n finalString += \", \";\n }\n finalString += `${this.speedMultiplier}x`;\n }\n finalString += \")\";\n }\n return finalString;\n }\n constructor(values) {\n this.uid = values?.uid ?? 0;\n this.scoreID = values?.scoreID ?? 0;\n this.username = values?.username ?? \"\";\n this.title = values?.title ?? \"\";\n this.combo = values?.combo ?? 0;\n this.score = values?.score ?? 0;\n this.rank = values?.rank ?? \"\";\n this.date = new Date(values?.date ?? 0);\n this.accuracy = values?.accuracy ?? new Accuracy({});\n this.hash = values?.hash ?? \"\";\n const modstrings = (values?.mods ?? \"\").split(\"|\");\n let actualMods = \"\";\n for (const str of modstrings) {\n if (!str) {\n continue;\n }\n if (str.startsWith(\"AR\")) {\n this.forcedAR = parseFloat(str.replace(\"AR\", \"\"));\n }\n else if (str.startsWith(\"x\")) {\n this.speedMultiplier = parseFloat(str.replace(\"x\", \"\"));\n }\n else {\n actualMods += str;\n }\n }\n this.mods = ModUtil.droidStringToMods(actualMods);\n // The pipe was added in 1.6.8 first pre-release (https://github.com/osudroid/osu-droid/commit/c08c406f4b2e535ed1ec43607a72fd8f70f8e316),\n // so we can use that information to infer whether the score was set on version 1.6.7 or lower.\n this.oldStatistics = !(values?.mods ?? \"\").includes(\"|\");\n }\n /**\n * Retrieves score information on a beatmap from a player.\n *\n * @param uid The uid of the player.\n * @param hash The MD5 hash of the beatmap.\n * @returns The score, `null` if the score is not found.\n */\n static async getFromHash(uid, hash) {\n const score = new Score();\n const apiRequestBuilder = new DroidAPIRequestBuilder()\n .setEndpoint(\"scoresearchv2.php\")\n .addParameter(\"uid\", uid)\n .addParameter(\"hash\", hash);\n const result = await apiRequestBuilder.sendRequest();\n if (result.statusCode !== 200) {\n throw new Error(\"Error retrieving score data\");\n }\n const entry = result.data.toString(\"utf-8\").split(\"<br>\");\n entry.shift();\n if (entry.length === 0) {\n return null;\n }\n score.fillInformation(entry[0]);\n return score;\n }\n /**\n * Fills this instance with score information.\n *\n * @param info The score information from API response to fill with.\n */\n fillInformation(info) {\n const play = info.split(\" \");\n this.scoreID = parseInt(play[0]);\n this.uid = parseInt(play[1]);\n this.username = play[2];\n this.score = parseInt(play[3]);\n this.combo = parseInt(play[4]);\n this.rank = play[5];\n const modstrings = play[6].split(\"|\");\n let actualMods = \"\";\n for (const str of modstrings) {\n if (!str) {\n continue;\n }\n if (str.startsWith(\"AR\")) {\n this.forcedAR = parseFloat(str.replace(\"AR\", \"\"));\n }\n else if (str.startsWith(\"x\")) {\n this.speedMultiplier = parseFloat(str.replace(\"x\", \"\"));\n }\n else {\n actualMods += str;\n }\n }\n this.mods = ModUtil.droidStringToMods(actualMods);\n this.oldStatistics = !play[6].includes(\"|\");\n this.accuracy = new Accuracy({\n n300: parseInt(play[8]),\n n100: parseInt(play[9]),\n n50: parseInt(play[10]),\n nmiss: parseInt(play[11]),\n });\n const date = new Date(parseInt(play[12]) * 1000);\n date.setUTCHours(date.getUTCHours() + 8);\n // https://stackoverflow.com/a/63199512\n const tz = date\n .toLocaleString(\"en\", {\n timeZone: \"Europe/Berlin\",\n timeStyle: \"long\",\n })\n .split(\" \")\n .slice(-1)[0];\n const dateString = date.toString();\n const msOffset = Date.parse(`${dateString} UTC`) - Date.parse(`${dateString} ${tz}`);\n date.setUTCMilliseconds(date.getUTCMilliseconds() - msOffset);\n this.date = date;\n this.title = play[13]\n .substring(0, play[13].length - 4)\n .replace(/_/g, \" \");\n this.hash = play[14];\n return this;\n }\n /**\n * Downloads the replay of this score.\n */\n async downloadReplay() {\n if (!this.scoreID || this.replay) {\n return;\n }\n this.replay = await new ReplayAnalyzer({\n scoreID: this.scoreID,\n }).analyze();\n }\n /**\n * Returns a string representative of the class.\n */\n toString() {\n return `Player: ${this.username}, uid: ${this.uid}, title: ${this.title}, score: ${this.score}, combo: ${this.combo}, rank: ${this.rank}, acc: ${this.accuracy}%, date: ${this.date}, mods: ${this.mods}, hash: ${this.hash}`;\n }\n}\n//# sourceMappingURL=Score.js.map","import { DroidAPIRequestBuilder, Accuracy, } from \"@rian8337/osu-base\";\nimport { Score } from \"./Score\";\n/**\n * Represents an osu!droid player.\n */\nexport class Player {\n /**\n * The uid of the player.\n */\n uid = 0;\n /**\n * The username of the player.\n */\n username = \"\";\n /**\n * The avatar URL of the player.\n */\n avatarURL = \"\";\n /**\n * The location of the player based on ISO 3166-1 country codes. See {@link https://en.wikipedia.org/wiki/ISO_3166-1 this} Wikipedia page for more information.\n */\n location = \"\";\n /**\n * The email that is attached to the player's account.\n */\n email = \"\";\n /**\n * The overall rank of the player.\n */\n rank = 0;\n /**\n * The total score of the player.\n */\n score = 0;\n /**\n * The overall accuracy of the player.\n */\n accuracy = 0;\n /**\n * The amount of times the player has played.\n */\n playCount = 0;\n /**\n * Recent plays of the player.\n */\n recentPlays = [];\n /**\n * Retrieves a player's info based on their username.\n *\n * @param uidOrUsername The uid or username of the player.\n * @returns The player, `null` if the player is not found.\n */\n static async getInformation(uidOrUsername) {\n const player = new Player();\n const apiRequestBuilder = new DroidAPIRequestBuilder()\n .setEndpoint(\"getuserinfo.php\")\n .addParameter(typeof uidOrUsername === \"number\" ? \"uid\" : \"username\", uidOrUsername);\n const result = await apiRequestBuilder.sendRequest();\n if (result.statusCode !== 200) {\n throw new Error(\"Error retrieving player data\");\n }\n const data = result.data.toString(\"utf-8\");\n const resArr = data.split(\"<br>\");\n const headerRes = resArr[0].split(\" \");\n if (headerRes[0] === \"FAILED\") {\n return null;\n }\n player.fillInformation(data);\n return player;\n }\n /**\n * Fills this instance with player information.\n *\n * @param info The player information from API response to fill with.\n */\n fillInformation(info) {\n const resArr = info.split(\"<br>\");\n const headerRes = resArr[0].split(\" \");\n if (headerRes[0] === \"FAILED\") {\n return this;\n }\n const obj = JSON.parse(resArr[1]);\n this.uid = parseInt(headerRes[1]);\n this.username = headerRes[2];\n this.score = parseInt(headerRes[3]);\n this.playCount = parseInt(headerRes[4]);\n this.accuracy = parseFloat((parseFloat(headerRes[5]) * 100).toFixed(2));\n this.email = headerRes[6];\n this.location = headerRes[7];\n this.avatarURL = `https://osudroid.moe/user/avatar?id=${this.uid}`;\n this.rank = obj.rank;\n const recent = obj.recent;\n for (const play of recent) {\n // https://stackoverflow.com/a/63199512\n const date = new Date((play.date + 3600 * 8) * 1000);\n const tz = date\n .toLocaleString(\"en\", {\n timeZone: \"Europe/Berlin\",\n timeStyle: \"long\",\n })\n .split(\" \")\n .slice(-1)[0];\n const dateString = date.toString();\n const msOffset = Date.parse(`${dateString} UTC`) -\n Date.parse(`${dateString} ${tz}`);\n this.recentPlays.push(new Score({\n uid: this.uid,\n username: this.username,\n scoreID: play.scoreid,\n score: play.score,\n accuracy: new Accuracy({\n n300: play.perfect,\n n100: play.good,\n n50: play.bad,\n nmiss: play.miss,\n }),\n rank: play.mark,\n combo: play.combo,\n title: play.filename,\n date: date.getTime() - msOffset,\n mods: play.mode,\n hash: play.hash,\n }));\n }\n return this;\n }\n /**\n * Returns a string representative of the class.\n */\n toString() {\n return `Username: ${this.username}\\nUID: ${this.uid}\\nRank: ${this.rank}\\nScore: ${this.score}\\nPlay count: ${this.playCount}`;\n }\n}\n//# sourceMappingURL=Player.js.map"],"names":["Accuracy","ModUtil","DroidAPIRequestBuilder","ReplayAnalyzer"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/Score.ts","../src/Player.ts"],"sourcesContent":[null,null],"names":["Accuracy","DroidAPIRequestBuilder","ModUtil"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-droid-utilities",
3
- "version": "4.0.0-beta.13",
3
+ "version": "4.0.0-beta.15",
4
4
  "description": "A module containing utilities for osu!droid.",
5
5
  "keywords": [
6
6
  "osu",
@@ -33,11 +33,10 @@
33
33
  "url": "https://github.com/Rian8337/osu-droid-module/issues"
34
34
  },
35
35
  "dependencies": {
36
- "@rian8337/osu-base": "^4.0.0-beta.13",
37
- "@rian8337/osu-droid-replay-analyzer": "^4.0.0-beta.13"
36
+ "@rian8337/osu-base": "^4.0.0-beta.15"
38
37
  },
39
38
  "publishConfig": {
40
39
  "access": "public"
41
40
  },
42
- "gitHead": "e257d4c0d01722835ede297c9347a86668a4647c"
41
+ "gitHead": "5f129478c70d3af938cde6c311863ee07e0fab16"
43
42
  }
@@ -1,5 +1,4 @@
1
1
  import { Accuracy, Mod, IModApplicableToDroid } from '@rian8337/osu-base';
2
- import { ReplayAnalyzer } from '@rian8337/osu-droid-replay-analyzer';
3
2
 
4
3
  interface ScoreInformation {
5
4
  /**
@@ -106,13 +105,25 @@ declare class Score {
106
105
  */
107
106
  oldStatistics: boolean;
108
107
  /**
109
- * The forced AR of the play.
108
+ * The force CS of the play.
110
109
  */
111
- forcedAR?: number;
110
+ forceCS?: number;
112
111
  /**
113
- * The replay of the score.
112
+ * The force AR of the play.
114
113
  */
115
- replay?: ReplayAnalyzer;
114
+ forceAR?: number;
115
+ /**
116
+ * The force OD of the play.
117
+ */
118
+ forceOD?: number;
119
+ /**
120
+ * The force HP of the play.
121
+ */
122
+ forceHP?: number;
123
+ /**
124
+ * The follow delay set for the FL mod, in seconds.
125
+ */
126
+ flashlightFollowDelay?: number;
116
127
  /**
117
128
  * The complete mod string of this score (mods, speed multiplier, and force AR combined).
118
129
  */
@@ -132,14 +143,16 @@ declare class Score {
132
143
  * @param info The score information from API response to fill with.
133
144
  */
134
145
  fillInformation(info: string): Score;
135
- /**
136
- * Downloads the replay of this score.
137
- */
138
- downloadReplay(): Promise<void>;
139
146
  /**
140
147
  * Returns a string representative of the class.
141
148
  */
142
149
  toString(): string;
150
+ /**
151
+ * Parses a modstring returned from the osu!droid API or replay.
152
+ *
153
+ * @param str The modstring.
154
+ */
155
+ private parseMods;
143
156
  }
144
157
 
145
158
  /**