checkpoint

This commit is contained in:
peter
2020-03-08 14:16:06 +01:00
parent c4ca96fef9
commit b2707bb88f
22 changed files with 5904 additions and 509 deletions
+1 -1
View File
@@ -13,7 +13,7 @@
"ng": "ng",
"conventional-changelog": "conventional-changelog",
"start": "ng serve",
"build": "ng build",
"build": "ng build --aot",
"build:prod": "npm run build -- --prod --aot",
"test": "ng test",
"test:coverage": "rimraf coverage && npm run test -- --code-coverage",
@@ -31,8 +31,7 @@
<nb-action class="user-action">
<nb-user [nbContextMenu]="userMenu"
[onlyPicture]="false"
[name]="user?.username"
[picture]="user?.picture">
[name]="user?.username">
</nb-user>
</nb-action>
@@ -29,6 +29,7 @@ export class RegisterComponent implements OnInit{
selectedSpec = specs[this.selectedClass][0]
specs = specs[this.selectedClass]
showApplication = false
submitted = false
constructor(
private router : Router,
@@ -1,90 +1,106 @@
import { Component, OnInit } from '@angular/core';
import { Item } from '../../../../../../backend/Types/Types';
import { Item, Stats } from '../../../../../../backend/Types/Types';
import { NbToastrService } from '@nebular/theme';
import { ApiService } from '../../services/login-api';
@Component({
selector: 'armory',
templateUrl: './armory.component.html',
})
export class FrontcraftArmoryComponent implements OnInit{
export class FrontcraftArmoryComponent implements OnInit {
servers = servers
submitted = false
charactername = ""
server = "Gandling"
region = "EU"
gear:string[] = []
gear: Item[] = []
constructor(
private api: ApiService,
private toastr: NbToastrService
){}
) { }
async submit(){
const dataLink = "https://classic.warcraftlogs.com:443/v1/parses/character/"+this.charactername.toLowerCase().replace(/^\w/, c => c.toUpperCase())+"/"+this.server+"/"+this.region+"?api_key=c698515ab4f592cdb848d80b3abe616c&metric=dps"
async submit() {
const dataLink = "https://classic.warcraftlogs.com:443/v1/parses/character/" + this.charactername.toLowerCase().replace(/^\w/, c => c.toUpperCase()) + "/" + this.server + "/" + this.region + "?api_key=c698515ab4f592cdb848d80b3abe616c&metric=dps"
fetch(dataLink).then(raw => raw.json().then((json:any[]) => {
if(json.length < 1) return
fetch(dataLink).then(raw => raw.json().then(async (json: any[]) => {
if (json.length < 1) return
let min = -1
let data
for(let i = json.length-1; i > 0; i--){
if(json[i].startTime > min && json[i].gear[0].name != "Unknown Item"){
for (let i = json.length - 1; i > 0; i--) {
if (json[i].startTime > min && json[i].gear[0].name != "Unknown Item") {
data = json[i]
break
}
}
if(!data){
if (!data) {
this.toastr.danger('Unknown character, or no warcraftlogs', "Error", {
duration: 2000
})
})
return
}
this.gear = data.gear.map(item => {return <Item>{
itemname: item.name,
iconname: item.icon.replace('.jpg', ''),
quality: item.quality.replace(/^\w/, c => c.toUpperCase()),
url: "https://classic.wowhead.com/item="+item.id,
}}).filter(item => item.itemname != "Unknown Item")
const maybeItems: (Item | undefined)[] = await Promise.all(data.gear
.filter(item => item.name != "Unknown Item")
.map(async item => await this.api.get('ItemManager').getItem(item.name)))
const geardata = maybeItems.filter(maybeItem => maybeItem != null)
this.gear = geardata
console.log(this.gear.map(g => g.stats).reduce(sumStats))
}))
}
async ngOnInit(){
async ngOnInit() {
}
}
function sumStats(stat1: Stats, stat2: Stats):Stats{
const ret = {} as any
Object.keys(stat1).forEach(key => {
ret[key] = stat1[key] + stat2[key]
})
return ret
}
const servers = [
"Ashbringer"
,"Bloodfang"
,"Dreadmist"
,"Firemaw"
,"Flamelash"
,"Gandling"
,"Gehennas"
,"Golemagg"
,"Hydraxian Waterlords"
,"Judgement"
,"Mirage Rach"
,"Mograine"
,"Nethergarde"
,"Noggenfogg"
,"Pyrewood Village"
,"Razorgore"
,"Shazzrah"
,"Skullflame"
,"Stonespine"
,"Ten Storms"
,"Zandalar Tribe"
,"Amnennar"
,"Auberdine"
,"Finkle"
,"Sulfuron"
,"Everlook"
,"Lucifron"
,"Razorfen"
,"Patchwerk"
,"Venoxis"
,"Dragons Call"
,"Lakeshire"
,"Transcendence"
, "Bloodfang"
, "Dreadmist"
, "Firemaw"
, "Flamelash"
, "Gandling"
, "Gehennas"
, "Golemagg"
, "Hydraxian Waterlords"
, "Judgement"
, "Mirage Rach"
, "Mograine"
, "Nethergarde"
, "Noggenfogg"
, "Pyrewood Village"
, "Razorgore"
, "Shazzrah"
, "Skullflame"
, "Stonespine"
, "Ten Storms"
, "Zandalar Tribe"
, "Amnennar"
, "Auberdine"
, "Finkle"
, "Sulfuron"
, "Everlook"
, "Lucifron"
, "Razorfen"
, "Patchwerk"
, "Venoxis"
, "Dragons Call"
, "Lakeshire"
, "Transcendence"
]
@@ -24,7 +24,7 @@ export class FrontcraftCharacterComponent implements OnInit{
boss1 = {}
gear1:string[] = []
boss2= {}
boss2= {name: undefined, date:undefined}
gear2:string[] = []
constructor(
@@ -10,6 +10,7 @@ import { getClassColor } from '../../../../../../backend/Types/PlayerSpecs';
})
export class FrontcraftArchiveComponent implements OnInit{
manageRaid = false
canSignup = false
isSignedup = false
canManage = false
@@ -1,6 +1,6 @@
<div class="row">
<div class="col-12 col-xl-6">
<nb-card [size]="giant">
<nb-card [size]="'giant'">
<nb-card-body>
<nb-tabset>
<nb-tab tabTitle="Info">