我一直在尝试使用 Javascript 检索有关特定 repo 的最新提交的信息,但没有很多结果。我一直在使用 aXMLHttpRequest
从 repo 的提交页面(例如:https ://api.github.com/repos/trapped/rotmg_svr/commits )获取数据,但似乎它返回 null。另外,我尝试使用正则表达式来获取特定行值的第一个匹配项(例如,为了获取提交描述的值,我使用了这个:"message": "(.*)",
),使其遍历所有行,直到找到某些内容(在我发布的代码中,我暂时将其更改为行号,因为它不起作用,因此试图加快该过程)。此外,当尝试加载页面时,它会阻塞。正如我之前对 C# 的 webclient 的经验所暗示的那样,它可能与 XMLHttpRequest 的事情有关(事实上,当我尝试调试它时它返回了一个未定义的对象)。
提前感谢所有帮助。
var messagelineindex = 14;
var linklineindex = 17;
var response = "";
function loadcommits() {
httpGet("https://api.github.com/repos/trapped/rotmg_svr/commits");
var lines = response.split("\n");
var message = parsemessage(lines[messagelineindex]);
var link = parselink(lines[linklineindex]);
addcommit(/<a href="/+link+/">/+message+"</a>");
//for (var i = 0; i < numlines; i++) {
// var line = lines[i];
// var commitmessage = parsemessage(line);
// if (commitmessage != "") {
// addcommit(commitmessage);
// break;
// }
//}
}
function parselink(text) {
var regex = /"link": "(.*)",/;
var match = regex.exec(text);
if (!match) {
return "";
}
else {
return match[1];
}
}
function parsemessage(text) {
var regex = /"message": "(.*)",/;
var match = regex.exec(text);
if (!match) {
return "";
}
else {
return match[1];
}
}
function addcommit(text) {
document.getElementById("commits").innerHTML = document.getElementById("commits").innerHTML + text.toString() + "\n\r";
}
function httpGet(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
response = xmlHttp.responseText;
}
}
xmlHttp.open("GET", theUrl, false);
xmlHttp.send(null);
}