fix armory

This commit is contained in:
peter
2020-03-26 01:44:09 +01:00
parent 236a4042c9
commit 1cd453b382
2 changed files with 58 additions and 62 deletions
@@ -27,13 +27,14 @@ export class FrontcraftArmoryComponent implements OnInit {
fetch(dataLink).then(raw => raw.json().then(async (json: any[]) => {
if (json.length < 1) return
let min = -1
let data
let min = -1
for (let i = json.length - 1; i > 0; i--) {
if (json[i].startTime > min && json[i].gear[0].name != "Unknown Item") {
const start = Number.parseInt(json[i].startTime)
if (start > min && json[i].gear[0].name != "Unknown Item") {
min = start
data = json[i]
break
}
}
if (!data) {
@@ -59,7 +60,7 @@ export class FrontcraftArmoryComponent implements OnInit {
}
}
function sumStats(stat1: Stats, stat2: Stats):Stats{
function sumStats(stat1: Stats, stat2: Stats): Stats {
const ret = {} as any
Object.keys(stat1).forEach(key => {
ret[key] = stat1[key] + stat2[key]
@@ -9,70 +9,65 @@ import { IApiService } from '../../services/ApiService';
selector: 'character',
templateUrl: './character.component.html',
})
export class FrontcraftCharacterComponent implements OnInit{
export class FrontcraftCharacterComponent implements OnInit {
@Input() name?: string
@Input() link?: "owner" | "character" = 'owner'
@Input() name?: string
@Input() link?: "owner" | "character" = 'owner'
char : (Character & User & Spec) = {
race: 'Human',
class: 'Warrior'
} as any
color : string
tokens
dataLink = ""
boss1 = {}
gear1:string[] = []
char: (Character & User & Spec) = {
race: 'Human',
class: 'Warrior'
} as any
color: string
tokens
dataLink = ""
boss1 = {}
gear1: string[] = []
boss2= {name: undefined, date:undefined}
gear2:string[] = []
boss2 = { name: undefined, date: undefined }
gear2: Item[] = []
constructor(
private api: IApiService,
private route: ActivatedRoute,
){}
constructor(
private api: IApiService,
private route: ActivatedRoute,
) { }
async ngOnInit(){
const param = this.name || this.route.snapshot.paramMap.get('name');
if(!param) return
async ngOnInit() {
const param = this.name || this.route.snapshot.paramMap.get('name');
if (!param) return
this.api.get('CharacterManager')
.getCharacterByName(param)
.then((char) => {
if(char){
this.color = getClassColor(char.class)
this.char = char
this.api.get('ItemManager').getTokens(this.char, _Tiers, true).then(tokens => {
this.tokens = tokens
})
this.dataLink = "https://classic.warcraftlogs.com:443/v1/parses/character/"+this.char.charactername.replace(/^\w/, c => c.toUpperCase())+"/Gandling/EU?api_key=c698515ab4f592cdb848d80b3abe616c&metric=dps"
fetch(this.dataLink).then(raw => raw.json().then((json:any[]) => {
if(json.length < 1) return
let data
let min = -1
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) return
this.boss2 = {
name: data.encounterName,
date: data.startTime
}
this.gear2 = 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 char = await this.api.get('CharacterManager').getCharacterByName(param)
if (char) {
this.color = getClassColor(char.class)
this.char = char
this.api.get('ItemManager').getTokens(this.char, _Tiers, true).then(tokens => {
this.tokens = tokens
})
this.dataLink = "https://classic.warcraftlogs.com:443/v1/parses/character/" + this.char.charactername.replace(/^\w/, c => c.toUpperCase()) + "/Gandling/EU?api_key=c698515ab4f592cdb848d80b3abe616c&metric=dps"
const json: any[] = await fetch(this.dataLink).then(raw => raw.json())
if (json.length < 1) return
let data
let min = -1
for (let i = json.length - 1; i > 0; i--) {
const start = Number.parseInt(json[i].startTime)
if (start > min && json[i].gear[0].name != "Unknown Item") {
min = start
data = json[i]
}
}
if (!data) return
this.boss2 = {
name: data.encounterName,
date: data.startTime
}
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.gear2 = geardata
}
}
}