Skip to content

Commit abdc36e

Browse files
committed
Add Language Filters
1 parent cedbc0f commit abdc36e

File tree

4 files changed

+70
-28
lines changed

4 files changed

+70
-28
lines changed

identifyLanguage.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var filterExtensions = filename => {
2+
var possibleExtensions = [];
3+
var prevIndex = -1;
4+
while(true) {
5+
var index = filename.indexOf('.', prevIndex + 1);
6+
if(index != -1) {
7+
possibleExtensions.push(filename.slice(index));
8+
prevIndex = index;
9+
} else break;
10+
}
11+
return possibleExtensions;
12+
};
13+
14+
var filterLanguages = (linguistObject, filename) => {
15+
var possibleExtensions = filterExtensions(filename);
16+
var possibleLanguages = [];
17+
if(possibleExtensions.length == 0)
18+
possibleLanguages.push("Shell");
19+
for(var i = 0; i < possibleExtensions.length; i++)
20+
if(linguistObject[possibleExtensions[i]])
21+
possibleLanguages = linguistObject[possibleExtensions[i]];
22+
return possibleLanguages;
23+
};

index.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1-
var linesOfCode = getLinesOfCode(
1+
var linesOfCodePromise = getLinesOfCodePromise(
22
'https://api.github.com/repos/Ankit-22/AutoConnect/git/blobs/e6b32bc7884bb98a5024981d37fec787514b56c8'
33
);
44

5-
console.log(linesOfCode);
5+
linesOfCodePromise.then(
6+
data => {
7+
console.log(data);
8+
return data;
9+
},
10+
error => {
11+
console.log(error);
12+
return -1;
13+
}
14+
);
615

7-
gitDirectoryScrapper("https://api.github.com/repos/Ankit-22/AutoConnect/contents/");
16+
// gitDirectoryScrapper("https://api.github.com/repos/Ankit-22/AutoConnect/contents/");

lineOfCode.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var getLinesOfCode = gitUrl => {
2-
var linesOfCodePromise = new Promise( (resolve, reject) => {
1+
var getLinesOfCodePromise = gitUrl => {
2+
return new Promise( (resolve, reject) => {
33
$.ajax({
44
url: gitUrl,
55
success: result => {
@@ -11,14 +11,4 @@ var getLinesOfCode = gitUrl => {
1111
},
1212
});
1313
});
14-
15-
linesOfCodePromise.then(
16-
data => {
17-
return data;
18-
},
19-
error => {
20-
console.log(error);
21-
return -1;
22-
}
23-
);
2414
};

linguist.js

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
1-
var linguistPromise = new Promise( (resolve, reject) => {
2-
$.ajax({
3-
url: 'https://api.github.com/repos/github/linguist/git/blobs/50854668d4f8c53e710d49c669be3d311849eef0',
4-
success: result => {
5-
var decoded_string = atob(result.content);
6-
resolve(decoded_string);
7-
},
8-
error: (jqXHR, textStatus, errorThrown) => {
9-
reject(textStatus);
10-
},
11-
});
12-
});
1+
var linguistObject, linguistInverseObject;
132

143
var convertLinguistJsonArrayToObject = jsonArray => {
154
var linguistJsonObject = {};
@@ -39,9 +28,40 @@ var convertLinguistDataToJson = linguistData => {
3928
return convertLinguistJsonArrayToObject(jsonData);
4029
};
4130

31+
var convertObjectToInverse = linguistObject => {
32+
linguistInverseObject = {};
33+
34+
for(var language in linguistObject)
35+
linguistObject[language].forEach( extensions => {
36+
linguistInverseObject[extensions] = [];
37+
});
38+
39+
for(var language in linguistObject)
40+
linguistObject[language].forEach( extensions => {
41+
linguistInverseObject[extensions].push(language);
42+
});
43+
44+
return linguistInverseObject;
45+
};
46+
47+
var linguistPromise = new Promise( (resolve, reject) => {
48+
$.ajax({
49+
url: 'https://api.github.com/repos/github/linguist/git/blobs/50854668d4f8c53e710d49c669be3d311849eef0',
50+
success: result => {
51+
var decoded_string = atob(result.content);
52+
resolve(decoded_string);
53+
},
54+
error: (jqXHR, textStatus, errorThrown) => {
55+
reject(textStatus);
56+
},
57+
});
58+
});
59+
4260
linguistPromise.then(
4361
data => {
44-
console.log(convertLinguistDataToJson(data));
62+
linguistObject = convertLinguistDataToJson(data);
63+
linguistInverseObject = convertObjectToInverse(linguistObject);
64+
console.log(linguistInverseObject);
4565
},
4666
error => {
4767
console.log(error);

0 commit comments

Comments
 (0)