1
0
Fork 0
mirror of https://github.com/dilllxd/gitfolio.git synced 2024-08-14 22:28:09 +00:00

Repo list now pulls from a JSON list like Blogs

This commit is contained in:
Josiah Bradbury 2019-05-10 20:42:38 -05:00
parent 9949893bf0
commit 79f3b5909e
5 changed files with 101 additions and 21 deletions

View file

@ -67,6 +67,11 @@ You can host your website using github pages and use a custom domain aswell or s
To update your info, follow the same steps shown in `Let's build` part To update your info, follow the same steps shown in `Let's build` part
The repo list can be updated independently with the following command:
```
$ node repos --name username
```
### Add a Blog ### Add a Blog

View file

@ -62,6 +62,25 @@
`) `)
} }
}); });
$.getJSON("repos.json", function(repos){
for(var i = 0; i < repos.length; i++){
$("#projects").append(`
<a href="${repos[i].html_url}" target="_blank">
<section>
<div class="section_title">${repos[i].name}</div>
<div class="about_section">
${repos[i].description}
</div>
<div class="bottom_section">
<span><i class="fas fa-code"></i>&nbsp; ${repos[i].language}</span>
<span><i class="fas fa-star"></i>&nbsp; ${repos[i].stargazers_count}</span>
<span><i class="fas fa-code-branch"></i>&nbsp; ${repos[i].forks_count}</span>
</div>
</section>
</a>
`)
}
});
</script> </script>
</body> </body>
</html> </html>

View file

@ -76,26 +76,7 @@ jsdom.fromFile("./assets/index.html", options).then(function (dom) {
(async () => { (async () => {
try { try {
console.log("Building HTML/CSS..."); console.log("Building HTML/CSS...");
var repos = await got(`https://api.github.com/users/${username}/repos?sort=created`);
repos = JSON.parse(repos.body);
for(var i = 0;i < repos.length;i++){
if(repos[i].fork == false){
document.getElementById("projects").innerHTML += `
<a href="${repos[i].html_url}" target="_blank">
<section>
<div class="section_title">${repos[i].name}</div>
<div class="about_section">
${convertToEmoji(repos[i].description)}
</div>
<div class="bottom_section">
<span><i class="fas fa-code"></i>&nbsp; ${repos[i].language}</span>
<span><i class="fas fa-star"></i>&nbsp; ${repos[i].stargazers_count}</span>
<span><i class="fas fa-code-branch"></i>&nbsp; ${repos[i].forks_count}</span>
</div>
</section>
</a>`;
}
}
var user = await got(`https://api.github.com/users/${username}`); var user = await got(`https://api.github.com/users/${username}`);
user = JSON.parse(user.body); user = JSON.parse(user.body);
document.title = user.login; document.title = user.login;
@ -155,8 +136,38 @@ jsdom.fromFile("./blog/blog_template.html", options).then(function (dom) {
}); });
} }
function populateRepos(username){
var repoData = [];
(async () => {
try {
var repos = await got(`https://api.github.com/users/${username}/repos?sort=created`);
repos = JSON.parse(repos.body);
for(var i = 0;i < repos.length;i++){
if(repos[i].fork == false){
repoData.push({
"html_url": repos[i].html_url,
"name": repos[i].name,
"description": repos[i].description,
"language": repos[i].language,
"stargazers_count": repos[i].stargazers_count,
"forks_count" :repos[i].forks_count
});
}
}
fs.writeFile('./repos/repos.json', JSON.stringify(repoData), function(err){
if (err) throw err;
console.log('Repos Created Successfully in root folder.');
});
} catch (error) {
console.log(error);
}
})();
}
if (program.name) { if (program.name) {
populateHTML(('%s', program.name)); populateHTML(('%s', program.name));
populateRepos(('%s', program.name));
} else { } else {
console.log("Provide a username"); console.log("Provide a username");
} }

45
repos.js Normal file
View file

@ -0,0 +1,45 @@
const program = require('commander');
const fs = require('fs');
const got = require('got');
options = {
resources: "usable"
};
program
.version('0.1.0')
.option('-n, --name [username]', 'get username')
.parse(process.argv);
function populateRepos(username){
var repoData = [];
(async () => {
try {
var repos = await got(`https://api.github.com/users/${username}/repos?sort=created`);
repos = JSON.parse(repos.body);
for(var i = 0;i < repos.length;i++){
if(repos[i].fork == false){
repoData.push({
"html_url": repos[i].html_url,
"name": repos[i].name,
"description": repos[i].description,
"language": repos[i].language,
"stargazers_count": repos[i].stargazers_count,
"forks_count" :repos[i].forks_count
});
}
}
fs.writeFile('repos.json', JSON.stringify(repoData), function(err){
if (err) throw err;
console.log('Repos Created Successfully in root folder.');
});
} catch (error) {
console.log(error);
}
})();
}
if (program.name) {
populateRepos(('%s', program.name));
} else {
console.log("provide a name to scrape repos");
}

0
repos/repos.json Normal file
View file