├── LIR_profile_toJSON_v2.js ├── LIR_profile_to_json.js ├── README.md ├── profile_to_CSV.txt └── toSheet.gs /LIR_profile_toJSON_v2.js: -------------------------------------------------------------------------------- 1 | function checker(elm, type) { if (elm != undefined) { if (type == 'href') { return elm.href; } if (type == 'text') { return elm.innerText.trim(); } if (type == 'next') { return elm; } } else { return ''; }} 2 | 3 | function reg(elm, n) { if (elm != null) { return elm[n]; } else { return ''; }} 4 | 5 | function regTest(x, s){return new RegExp(x, 'i').test(s);} 6 | 7 | function splitDates(str){ if(/\s–\s/.test(str) === true){ let start = reg(/.+?(?=\s–)/.exec(str),0); let end = reg(/(?<=\s–\s).+/.exec(str),0); return new Array(start,end); }else{ var d = reg(/\d{4}/.exec(str),0); return new Array(d,d); }} 8 | 9 | function getMonthNum(str){ var month = 1; if(regTest('Jan',str) === true){month = 1;} if(regTest('Feb',str) === true){month = 2;} if(regTest('Mar',str) === true){month = 3;} if(regTest('Apr',str) === true){month = 4;} if(regTest('May',str) === true){month = 5;} if(regTest('Jun',str) === true){month = 6;} if(regTest('Jul',str) === true){month = 7;} if(regTest('Aug',str) === true){month = 8;} if(regTest('Sep',str) === true){month = 9;} if(regTest('Oct',str) === true){month = 10;} if(regTest('Nov',str) === true){month = 11;} if(regTest('Dec',str) === true){month = 12;} if(regTest('Present',str) === true){month = new Date().getMonth()+1;} return month;} 10 | 11 | function getYearNum(str){ if(regTest('present',str) === true){ return new Date().getFullYear(); }else{ return parseInt(reg(/\d{4}/.exec(str),0)); }} 12 | 13 | function getMilsecByMonthYear(m,y){ var dString = m+'/15/'+y; return new Date(dString).getTime();} 14 | 15 | var expContainer = document.getElementById('profile-experience'); 16 | var eduContainer = document.getElementById('profile-education'); 17 | var crtContainer = document.getElementById('profile-certifications'); 18 | var lngContainer = document.getElementById('profile-language'); 19 | var sklContainer = document.getElementById('profile-skills'); 20 | var careerInterestContainer = document.getElementById('profile-career-interests'); 21 | var sumContainer = document.getElementById('profile-summary'); 22 | 23 | var infoContainer = checker(document.getElementsByClassName('profile-info')[0], 'next'); 24 | if(infoContainer != ''){ 25 | var fullname = checker(infoContainer.getElementsByTagName('h1')[0], 'text'); 26 | }else{ 27 | var fullname = ''; 28 | } 29 | 30 | var isPublic = checker(document.getElementsByClassName('public-profile')[0], 'next'); 31 | if(isPublic != ''){ 32 | var publicProfilePath = reg(/(?<=\/in\/).+/.exec(checker(isPublic.getElementsByTagName('a')[0], 'href')), 0); 33 | }else{ 34 | var publicProfilePath = '' 35 | } 36 | 37 | var geo = checker(document.getElementsByClassName('location searchable')[0], 'text'); 38 | var zipcode = reg(/(?<=postalCode=)\d+/.exec(checker(document.getElementsByClassName('location searchable')[0].getElementsByTagName('a')[0], 'href')),0); 39 | 40 | if(sumContainer != null){ 41 | var summary = checker(sumContainer.getElementsByClassName('module-body')[0], 'text'); 42 | }else{ 43 | var summary = ''; 44 | } 45 | function getDataByLoop(elm, str){ 46 | var arr = []; 47 | if(elm != null){ 48 | let itm = elm.getElementsByClassName(str); 49 | for(i=0; i0){ 14 | if(t == 'href'){ 15 | return e[0].href; 16 | } 17 | if(t == 'innerText'){ 18 | return e[0].innerText; 19 | } 20 | }else{ 21 | return ''; 22 | } 23 | } 24 | 25 | function returnSkillsAsSudoArray(){ 26 | var skillArr = []; 27 | 28 | var skillCont = document.getElementById("profile-skills"); 29 | if(skillCont != null){ 30 | 31 | var skillItem = skillCont.getElementsByTagName("li"); 32 | for(i=0; i0)%7B if(t %3D%3D 'href')%7B return e%5B0%5D.href%3B %7D if(t %3D%3D 'innerText')%7B return e%5B0%5D.innerText%3B %7D %7Delse%7B return ''%3B %7D %7D function returnSkillsAsSudoArray()%7B var skillArr %3D %5B%5D%3B var skillCont %3D document.getElementById("profile-skills")%3B if(skillCont !%3D null)%7B var skillItem %3D skillCont.getElementsByTagName("li")%3B for(i%3D0%3B i