Skip to content

Commit bfaffce

Browse files
authored
Merge pull request #1156 from shreyash3087/fix/script
2 parents 742c51e + 1351932 commit bfaffce

File tree

2 files changed

+72
-126
lines changed

2 files changed

+72
-126
lines changed

Website/index.html

Lines changed: 0 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -89,110 +89,6 @@ <h2>Repositories</h2>
8989
<p>&copy; 2024 Machine Learning Repos - <a href="https://github.com/recodehive">RecodeHive</a>. All rights reserved.</p>
9090
</footer>
9191

92-
<!-- Existing JavaScript code -->
93-
<script>
94-
document.addEventListener('DOMContentLoaded', function () {
95-
const directoriesList = document.getElementById('directories');
96-
97-
async function fetchDirectories() {
98-
try {
99-
const response = await fetch('/api/github/repos');
100-
101-
if (!response.ok) {
102-
throw new Error(`HTTP error! status: ${response.status}`);
103-
}
104-
105-
const data = await response.json();
106-
107-
const directories = data.filter(item => item.type === 'dir' && item.name !== 'Website');
108-
109-
directories.forEach(directory => {
110-
const li = document.createElement('li');
111-
li.classList.add('card');
112-
113-
const h3 = document.createElement('h3');
114-
h3.textContent = directory.name;
115-
116-
const a = document.createElement('a');
117-
a.href = directory.html_url;
118-
a.textContent = 'View Repository';
119-
a.classList.add('btn-view-repo');
120-
121-
li.appendChild(h3);
122-
li.appendChild(a);
123-
directoriesList.appendChild(li);
124-
});
125-
} catch (error) {
126-
console.error('Error fetching directories:', error);
127-
directoriesList.innerHTML = '<li class="card">Failed to load directories.</li>';
128-
}
129-
}
130-
131-
fetchDirectories();
132-
});
133-
</script>
134-
135-
<!-- JavaScript for toggling statistics section -->
136-
<script>
137-
document.addEventListener('DOMContentLoaded', async function () {
138-
const repoOwner = 'recodehive';
139-
const repoName = 'machine-learning-repos';
140-
const apiUrl = `https://api.github.com/repos/${repoOwner}/${repoName}`;
141-
142-
try {
143-
// Fetch repository data
144-
const repoResponse = await fetch(apiUrl);
145-
const repoData = await repoResponse.json();
146-
147-
// Populate statistics cards
148-
document.getElementById('total-stars').innerText = repoData.stargazers_count;
149-
document.getElementById('total-forks').innerText = repoData.forks_count;
150-
document.getElementById('open-issues').innerText = repoData.open_issues_count;
151-
document.getElementById('license').innerText = repoData.license ? repoData.license.spdx_id : 'No License';
152-
document.getElementById('repo-size').innerText = (repoData.size / 1024).toFixed(2) + ' MB';
153-
154-
// Fetch languages
155-
const languagesResponse = await fetch(`${apiUrl}/languages`);
156-
const languagesData = await languagesResponse.json();
157-
const languageList = document.getElementById('language-list');
158-
const totalBytes = Object.values(languagesData).reduce((acc, val) => acc + val, 0);
159-
let mostUsedLanguage = { name: '', bytes: 0 };
160-
161-
for (const [language, bytes] of Object.entries(languagesData)) {
162-
const percentage = ((bytes / totalBytes) * 100).toFixed(2);
163-
const listItem = document.createElement('li');
164-
listItem.innerHTML = `
165-
<span>${language}</span>
166-
<div class="progress-bar" style="width: ${percentage}%;"></div>
167-
`;
168-
languageList.appendChild(listItem);
169-
170-
if (bytes > mostUsedLanguage.bytes) {
171-
mostUsedLanguage = { name: language, bytes: bytes };
172-
}
173-
}
174-
175-
document.getElementById('most-used-language').innerText = mostUsedLanguage.name;
176-
177-
} catch (error) {
178-
console.error('Error fetching data from GitHub API:', error);
179-
}
180-
181-
// Toggle statistics section
182-
const toggleButton = document.getElementById('toggle-stats');
183-
const statsSection = document.getElementById('statistics-cards');
184-
statsSection.style.display = 'none';
185-
186-
toggleButton.addEventListener('click', function () {
187-
if (statsSection.style.display === 'none') {
188-
statsSection.style.display = 'block';
189-
} else {
190-
statsSection.style.display = 'none';
191-
}
192-
});
193-
194-
});
195-
</script>
19692
<script src="js/script.js"></script>
19793
</body>
19894
</html>

Website/js/script.js

