UNPKG

2.7 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const slugify_1 = __importDefault(require("slugify"));
7const configs_1 = require("../configs");
8const separateIntoLines = (jagexPlayer) => {
9 return jagexPlayer.split("\n");
10};
11const formatActivities = (activitiesArray) => {
12 const activities = {};
13 configs_1.runescape.hiscores.activities.map((activityName, index) => {
14 const [rank, count] = activitiesArray[index].split(",");
15 activities[slugify_1.default(activityName, {
16 replacement: "_",
17 remove: /[*+~.()'"!:@]/g,
18 lower: true,
19 })] = { rank: parseInt(rank), count: parseInt(count) };
20 });
21 return activities;
22};
23const formatSkills = (skillsArray) => {
24 const skills = {};
25 configs_1.runescape.hiscores.skills.map((skillName, index) => {
26 const [rank, level, experience] = skillsArray[index].split(",");
27 skills[slugify_1.default(skillName, {
28 replacement: "_",
29 remove: /[*+~.()'"!:@]/g,
30 lower: true,
31 })] = {
32 rank: parseInt(rank),
33 level: parseInt(level),
34 experience: parseInt(experience),
35 };
36 });
37 return skills;
38};
39const formatClanMembers = (membersArray) => {
40 const members = {};
41 membersArray.map(member => {
42 const [name, rank, experience, kills] = member.split(",");
43 const regex = new RegExp(/\uFFFD/g);
44 members[name.replace(regex, " ")] = {
45 rank,
46 experience: parseInt(experience),
47 kills: parseInt(kills),
48 };
49 });
50 return members;
51};
52exports.parseJagexPlayerToJSON = (jagexPlayer) => {
53 const lines = separateIntoLines(jagexPlayer);
54 const [skillsStartIndex, skillsEndIndex] = [
55 0,
56 configs_1.runescape.hiscores.skills.length,
57 ];
58 const [activitiesStartIndex, activitiesEndIndex] = [
59 configs_1.runescape.hiscores.skills.length,
60 configs_1.runescape.hiscores.skills.length + configs_1.runescape.hiscores.activities.length,
61 ];
62 const activities = formatActivities([
63 ...lines.slice(activitiesStartIndex, activitiesEndIndex),
64 ]);
65 const skills = formatSkills([
66 ...lines.slice(skillsStartIndex, skillsEndIndex),
67 ]);
68 return {
69 activities,
70 skills,
71 };
72};
73exports.parseJagexClanToJSON = (jagexClan) => {
74 const lines = separateIntoLines(jagexClan);
75 const members = formatClanMembers([...lines.slice(1, -1)]);
76 return members;
77};
78//# sourceMappingURL=Jagex.js.map
\No newline at end of file