-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathregular.js
More file actions
25 lines (24 loc) · 18.3 KB
/
regular.js
File metadata and controls
25 lines (24 loc) · 18.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function guruSummary(mess, accaunt) { // парсит страницу "Summary" и возвращает результат
return new Promise((resolve) => {
sendSite({url: `https://paladins.guru/profile/${accaunt.name}`})
.then(response => {
if (!response || !response.body) { // если пусто
mess.reply(`Страница не найдена или пуста, возможно ошибка парсинга или проблемы с сайтом paladins.guru.`)
return new Promise(() => {})
}
const html = response.body
// // Player Stats END (?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>) // хуита для урона 8 до контейтера + колонки credits CPM KDA Kills Deaths Assists Damage DPM Weapon Taken Shielding Healing SelfHealing Jbjective Time Wins Losses Ratio // хуита для фланга // хуита для танка // хуита для саппорта
const parse = html.match(/profile-header__level">(?<lvl>[0-9]+)<\/div>.*?profile-header__region">\s*(?<region>[a-z0-9 -]+).*?Updated (?<updated>[a-z0-9 ]+).*?Matches<\/div>\s*?<[^<>]+?>\s*?(?:\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?)<[^<>]+?>(?<played>[0-9 ,]+)<[^<>]+?>(?:\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?)<[^<>]+?>(?<won>[0-9 ,]+)<[^<>]+?>(?:\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<lost>[0-9 ,]+)<.*?Player Kills<\/div>(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<kda>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<kills>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?)<[^<>]+?>(?<deaths>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?)<[^<>]+?>(?<assists>[0-9 \.,]+).*?Objectives<\/div>(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<cpm>[0-9]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<credits>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<objectiveTime>[0-9a-z ]+)<.*?Damage<\/div>(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<player>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<teamHealing>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<selfHealing>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<weapon>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<shielding>[0-9 \.,]+)(?:\s*?<[^<>]+?>\s*?<[^<>]+?>[a-z ]+<[^<>]+?>\s*?<[^<>]+?>)(?<taken>[0-9 \.,]+).*?(?:mpc__body">)?(?:(?:\s*?<[^<>]+?>){5}(?<name1>[a-z '-]+?)(?:\s*?<[^<>]+?>){2}[a-z ]+(?:\s*?<[^<>]+?>){5}(?<kda1>[0-9\.]+) KDA(?:\s*?<[^<>]+?>){2}\s*(?<kda11>[0-9 \.,\/]+)(?:\s*?<[^<>]+?>){4}(?<match1>[0-9 ()\%,-]+)(?:\s*?<[^<>]+?>){2}(?<time1>[0-9a-z ]+)(?:\s*?<[^<>]+?>){3})?(?:(?:\s*?<[^<>]+?>){5}(?<name2>[a-z '-]+?)(?:\s*?<[^<>]+?>){2}[a-z ]+(?:\s*?<[^<>]+?>){5}(?<kda2>[0-9\.]+) KDA(?:\s*?<[^<>]+?>){2}\s*(?<kda22>[0-9 \.,\/]+)(?:\s*?<[^<>]+?>){4}(?<match2>[0-9 ()\%,-]+)(?:\s*?<[^<>]+?>){2}(?<time2>[0-9a-z ]+)(?:\s*?<[^<>]+?>){3})?(?:(?:\s*?<[^<>]+?>){5}(?<name3>[a-z '-]+?)(?:\s*?<[^<>]+?>){2}[a-z ]+(?:\s*?<[^<>]+?>){5}(?<kda3>[0-9\.]+) KDA(?:\s*?<[^<>]+?>){2}\s*(?<kda33>[0-9 \.,\/]+)(?:\s*?<[^<>]+?>){4}(?<match3>[0-9 ()\%,-]+)(?:\s*?<[^<>]+?>){2}(?<time3>[0-9a-z ]+)(?:\s*?<[^<>]+?>){3})?(?:(?:\s*?<[^<>]+?>){5}(?<name4>[a-z '-]+?)(?:\s*?<[^<>]+?>){2}[a-z ]+(?:\s*?<[^<>]+?>){5}(?<kda4>[0-9\.]+) KDA(?:\s*?<[^<>]+?>){2}\s*(?<kda44>[0-9 \.,\/]+)(?:\s*?<[^<>]+?>){4}(?<match4>[0-9 ()\%,-]+)(?:\s*?<[^<>]+?>){2}(?<time4>[0-9a-z ]+)(?:\s*?<[^<>]+?>){3})?(?:(?:\s*?<[^<>]+?>){5}(?<name5>[a-z '-]+?)(?:\s*?<[^<>]+?>){2}[a-z ]+(?:\s*?<[^<>]+?>){5}(?<kda5>[0-9\.]+) KDA(?:\s*?<[^<>]+?>){2}\s*(?<kda55>[0-9 \.,\/]+)(?:\s*?<[^<>]+?>){4}(?<match5>[0-9 ()\%,-]+)(?:\s*?<[^<>]+?>){2}(?<time5>[0-9a-z ]+)(?:\s*?<[^<>]+?>){3}).*?<div class="ptw__val"[^>]*?>(?<allTime>[a-z0-9 ,]+?)<\/div>.*?Casual\s*?<\/div>\s*?<[^<>]+?>(?<casualTime>[0-9a-z ,]+?)\s*?<\/div>.+?Ranked<\/div>\s*?<[^<>]+?>(?<rankedTime>[a-z0-9 ,]+?)<\/div>.*?(?:Stats by Class)?.*?(?:Damage(?:\s*?<[^<>]+?>){2}(?<damageGames>[0-9]+)[ a-z]+(?:\s*?<[^<>]+?>){8}(?<damageWinS>[0-9]+)(?:\s*?<[^<>]+?>){3}[a-z]+(?:\s*?<[^<>]+?>){8}(?:(?:\s*?<[^<>]+?>){4}\s*(?<damagePlaytime>[0-9a-z ]+).*?playtime\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageCredits>[0-9a-z ,\.\%]+).*?credits\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageCpm>[0-9a-z ,\.\%]+).*?cpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageKda>[0-9a-z ,\.\%]+).*?kda\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageKills>[0-9a-z ,\.\%]+).*?kills\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageDeaths>[0-9a-z ,\.\%]+).*?deaths\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageAssists>[0-9a-z ,\.\%]+).*?assists\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageDamage>[0-9a-z ,\.\%]+).*?damage\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageDpm>[0-9a-z ,\.\%]+).*?dpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageWeapon>[0-9a-z ,\.\%]+).*?weapon\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageTaken>[0-9a-z ,\.\%]+).*?taken\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageShielding>[0-9a-z ,\.\%]+).*?shielding\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageHealing>[0-9a-z ,\.\%]+).*?healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageSelfHealing>[0-9a-z ,\.\%]+).*?self healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageObjectiveTime>[0-9a-z ,\.\%]+).*?objective time\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageWins>[0-9a-z ,\.\%]+).*?wins\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageLosses>[0-9a-z ,\.\%]+).*?losses\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<damageRatio>[0-9a-z ,\.\%]+)))?\s*<div class="percentile-stat__bar.*?(?:Flanker(?:\s*?<[^<>]+?>){2}(?<flankerGames>[0-9]+)[ a-z]+(?:\s*?<[^<>]+?>){8}(?<flankerWinS>[0-9]+)(?:\s*?<[^<>]+?>){3}[a-z]+(?:\s*?<[^<>]+?>){8}(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerPlaytime>[0-9a-z ]+).*?playtime\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerCredits>[0-9a-z ,\.\%]+).*?credits\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerCpm>[0-9a-z ,\.\%]+).*?cpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerKda>[0-9a-z ,\.\%]+).*?kda\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerKills>[0-9a-z ,\.\%]+).*?kills\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerDeaths>[0-9a-z ,\.\%]+).*?deaths\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerAssists>[0-9a-z ,\.\%]+).*?assists\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerDamage>[0-9a-z ,\.\%]+).*?damage\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerDpm>[0-9a-z ,\.\%]+).*?dpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerWeapon>[0-9a-z ,\.\%]+).*?weapon\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerTaken>[0-9a-z ,\.\%]+).*?taken\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerShielding>[0-9a-z ,\.\%]+).*?shielding\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerHealing>[0-9a-z ,\.\%]+).*?healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerSelfHealing>[0-9a-z ,\.\%]+).*?self healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerObjectiveTime>[0-9a-z ,\.\%]+).*?objective time\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerWins>[0-9a-z ,\.\%]+).*?wins\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerLosses>[0-9a-z ,\.\%]+).*?losses\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<flankerRatio>[0-9a-z ,\.\%]+)))?\s*<div class="percentile-stat__bar.*?(?:Front Line(?:\s*?<[^<>]+?>){2}(?<frontlineGames>[0-9]+)[ a-z]+(?:\s*?<[^<>]+?>){8}(?<frontlineWinS>[0-9]+)(?:\s*?<[^<>]+?>){3}[a-z]+(?:\s*?<[^<>]+?>){8}(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlinePlaytime>[0-9a-z ]+).*?playtime\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineCredits>[0-9a-z ,\.\%]+).*?credits\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineCpm>[0-9a-z ,\.\%]+).*?cpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineKda>[0-9a-z ,\.\%]+).*?kda\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineKills>[0-9a-z ,\.\%]+).*?kills\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineDeaths>[0-9a-z ,\.\%]+).*?deaths\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineAssists>[0-9a-z ,\.\%]+).*?assists\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineDamage>[0-9a-z ,\.\%]+).*?damage\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineDpm>[0-9a-z ,\.\%]+).*?dpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineWeapon>[0-9a-z ,\.\%]+).*?weapon\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineTaken>[0-9a-z ,\.\%]+).*?taken\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineShielding>[0-9a-z ,\.\%]+).*?shielding\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineHealing>[0-9a-z ,\.\%]+).*?healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineSelfHealing>[0-9a-z ,\.\%]+).*?self healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineObjectiveTime>[0-9a-z ,\.\%]+).*?objective time\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineWins>[0-9a-z ,\.\%]+).*?wins\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineLosses>[0-9a-z ,\.\%]+).*?losses\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<frontlineRatio>[0-9a-z ,\.\%]+)))?\s*<div class="percentile-stat__bar.*?(?:Support(?:\s*?<[^<>]+?>){2}(?<supportGames>[0-9]+)[ a-z]+(?:\s*?<[^<>]+?>){8}(?<supportWinS>[0-9]+)(?:\s*?<[^<>]+?>){3}[a-z]+(?:\s*?<[^<>]+?>){8}(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportPlaytime>[0-9a-z ]+).*?playtime\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportCredits>[0-9a-z ,\.\%]+).*?credits\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportCpm>[0-9a-z ,\.\%]+).*?cpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportKda>[0-9a-z ,\.\%]+).*?kda\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportKills>[0-9a-z ,\.\%]+).*?kills\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportDeaths>[0-9a-z ,\.\%]+).*?deaths\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportAssists>[0-9a-z ,\.\%]+).*?assists\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportDamage>[0-9a-z ,\.\%]+).*?damage\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportDpm>[0-9a-z ,\.\%]+).*?dpm\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportWeapon>[0-9a-z ,\.\%]+).*?weapon\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportTaken>[0-9a-z ,\.\%]+).*?taken\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportShielding>[0-9a-z ,\.\%]+).*?shielding\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportHealing>[0-9a-z ,\.\%]+).*?healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportSelfHealing>[0-9a-z ,\.\%]+).*?self healing\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportObjectiveTime>[0-9a-z ,\.\%]+).*?objective time\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportWins>[0-9a-z ,\.\%]+).*?wins\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportLosses>[0-9a-z ,\.\%]+).*?losses\s*?(?:\s*?<[^<>]+?>){4})(?:(?:\s*?<[^<>]+?>){4}\s*(?<supportRatio>[0-9a-z ,\.\%]+)))?\s*<div class="percentile-stat__bar/is)
// имя персонажа end1 end2 end3 end4 end5 // хуита для урона playtime
if (!parse) { // если не найденно (пусто или ошибка)
mess.reply(`Страница не найдена или пуста, возможно ошибка парсинга или проблемы с сайтом paladins.guru.`)
return new Promise(() => {})
}
resolve({groups: parse.groups, accaunt})
})
})
}
/**
* Где "accaunt.name" должен быть ник игрока
* mess - это сообщение в дискорде, на которое бот должен будет прислать ответ
**/