Skip to content

Commit 3f97ba0

Browse files
committed
Working Ready
1 parent abdc36e commit 3f97ba0

File tree

6 files changed

+59
-30
lines changed

6 files changed

+59
-30
lines changed

identifyLanguage.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,20 @@ var filterLanguages = (linguistObject, filename) => {
1515
var possibleExtensions = filterExtensions(filename);
1616
var possibleLanguages = [];
1717
if(possibleExtensions.length == 0)
18-
possibleLanguages.push("Shell");
18+
possibleLanguages.push("Shell Script");
1919
for(var i = 0; i < possibleExtensions.length; i++)
2020
if(linguistObject[possibleExtensions[i]])
2121
possibleLanguages = linguistObject[possibleExtensions[i]];
2222
return possibleLanguages;
2323
};
24+
25+
var detectLanguage = (possibleLanguages, content) => {
26+
if(possibleLanguages[0] == "Shell Script") {
27+
if(content.startsWith("#!/bin/bash") || content.startsWith("#!/bin/sh") || content.startsWith("#!/bin/zsh"))
28+
return "Shell"
29+
return "";
30+
}
31+
else if(possibleLanguages.length != 1)
32+
return "";
33+
return possibleLanguages[0]; // Change required. Possibly ML.
34+
};

index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
<head>
44
<title>Lines Of Code</title>
55
<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
6+
<script type = "text/javascript" src = "linguist.js"></script>
7+
<script type = "text/javascript" src = "identifyLanguage.js"></script>
68
<script type = "text/javascript" src = "traverseDirectory.js"></script>
79
<script type = "text/javascript" src = "lineOfCode.js"></script>
810
<script type = "text/javascript" src = "index.js"></script>

index.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
var linesOfCodePromise = getLinesOfCodePromise(
2-
'https://api.github.com/repos/Ankit-22/AutoConnect/git/blobs/e6b32bc7884bb98a5024981d37fec787514b56c8'
3-
);
4-
5-
linesOfCodePromise.then(
1+
linguistPromise.then(
62
data => {
7-
console.log(data);
8-
return data;
3+
var linguistObject = convertLinguistDataToJson(data);
4+
var linguistInverseObject = convertObjectToInverse(linguistObject);
5+
console.log(linguistInverseObject);
6+
return linguistInverseObject;
97
},
108
error => {
119
console.log(error);
12-
return -1;
1310
}
14-
);
15-
16-
// gitDirectoryScrapper("https://api.github.com/repos/Ankit-22/AutoConnect/contents/");
11+
).then(
12+
data => {
13+
gitDirectoryScrapper('https://api.github.com/repos/Ankit-22/Algorithms_Datastructures/contents', data);
14+
},
15+
error => {
16+
console.log(error);
17+
}
18+
);

lineOfCode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ var getLinesOfCodePromise = gitUrl => {
44
url: gitUrl,
55
success: result => {
66
var decoded_string = atob(result.content);
7-
resolve(decoded_string.split('\n').length - 1);
7+
resolve({content: decoded_string, length: decoded_string.split('\n').length});
88
},
99
error: (jqXHR, textStatus, errorThrown) => {
10-
reject(textStatus);
10+
reject(errorThrown);
1111
},
1212
});
1313
});

linguist.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,3 @@ var linguistPromise = new Promise( (resolve, reject) => {
5656
},
5757
});
5858
});
59-
60-
linguistPromise.then(
61-
data => {
62-
linguistObject = convertLinguistDataToJson(data);
63-
linguistInverseObject = convertObjectToInverse(linguistObject);
64-
console.log(linguistInverseObject);
65-
},
66-
error => {
67-
console.log(error);
68-
}
69-
);

traverseDirectory.js

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,47 @@
1-
var gitDirectoryScrapper = directoryUrl => {
1+
var stats = {};
2+
3+
var gitDirectoryScrapper = (directoryUrl, linguistData) => {
24
directoryPromise = new Promise( (resolve, reject) => {
35
$.ajax({
46
url: directoryUrl,
57
success: result => {
8+
console.log(result);
69
resolve(result);
710
},
811
error: (jqXHR, textStatus, errorThrown) => {
9-
reject(textStatus);
12+
reject(errorThrown);
1013
},
1114
});
1215
});
13-
1416
directoryPromise.then(
1517
data => {
1618
data.forEach( fileObject => {
1719
if(fileObject.type == "dir")
18-
gitDirectoryScrapper(fileObject.url);
19-
else console.log(fileObject.path);
20+
gitDirectoryScrapper(fileObject.url, linguistData);
21+
else {
22+
var possibleLanguages = filterLanguages(linguistData, fileObject.path);
23+
if(possibleLanguages.length == 0)
24+
return;
25+
var contentPromise = getLinesOfCodePromise(fileObject.url);
26+
contentPromise.then(
27+
content => {
28+
var language = detectLanguage(possibleLanguages, content.content);
29+
console.log(language);
30+
if(language != "") {
31+
if(!(typeof stats[language] === 'undefined')) {
32+
console.log(fileObject.path);
33+
stats[language] += content.length;
34+
}
35+
else
36+
stats[language] = content.length;
37+
}
38+
console.log(stats);
39+
},
40+
error => {
41+
console.log(error);
42+
}
43+
);
44+
}
2045
});
2146
},
2247
error => {

0 commit comments

Comments
 (0)