.brdCmb, h1.pTtl { display: none !important; } .user-profile-design h1, .user-profile-design p { margin: 0 auto; opacity: 0.8; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; } .user-profile-design img { height: 100px !important; } .user-profile-design span { font-size: 14px; } .user-profile-design p { font-size: 14px; } .ptc-small-banner { background: rgba(0,0,0,0.3); height: 110px !important; margin: 10px; } .ptc-small-banner img { display: inline-block; height: 110px !important; width: 100% !important; object-fit: cover; padding: 5px; } .ptc-small-banner a { display: inline-block; margin: -10px 0 -10px 0; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: underline; color: white; opacity: 0.8; } .ptc-small-banner small { display: inline-block; margin: -3px 0 0 0; line-height: 15px; width: 100%; } .column { float: left; width: 33.33%; height: 110px !important; } .columnB { float: left; width: 60.00%; max-height: 110px !important; padding: 10px; overflow: hidden; } #stats-rank { font-size: 14px; background: white; color: black; opacity: 0.7; margin: 0; padding: 5px; display: inline-block; font-weight: bold; } Back to Community PTC Reborn Official Understanding how user rank works. "ptcrebornofficial" Since January 21, 1992 Level 10 (998 Pts.) Create Post to earn Points! No Posts let url = window.location.href; let user = ''; if(url.includes('&m=1')) url = url.replace('&m=1', ''); if(url.includes('?')) user = url.split('?')[1]; let r_data; let userRank = ''; let myRankName = ''; let rank_names = { "10": "Beginner", "30": "Trainee", "60": "Amateur", "120": "Hustler", "240": "Hotshot", "480": "Virtuoso", "960": "Expert", "1000": "Veteran", "1050": "Semi-Pro", "2000": "Professional", "2050": "Master", "2100": "Champ", "2200": "Superstar", "2500": "Hero", "3000": "Legend", "4000": "Immortal" }; getData('ptc_users', successUserData); function q(id) { return document.querySelector(id); } function successPostData(data) { data = JSON.parse(data); let keys = Object.keys(data); for(i=keys.length-1; i > -1; i--) { if(data[keys[i]].user.username == user) { q('#postDetect').innerText = 'Latest Posts'; let post_data = data[keys[i]].posts; let childiv = document.createElement('div'); childiv.innerHTML = "<div class='ptc-small-banner'> <div class='column'> <img src='" + post_data.images[0] +"'/> </div> <div class='columnB'> <a href='" + 'https://storehaccounts.blogspot.com/p/ptc-post-official.html?' + keys[i] + "'>" + post_data.title + " </a> <small>" + post_data.description + "</small> </div> </div>"; document.querySelector('#totalPosts').appendChild(childiv); } } } function successUserRank(data) { data = JSON.parse(data); if(data[user] && data[user].points) { let keys = Object.keys(data[user].points); let pts = 0; for(i=0; i<keys.length; i++) pts += parseInt(data[user].points[keys[i]]); userRank = 'Total Points: ' + pts; q('#stats-rank').innerHTML = determineRank(pts); } else { myRankName = 'NOOB'; userRank = 'Total Points: 0'; q('#stats-rank').innerText = 'NOOB'; } q('.user-profile-design span').innerText = userRank; r_data = { [user]: { "level": myRankName } } // update user rank patch('https://jsonbin.org/ptcreborn/ptc_user_ranks', r_data, null); delete data; } function successUserData(data) { let sp_user = JSON.parse(data); if(sp_user.members[user]) { sp_user = sp_user.members[user]; q('.user-profile-design p').innerText = 'Username: ' + user; //username q('.user-profile-design small').innerText = 'Age: ' + moment(sp_user[1]).fromNow(true) + ' old.'; //joined date q('.user-profile-design h1').innerHTML = sp_user[0]; // name q('.user-profile-design img').src = sp_user[2]; // img getData('ptc_user_ranks', successUserRank); getData('ptc_feeds', successPostData); delete data; delete sp_user; } else { q('.user-profile-design').innerHTML = '<h1>Invalid User Request</h1>'; } } function determineRank(points) { let keys = Object.keys(rank_names); let rankName = ''; let level = 0; for (i = 0; i < keys.length; i++) { let rankPts = parseInt(keys[i]); if (points <= rankPts) { if(i == 0) rankName = rank_names[keys[i]]; else rankName = rank_names[keys[i-1]]; level = i; break; } } myRankName = rankName; return rankName + ' (Level ' + level + ')'; } function patch(url, data, callback) { let req = new XMLHttpRequest(); req.onload = () => { if (req.readyState == 4) if (req.status == 200) if (callback != null) callback(req.response); } req.onerror = (err) => { window.alert('Error encountered! ' + err); } req.open('PATCH', url, false); req.setRequestHeader('Content-Type', 'application/json'); req.setRequestHeader('Authorization', 'token 44489997-ed40-4f52-92a9-dfe6fe8ad5db'); req.send(JSON.stringify(data)); } function getData(basket, callback) { let req = new XMLHttpRequest(); req.onload = () => { if (req.readyState == 4) if (req.status == 200) if(callback) callback(req.response); } req.onerror = (err) => { window.alert('Error encountered! ' + err); } req.open('GET', 'https://jsonbin.org/ptcreborn/' + basket, false); req.setRequestHeader('Content-Type', 'application/json'); req.setRequestHeader('Authorization', 'token 44489997-ed40-4f52-92a9-dfe6fe8ad5db'); req.send(); }