171 lines
5.5 KiB
HTML
171 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-cn">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>entry page</title>
|
|
<script src="marked.min.js"></script>
|
|
<script type="text/javascript" src="yaml.min.js"></script>
|
|
|
|
<script>
|
|
var todayurl, tomorrowurl;
|
|
var seasonurl;
|
|
|
|
var year = datestr().slice(0, 4);
|
|
var month = datestr().slice(4, 6);
|
|
var season = Math.ceil(parseInt(month) / 3);
|
|
var seasonpath = "data/season/" + year + "S" + season + ".yaml";
|
|
|
|
window.onload = function () {
|
|
//alert(document.domain);
|
|
if (document.domain == "hyg.codeberg.page") {
|
|
todayurl = "https://hyg.codeberg.page/blog/@master/release/time/d." + datestr() + ".md";
|
|
tomorrowurl = "https://hyg.codeberg.page/blog/@master/release/time/d." + datestr(1) + ".md";
|
|
seasonurl = '';
|
|
} else if (document.domain == "hyg.github.io") {
|
|
todayurl = "http://hyg.github.io/blog/release/time/d." + datestr() + ".md";
|
|
tomorrowurl = "http://hyg.github.io/blog/release/time/d." + datestr(1) + ".md";
|
|
seasonurl = "http://hyg.github.io/ego/" + seasonpath;
|
|
} else if (document.domain == "today.mars22.com") {
|
|
todayurl = "http://today.mars22.com/blog/release/time/d." + datestr() + ".md";
|
|
tomorrowurl = "http://today.mars22.com/blog/release/time/d." + datestr(1) + ".md";
|
|
seasonurl = "http://today.mars22.com/ego/" + seasonpath;
|
|
}
|
|
|
|
todayurl = "https://raw.githubusercontent.com/hyg/blog/refs/heads/master/release/time/d." + datestr() + ".md";
|
|
tomorrowurl = "https://raw.githubusercontent.com/hyg/blog/refs/heads/master/release/time/d." + datestr(1) + ".md";
|
|
seasonurl = "https://raw.githubusercontent.com/hyg/ego/refs/heads/vat/" + seasonpath;
|
|
|
|
getTextFileFromURL(todayurl, "today");
|
|
getTextFileFromURL(tomorrowurl, "tomorrow");
|
|
if (seasonurl != '') {
|
|
getTododataFromURL(seasonurl, "todo");
|
|
}
|
|
}
|
|
|
|
function getTododataFromURL(url, id) {
|
|
var xmlhttp = new XMLHttpRequest();
|
|
xmlhttp.onreadystatechange = function () {
|
|
/* alert(xmlhttp.readyState);
|
|
alert(xmlhttp.status);
|
|
alert(xmlhttp.responseText); */
|
|
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
|
var seasonobj = YAML.parse(xmlhttp.responseText);
|
|
var statobj = new Object();
|
|
statobj.total = { alloc: 0, sold: 0, hold: 0, todo: 0 };
|
|
for (var task in seasonobj.time.alloc) {
|
|
statobj[task] = new Object();
|
|
statobj[task].alloc = parseInt(seasonobj.time.alloc[task]);
|
|
if (seasonobj.time.sold[task] != null) {
|
|
statobj[task].sold = parseInt(seasonobj.time.sold[task]);
|
|
} else {
|
|
statobj[task].sold = 0;
|
|
}
|
|
statobj[task].hold = statobj[task].alloc - statobj[task].sold;
|
|
|
|
statobj.total.alloc = statobj.total.alloc + statobj[task].alloc;
|
|
statobj.total.sold = statobj.total.sold + statobj[task].sold;
|
|
statobj[task].todo = 0;
|
|
}
|
|
for (var task in seasonobj.time.sold) {
|
|
if (statobj[task] == null) {
|
|
statobj[task] = new Object();
|
|
statobj[task].alloc = 0;
|
|
statobj[task].sold = parseInt(seasonobj.time.sold[task]);
|
|
statobj[task].hold = statobj[task].alloc - statobj[task].sold;
|
|
|
|
statobj.total.alloc = statobj.total.alloc + statobj[task].alloc;
|
|
statobj.total.sold = statobj.total.sold + statobj[task].sold;
|
|
statobj[task].todo = 0;
|
|
}
|
|
}
|
|
statobj.total.hold = statobj.total.alloc - statobj.total.sold;
|
|
for (var task in seasonobj.todo) {
|
|
statobj[task].todo = todosum(seasonobj.todo[task]);
|
|
statobj.total.todo = statobj.total.todo + statobj[task].todo;
|
|
}
|
|
|
|
document.getElementById(id).innerHTML = createTableHTML(statobj);
|
|
}
|
|
};
|
|
xmlhttp.open("GET", url, true);
|
|
xmlhttp.send();
|
|
}
|
|
|
|
function getTextFileFromURL(url, id) {
|
|
var xmlhttp = new XMLHttpRequest();
|
|
xmlhttp.onreadystatechange = function () {
|
|
/* alert(xmlhttp.readyState);
|
|
alert(xmlhttp.status);
|
|
alert(xmlhttp.responseText); */
|
|
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
|
var text = xmlhttp.responseText;
|
|
document.getElementById(id).innerHTML = marked.parse(text);
|
|
}
|
|
};
|
|
xmlhttp.open("GET", url, true);
|
|
xmlhttp.send();
|
|
}
|
|
|
|
function datestr(diff = 0) {
|
|
var theDate = new Date();
|
|
theDate.setDate(theDate.getDate() + diff);
|
|
|
|
var year = theDate.getFullYear();
|
|
var month = theDate.getMonth() + 1 < 10 ? "0" + (theDate.getMonth() + 1) : theDate.getMonth() + 1;
|
|
var day = theDate.getDate() < 10 ? "0" + theDate.getDate() : theDate.getDate();
|
|
var dateStr = year + "" + month + "" + day;
|
|
|
|
return dateStr;
|
|
}
|
|
|
|
function todosum(todoarray) {
|
|
var sum = 0;
|
|
|
|
for (var i in todoarray) {
|
|
for (var key in todoarray[i]) {
|
|
if (!isNaN(parseInt(key))) {
|
|
sum = sum + parseInt(key);
|
|
} else if (key == "bind") {
|
|
sum = sum + todosum(todoarray[i][key]);
|
|
}
|
|
}
|
|
}
|
|
|
|
return sum;
|
|
}
|
|
|
|
function createTableHTML(data) {
|
|
let tableHTML = '<table border="1"><tr>';
|
|
tableHTML += `<th>task</th>`;
|
|
Object.keys(data.PSMD).forEach(key => {
|
|
tableHTML += `<th>${key}</th>`;
|
|
});
|
|
tableHTML += '</tr>';
|
|
|
|
for (var task in data) {
|
|
tableHTML += '<tr><td>' + task + '</td>';
|
|
for (var item in data[task]) {
|
|
tableHTML += '<td>' + data[task][item] + '</td>';
|
|
}
|
|
tableHTML += '</tr>';
|
|
}
|
|
|
|
tableHTML += '</table>';
|
|
return tableHTML;
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="today"></div>
|
|
<br /><br />
|
|
<hr /><br /><br />
|
|
<div id="tomorrow"></div>
|
|
<br /><br />
|
|
<hr /><br />
|
|
season stat:<br />
|
|
<div id="todo"></div>
|
|
</body>
|
|
|
|
</html> |