Lines changed: 72 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
document.addEventListener('DOMContentLoaded', function() {
2-
const directoriesList = document.getElementById('directories');
3-
2+
// Function to fetch and display directories
43
async function fetchDirectories() {
4+
const directoriesList = document.getElementById('directories');
55
try {
66
const response = await fetch('/api/github/repos');
7-
87
if (!response.ok) {
98
throw new Error(`HTTP error! status: ${response.status}`);
109
}
11-
1210
const data = await response.json();
13-
1411
const directories = data.filter(item => item.type === 'dir' && item.name !== 'Website');
1512

1613
directories.forEach(directory => {
@@ -35,27 +32,80 @@ document.addEventListener('DOMContentLoaded', function() {
3532
}
3633
}
3734

38-
fetchDirectories();
39-
});
35+
// Function to toggle languages section
36+
function toggleLanguagesSection() {
37+
const toggleLanguagesButton = document.createElement('button');
38+
toggleLanguagesButton.id = 'toggle-languages';
39+
toggleLanguagesButton.textContent = 'Show/Hide Languages Used';
40+
const languagesList = document.getElementById('language-list');
41+
document.getElementById('languages').insertBefore(toggleLanguagesButton, languagesList);
42+
43+
languagesList.style.display = 'none';
4044

45+
toggleLanguagesButton.addEventListener('click', function() {
46+
languagesList.style.display = languagesList.style.display === 'none' ? 'block' : 'none';
47+
});
48+
}
49+
50+
// Function to fetch and display repository stats
51+
async function fetchRepoStats() {
52+
const repoOwner = 'recodehive';
53+
const repoName = 'machine-learning-repos';
54+
const apiUrl = `https://api.github.com/repos/${repoOwner}/${repoName}`;
4155

42-
document.addEventListener('DOMContentLoaded', async function () {
43-
// Existing code...
56+
try {
57+
// Fetch repository data
58+
const repoResponse = await fetch(apiUrl);
59+
const repoData = await repoResponse.json();
4460

45-
// Toggle languages section
46-
const toggleLanguagesButton = document.createElement('button');
47-
toggleLanguagesButton.id = 'toggle-languages';
48-
toggleLanguagesButton.textContent = 'Show/Hide Languages Used';
49-
document.getElementById('languages').insertBefore(toggleLanguagesButton, document.getElementById('language-list'));
61+
// Populate statistics cards
62+
document.getElementById('total-stars').innerText = repoData.stargazers_count;
63+
document.getElementById('total-forks').innerText = repoData.forks_count;
64+
document.getElementById('open-issues').innerText = repoData.open_issues_count;
65+
document.getElementById('license').innerText = repoData.license ? repoData.license.spdx_id : 'No License';
66+
document.getElementById('repo-size').innerText = (repoData.size / 1024).toFixed(2) + ' MB';
5067

51-
const languagesList = document.getElementById('language-list');
52-
languagesList.style.display = 'none';
68+
// Fetch and display languages
69+
const languagesResponse = await fetch(`${apiUrl}/languages`);
70+
const languagesData = await languagesResponse.json();
71+
const languageList = document.getElementById('language-list');
72+
const totalBytes = Object.values(languagesData).reduce((acc, val) => acc + val, 0);
73+
let mostUsedLanguage = { name: '', bytes: 0 };
5374

54-
toggleLanguagesButton.addEventListener('click', function () {
55-
if (languagesList.style.display === 'none') {
56-
languagesList.style.display = 'block';
57-
} else {
58-
languagesList.style.display = 'none';
75+
for (const [language, bytes] of Object.entries(languagesData)) {
76+
const percentage = ((bytes / totalBytes) * 100).toFixed(2);
77+
const listItem = document.createElement('li');
78+
listItem.innerHTML = `
79+
<span>${language}</span>
80+
<div class="progress-bar" style="width: ${percentage}%;"></div>
81+
`;
82+
languageList.appendChild(listItem);
83+
84+
if (bytes > mostUsedLanguage.bytes) {
85+
mostUsedLanguage = { name: language, bytes: bytes };
86+
}
87+
}
88+
89+
document.getElementById('most-used-language').innerText = mostUsedLanguage.name;
90+
91+
} catch (error) {
92+
console.error('Error fetching data from GitHub API:', error);
5993
}
60-
});
94+
}
95+
96+
// Function to toggle statistics section
97+
function toggleStatsSection() {
98+
const toggleButton = document.getElementById('toggle-stats');
99+
const statsSection = document.getElementById('statistics-cards');
100+
statsSection.style.display = 'none';
101+
102+
toggleButton.addEventListener('click', function() {
103+
statsSection.style.display = statsSection.style.display === 'none' ? 'block' : 'none';
104+
});
105+
}
106+
107+
fetchDirectories();
108+
toggleLanguagesSection();
109+
fetchRepoStats();
110+
toggleStatsSection();
61111
});

0 commit comments

Comments
 (0)