Browse Source

Fetch events nao

master
amki 4 years ago
parent
commit
707ce88d0c
  1. 69
      cd.js
  2. 5
      index.html

69
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);
}); });
async function fetchCasts(fight) {
let baseUrl = fflogsEventsAPI + "casts/" + indexViewModel.logID() + api + indexViewModel.apiKey() + "&translate=true" + "&end=" + fight.end_time;
let start_time = fight.start_time;
let result = [];
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 // API request um JSON zu erhalten
async function fetchLog(fightId) { async function fetchLog(logId) {
let url = fflog + fightId + api + indexViewModel.apiKey(); let url = fflogsFightsAPI + logId + api + indexViewModel.apiKey();
console.log("Fetching log "+fightId); 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);

5
index.html

@ -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…
Cancel
Save