Fixed searching the Skyrim masterlist.

The Repository API doesn't allow fetching of file contents that are > 1
MB, so use the Git Data API instead.
This commit is contained in:
Oliver Hamlet
2015-02-14 18:26:10 +00:00
parent 67de70bee0
commit ec6fb30fc9
+30 -2
View File
@@ -37,6 +37,7 @@ function isRegexEntry(name) {
function readMasterlist(err, data) {
if (err) {
console.log(err);
document.getElementById('progress').classList.add('hidden');
return;
}
@@ -73,9 +74,36 @@ function readMasterlist(err, data) {
console.log("Search complete.");
}
function fetchMasterlist(err, data) {
if (err) {
console.log(err);
document.getElementById('progress').classList.add('hidden');
return;
}
for (var i = 0; i < data.tree.length; ++i) {
if (data.tree[i].path == 'masterlist.yaml') {
github.repos('loot', gameSelect.selected).git.blobs(data.tree[i].sha).read(readMasterlist);
break;
}
}
}
function fetchTree(err, data) {
if (err) {
console.log(err);
document.getElementById('progress').classList.add('hidden');
return;
}
github.repos('loot', gameSelect.selected).git.trees(data.object.sha).fetch(fetchMasterlist);
}
function onSearchInit(evt) {
var repo = github.repos('loot', gameSelect.selected);
repo.contents('masterlist.yaml').read({ref: repoBranch}, readMasterlist);
/* The GitHub Repository API can't be used because it only supports
files of sizes up to 1 MB. The Skyrim masterlist is larger than this, so
use the GitHub Git Data API instead. */
github.repos('loot', gameSelect.selected).git.refs('heads/' + repoBranch).fetch(fetchTree);
/* Clear any previous search results. */
var progress = document.getElementById('progress');