-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
59 lines (49 loc) · 1.73 KB
/
Copy pathindex.js
File metadata and controls
59 lines (49 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var minixhr = require('minixhr')
module.exports = getGithubData
function getGithubData (callback) {
minixhr(url, response)
function response (json) {
var userprofiles = localStorage['userprofiles']
if (userprofiles) {
return callback(JSON.parse(userprofiles))
}
var allusers = JSON.parse(json)
// console.info(allusers)
var userprofiles = []
allusers.forEach(function (nameEach) {
var reponame = nameEach.full_name
var repoURL = 'https://api.github.com/repos/' + reponame
minixhr(repoURL, response2)
})
function response2 (data) {
var obj = JSON.parse(data)
var repoFilesAndFoldersURL = obj.branches_url.replace('{/branch}', '/' + obj.default_branch)
minixhr(repoFilesAndFoldersURL, function (data) {
var obj = JSON.parse(data)
var filesAndFoldersURL = obj.commit.commit.tree.url
minixhr(filesAndFoldersURL, function (data) {
var obj = JSON.parse(data)
obj.tree.forEach(function (file) {
if (file.path === 'config.json') {
var configJsonURL = file.url
minixhr(configJsonURL, function (data) {
try {
var obj = JSON.parse(data)
var json = atob(obj.content)
var profile = JSON.parse(json)
} catch (error) {
profile = { name: 'error', url: configJsonURL }
}
userprofiles.push(profile)
if (allusers.length == userprofiles.length) {
localStorage['userprofiles'] = JSON.stringify(userprofiles)
callback(userprofiles)
}
})
}
})
})
})
}
}
}