<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" rel="stylesheet"> <style> .postBody button { font-size: 12px !important; } .list-group-item, .card { background: #222 !important; color: white !important; } </style> <script crossorigin="anonymous" defer="defer" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script> <style> div.pInf, div.brdCmb, h1.pTtl { display: none; } .thread-container { line-height: 1.2rem; text-align: left; padding: 24px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); border-bottom: 1px ridge rgba(255,255,255,0.3); text-decoration: none !important; color: white !important; cursor: pointer; background: #1E1F22; } h1.pTtl { display: none; } .th-header { position: relative; margin-bottom: 10px; } .thread-container i { opacity: 0.5; cursor: pointer; } .country { position: absolute; width: 16px; height: 16px; left: 0; bottom: 0; } .largeFont { font-size: 20px !important; } .smallFont { font-size: 12px !important; } .lowOpacity { opacity: 0.7; } .bold { font-weight: 600; } .light { font-weight: 400 !important; } .th-body { width: 100%; max-height: auto; overflow: hidden; margin-bottom: 20px; } .th-body p { opacity: 0.5; } .th-body h4 { opacity: 0.8; } .thread-container .profile { width: 40px !important; height: 40px !important; max-width: 40px; max-height: 40px; object-fit: cover; border-radius: 50%; border: 1.7px solid gray; float: left; } .thread-container span { margin: 3px; } div.attachments img { max-height: 150px; } </style> <span id='spanCreatePost' class="badge text-bg-info">Please login to Create a Post.</span> <button style='float: right;' type='button' aria-label='Create Post' onclick='window.location.href="https://storehaccounts.blogspot.com/p/ptc-official-post-creator.html"' class="btn btn-outline-info">Create Post</button> <br> <div parent-container id='parent-container'></div> <template cards-template> <div class='thread-container'> <div class='th-header'> <img class="profile" loading="lazy" profile-img="" src=""/> <span class='username'><i class="fa fa-user"></i><span class='bold' th-username></span></span> <span class='date'><i class="fa fa-clock-o"></i><span class='lowOpacity light smallFont' th-date></span></span> <br> <span class='tags'><i class="fa fa-thumb-tack"></i><span class='lowOpacity light smallFont' th-tags></span><img class="country" loading="lazy" src="" th-country=""/></span> </div> <div class='th-body'> <b class='title-th' th-title>loading...</b> <p class='body' th-body>loading...</p> <div class='attachments'><img loading="lazy" th-images=""/></div> </div> <div class='th-footer'> <span class='heart largeFont'><i class="fa fa-heart"></i><span th-upvotes>loading...</span></span> <span class='comments largeFont'><i class="fa fa-comments"></i><span th-comments>loading...</span></span> </div> </div> </template> <script> if(localStorage.getItem('ptc_user')) { query('spanCreatePost').remove(); } window.addEventListener('load', async function() { await initFunctions(['FirebaseModule', 'Ranks', 'JBLOBFunctions', 'FLAG_API']); loadCards(); }, false); function qpro(id) { return document.querySelector('[' + id + ']'); } function query(id) { return document.getElementById(id); } async function loadCards() { // get the following // get the threads // get the username // get the user link // get the thumbnail if any // get the likes // get the comment counts // get the body let threads_data = await FirebaseModule.get('https://storehaccounts-threads-default-rtdb.firebaseio.com/threads.json'); threads_data = JSON.parse(threads_data); threads_data = Object.entries(threads_data); for(let i=threads_data.length-1; i>-1; i--) { let id = threads_data[i][0]; let content = threads_data[i][1]; let myDoc = qpro('cards-template').content.cloneNode(true).children[0]; /*<template thread-container> <a class='thread-container'> <div class='th-header'> <img profile-img class='profile' src='https://static.wikia.nocookie.net/b6159f6a-7e58-4a77-b0cf-0cabc3564865/scale-to-width/48'/> <span class='username'><i class="fa fa-user"></i><span class='bold' th-username>IFLoopa</span></span> <span class='date'><i class="fa fa-clock-o"></i><span class='lowOpacity light' th-date>3 hours ago...</span></span> <br> <span class='tags'><i class="fa fa-thumb-tack"></i><span class='lowOpacity light' th-tags>General</span><img th-country src='https://static.wikia.nocookie.net/c977b5c5-3894-4d46-8d68-e6f74bc77c31/scale-to-width/48' class='country'/></span> </div> <div class='th-body'> <h2 class='title-th' th-title>Help me design a 4-star Stories of Legend lineup!</h2> <p class='body' th-body>Now that I'm starting 4-star Stories of Legend, I need to fix my 4-star lineup. I can use any Special or Rare unit that's available in the English version. Here's a picture of my current lineup for reference:</p> <div class='attachments' th-images><img src='https://static.wikia.nocookie.net/a6bea321-f272-4c64-b9bc-4ec06b7a8ef4/scale-to-width/755'/></div> </div> <div class='th-footer'> <span class='heart largeFont'><i class="fa fa-heart"></i><span th-upvotes>3</span></span> <span class='comments largeFont'><i class="fa fa-comments"></i><span th-comments>10</span></span> </div> </a> </template>*/ myDoc.id = content.content.body; myDoc.setAttribute('onclick', 'window.location.href=\'https://storehaccounts.blogspot.com/p/ptc-post-official.html?' + id + '\''); myDoc.querySelector('[th-upvotes]').innerHTML = content.details.upvote; myDoc.querySelector('[th-tags]').innerText = content.action.val + ' in ' + content.category; myDoc.querySelector('[th-comments]').innerHTML = (content.details.hasOwnProperty('comments') ? content.details.comments : '0'); myDoc.querySelector('[th-date]').innerHTML = moment(parseInt(content.details.date)).fromNow(); qpro('parent-container').appendChild(myDoc); // Getting the thread description from jblob JBLOBFunctions.getBlobRecord('https://jsonblob.com/api/jsonBlob/' + content.content.body, function(th_data) { th_data = JSON.parse(th_data); let html_parse = document.createElement('div'); html_parse.innerHTML = th_data.description; if(th_data.hasOwnProperty('imgs')) { if(th_data.imgs.length > 0) { query(content.content.body).querySelector('[th-images]').src = th_data.imgs[0]; } else query(content.content.body).querySelector('[th-images]').remove(); } else query(content.content.body).querySelector('[th-images]').remove(); query(content.content.body).querySelector('[th-title]').innerText = th_data.title; query(content.content.body).querySelector('[th-body]').innerText = html_parse.innerText.substring(0, 250) + '...'; }); // Getting the user informations JBLOBFunctions.getBlobRecord('https://jsonblob.com/api/jsonBlob/' + content.author.userid, function(user_data) { user_data = JSON.parse(user_data); let country_flag = document.createElement('div'); let country_name = ''; let color = Ranks.getRank(user_data).color; if(user_data.hasOwnProperty('country') && user_data.country.length != 0) { country_flag.innerHTML = user_data.country; country_name = country_flag.querySelector('span').innerText; country_flag = country_flag.querySelector('img').src; } else { country_flag = "https://m.media-amazon.com/images/I/61aI7DYZ1jL._AC_UF894,1000_QL80_.jpg"; country_name = 'ALIEN'; } query(content.content.body).querySelector('[profile-img]').src = user_data.prof_image; query(content.content.body).querySelector('[th-username]').innerText = user_data.nickname; query(content.content.body).querySelector('[th-country]').src = country_flag; }); } } </script>