Fetch events nao
This commit is contained in:
parent
e3db20c791
commit
707ce88d0c
77
cd.js
77
cd.js
@ -1,5 +1,8 @@
|
|||||||
const fflog = "https://www.fflogs.com:443/v1/report/fights/";
|
const fflogsBase = "https://www.fflogs.com:443/v1/report/";
|
||||||
|
const fflogsFightsAPI = fflogsBase + "fights/"
|
||||||
|
const fflogsEventsAPI = fflogsBase + "events/"
|
||||||
const api = "?api_key=";
|
const api = "?api_key=";
|
||||||
|
// ?end=1591130148287&sourceid=5
|
||||||
|
|
||||||
var indexViewModel;
|
var indexViewModel;
|
||||||
var classColors = {
|
var classColors = {
|
||||||
@ -20,6 +23,9 @@ var classColors = {
|
|||||||
"Dancer": "#ceb8ab",
|
"Dancer": "#ceb8ab",
|
||||||
"Machinist": "#6c6433",
|
"Machinist": "#6c6433",
|
||||||
"Barde": "#6d8432"
|
"Barde": "#6d8432"
|
||||||
|
};
|
||||||
|
|
||||||
|
var offensiveCooldowns = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -32,6 +38,8 @@ $(() => {
|
|||||||
self.logID = ko.observable(localStorage.getItem("fflogid"));
|
self.logID = ko.observable(localStorage.getItem("fflogid"));
|
||||||
self.fights = ko.observableArray();
|
self.fights = ko.observableArray();
|
||||||
self.friendlies = ko.observableArray();
|
self.friendlies = ko.observableArray();
|
||||||
|
self.enemies = ko.observableArray();
|
||||||
|
self.casts = ko.observableArray();
|
||||||
self.displayFightPicker = ko.observable(false);
|
self.displayFightPicker = ko.observable(false);
|
||||||
self.selectedFight = ko.observable();
|
self.selectedFight = ko.observable();
|
||||||
|
|
||||||
@ -40,6 +48,7 @@ $(() => {
|
|||||||
|
|
||||||
self.fights(log["fights"]);
|
self.fights(log["fights"]);
|
||||||
self.friendlies(log["friendlies"]);
|
self.friendlies(log["friendlies"]);
|
||||||
|
self.enemies(log["enemies"]);
|
||||||
self.displayFightPicker(true);
|
self.displayFightPicker(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -56,24 +65,74 @@ $(() => {
|
|||||||
localStorage.setItem("fflogid", self.logID());
|
localStorage.setItem("fflogid", self.logID());
|
||||||
};
|
};
|
||||||
|
|
||||||
self.fightChanged = function() {
|
self.fightChanged = async function() {
|
||||||
console.log("Fight has changed to ",self.selectedFight());
|
console.log("Fight has changed to ",self.selectedFight());
|
||||||
|
var casts = await fetchCasts(self.selectedFight());
|
||||||
|
|
||||||
|
self.casts(casts);
|
||||||
|
console.log("self",self.casts());
|
||||||
};
|
};
|
||||||
|
|
||||||
self.textColor = function(job) {
|
self.textColor = function(job) {
|
||||||
console.log(job.type)
|
console.log(job.type)
|
||||||
return classColors[job.type];
|
return classColors[job.type];
|
||||||
}
|
};
|
||||||
|
|
||||||
|
self.actorIDToName = function(id) {
|
||||||
|
for(var actor of self.friendlies()) {
|
||||||
|
if(id == actor.id) {
|
||||||
|
return actor.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var actor of self.enemies()) {
|
||||||
|
if(id == actor.id) {
|
||||||
|
return actor.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
indexViewModel = new IndexViewModel();
|
indexViewModel = new IndexViewModel();
|
||||||
ko.applyBindings(indexViewModel);
|
ko.applyBindings(indexViewModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
// API request um JSON zu erhalten
|
async function fetchCasts(fight) {
|
||||||
async function fetchLog(fightId) {
|
let baseUrl = fflogsEventsAPI + "casts/" + indexViewModel.logID() + api + indexViewModel.apiKey() + "&translate=true" + "&end=" + fight.end_time;
|
||||||
let url = fflog + fightId + api + indexViewModel.apiKey();
|
let start_time = fight.start_time;
|
||||||
|
let result = [];
|
||||||
|
|
||||||
console.log("Fetching log "+fightId);
|
let snip = {};
|
||||||
|
do {
|
||||||
|
let url = baseUrl + "&start=" + start_time;
|
||||||
|
console.log("Requesting "+url);
|
||||||
|
snip = await fetchCastSnippet(url);
|
||||||
|
for(var e of snip.events) {
|
||||||
|
result.push(e);
|
||||||
|
}
|
||||||
|
//result = result.concat(snip.events);
|
||||||
|
start_time = snip.nextPageTimestamp;
|
||||||
|
} while(snip.nextPageTimestamp)
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchCastSnippet(url) {
|
||||||
|
var res = await fetch(url);
|
||||||
|
if (!res.ok) {
|
||||||
|
console.log(res);
|
||||||
|
throw Error(res.text);
|
||||||
|
}
|
||||||
|
var casts = await res.json();
|
||||||
|
|
||||||
|
console.log(casts);
|
||||||
|
return casts;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API request um JSON zu erhalten
|
||||||
|
async function fetchLog(logId) {
|
||||||
|
let url = fflogsFightsAPI + logId + api + indexViewModel.apiKey();
|
||||||
|
|
||||||
|
console.log("Requesting "+logId);
|
||||||
var res = await fetch(url);
|
var res = await fetch(url);
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
@ -84,4 +143,4 @@ async function fetchLog(fightId) {
|
|||||||
//get specific fight data
|
//get specific fight data
|
||||||
console.log(log);
|
console.log(log);
|
||||||
return log;
|
return log;
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,11 @@
|
|||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm" data-bind="foreach: casts">
|
||||||
|
<div data-bind="text: $parent.actorIDToName(sourceID)+' '+type+' '+ability.name+' at '+timestamp"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="cd.js"></script>
|
<script src="cd.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user