Skip to content

Commit 0fea6ae

Browse files
committed
add user profile data and user latest feed
1 parent 768c009 commit 0fea6ae

File tree

2 files changed

+87
-74
lines changed

2 files changed

+87
-74
lines changed

public/js/main.js

Lines changed: 84 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ function getMoreContent(filter, tag){
4141
}
4242
}
4343

44+
function getBlog(username){
45+
let query = {
46+
tag: username,
47+
limit: 10
48+
}
49+
steem.api.getDiscussionsByBlog(query, (err, result) => {
50+
displayContent(result)
51+
})
52+
}
4453
function displayContent(result, initial){
4554
if (!initial) result.shift()
4655
for (let i = 0; i < result.length ; i++) {
@@ -220,10 +229,68 @@ createCommentTemplate = (post) => {
220229
return template;
221230
}
222231

232+
getAccountInfo = (username) => {
233+
234+
let totalVestingShares, totalVestingFundSteem;
235+
let userInfo;
236+
237+
steem.api.getDynamicGlobalProperties((err, result) => {
238+
totalVestingShares = result.total_vesting_shares;
239+
totalVestingFundSteem = result.total_vesting_fund_steem;
240+
})
241+
242+
return new Promise((resolve, reject) => {
243+
244+
steem.api.getAccounts([username], (err, result) => {
245+
246+
let user = result[0]
247+
248+
let jsonData = user.json_metadata ? JSON.parse(user.json_metadata).profile : {}
249+
250+
// steem power calc
251+
let vestingShares = user.vesting_shares;
252+
let delegatedVestingShares = user.delegated_vesting_shares;
253+
let receivedVestingShares = user.received_vesting_shares;
254+
let steemPower = steem.formatter.vestToSteem(vestingShares, totalVestingShares, totalVestingFundSteem);
255+
let delegatedSteemPower = steem.formatter.vestToSteem((receivedVestingShares.split(' ')[0])+' VESTS', totalVestingShares, totalVestingFundSteem);
256+
let outgoingSteemPower = steem.formatter.vestToSteem((receivedVestingShares.split(' ')[0]-delegatedVestingShares.split(' ')[0])+' VESTS', totalVestingShares, totalVestingFundSteem) - delegatedSteemPower;
257+
258+
// vote power calc
259+
let lastVoteTime = (new Date - new Date(user.last_vote_time + "Z")) / 1000;
260+
let votePower = user.voting_power += (10000 * lastVoteTime / 432000);
261+
votePower = Math.min(votePower / 100, 100).toFixed(2);
262+
263+
let data = {
264+
name: user.name,
265+
image: jsonData.profile_image ? 'https://steemitimages.com/512x512/' + jsonData.profile_image : '',
266+
rep: steem.formatter.reputation(user.reputation),
267+
effectiveSp: parseInt(steemPower + delegatedSteemPower - -outgoingSteemPower),
268+
sp: parseInt(steemPower).toLocaleString(),
269+
delegatedSpIn: parseInt(delegatedSteemPower).toLocaleString(),
270+
delegatedSpOut: parseInt(-outgoingSteemPower).toLocaleString(),
271+
vp: votePower,
272+
steem: user.balance.substring(0, user.balance.length - 5),
273+
sbd: user.sbd_balance.substring(0, user.sbd_balance.length - 3),
274+
numOfPosts: user.post_count,
275+
followerCount: '',
276+
followingCount: '',
277+
usdValue: '',
278+
createdDate: new Date (user.created)
279+
}
280+
steem.api.getFollowCount(user.name, function(err, result){
281+
data.followerCount = result.follower_count
282+
data.followingCount = result.following_count
283+
resolve(data)
284+
})
285+
data.usdValue = steem.formatter.estimateAccountValue(user)
286+
})
287+
});
288+
}
289+
290+
223291
// ----------------------------------------------------
224292

225293
if ($('main').hasClass('feed') ) {
226-
227294
let feedType = $('main.feed').data('feed-type')
228295

229296
if(feedType === 'trending'){
@@ -241,76 +308,21 @@ if ($('main').hasClass('single')) {
241308

242309
if ($('main').hasClass('profile') ) {
243310
let username = $('.profile').data('username')
244-
245-
246-
let totalVestingShares, totalVestingFundSteem;
247-
248-
steem.api.getDynamicGlobalProperties((err, result) => {
249-
totalVestingShares = result.total_vesting_shares;
250-
totalVestingFundSteem = result.total_vesting_fund_steem;
251-
})
252-
253-
steem.api.getAccounts([username], (err, result) => {
254-
255-
let user = result[0]
256-
257-
// store meta Data
258-
let jsonData = user.json_metadata ? JSON.parse(user.json_metadata).profile : {}
259-
// steem power calc
260-
let vestingShares = user.vesting_shares;
261-
let delegatedVestingShares = user.delegated_vesting_shares;
262-
let receivedVestingShares = user.received_vesting_shares;
263-
let steemPower = steem.formatter.vestToSteem(vestingShares, totalVestingShares, totalVestingFundSteem);
264-
let delegatedSteemPower = steem.formatter.vestToSteem((receivedVestingShares.split(' ')[0])+' VESTS', totalVestingShares, totalVestingFundSteem);
265-
let outgoingSteemPower = steem.formatter.vestToSteem((receivedVestingShares.split(' ')[0]-delegatedVestingShares.split(' ')[0])+' VESTS', totalVestingShares, totalVestingFundSteem) - delegatedSteemPower;
266-
267-
// vote power calc
268-
let lastVoteTime = (new Date - new Date(user.last_vote_time + "Z")) / 1000;
269-
let votePower = user.voting_power += (10000 * lastVoteTime / 432000);
270-
votePower = Math.min(votePower / 100, 100).toFixed(2);
271-
272-
let data = {
273-
name: user.name,
274-
image: jsonData.profile_image ? 'https://steemitimages.com/2048x512/' + jsonData.profile_image : '',
275-
rep: steem.formatter.reputation(user.reputation),
276-
effectiveSp: parseInt(steemPower + delegatedSteemPower - -outgoingSteemPower),
277-
sp: parseInt(steemPower).toLocaleString(),
278-
delegatedSpIn: parseInt(delegatedSteemPower).toLocaleString(),
279-
delegatedSpOut: parseInt(-outgoingSteemPower).toLocaleString(),
280-
vp: votePower,
281-
steem: user.balance.substring(0, user.balance.length - 5),
282-
sbd: user.sbd_balance.substring(0, user.sbd_balance.length - 3),
283-
numOfPosts: user.post_count,
284-
followerCount: '',
285-
followingCount: '',
286-
usdValue: '',
287-
createdDate: new Date (user.created)
288-
}
289-
290-
291-
steem.api.getFollowCount(user.name, function(err, result){
292-
data.followerCount = result.follower_count
293-
data.followingCount = result.following_count
294-
})
295-
296-
297-
data.usdValue = steem.formatter.estimateAccountValue(user)
298-
299-
300-
console.log(data)
301-
302-
let template =
303-
`
304-
<section class="profile">
305-
<h2>${data.name} - ${data.rep}</h2>
306-
<img src="${data.image}">
307-
</section>
308-
`
309-
310-
$('main').append(template)
311-
312-
313-
314-
311+
getAccountInfo(username).then(data => {
312+
let template =
313+
`<section class="profile">
314+
<h2>${data.name} [${data.rep}]</h2>
315+
<img src="${data.image}" width="100px">
316+
<h5>Followers: ${data.followerCount}</h5>
317+
<h5>Following: ${data.followingCount}</h5>
318+
<h5>Effective Steem Power: ${data.effectiveSp}</h5>
319+
<h5>Steem Power: ${data.sp}</h5>
320+
<h5>STEEM: ${data.steem}</h5>
321+
<h5>SBD: ${data.sbd}</h5>
322+
<h5>Vote Power: ${data.vp}%</h5>
323+
</section>
324+
`
325+
$('main').prepend(template)
315326
})
327+
getBlog(username)
316328
}

views/profile.pug

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ block content
44
include partials/nav
55

66
main.profile(data-username=`${name}`)
7-
h1 Profile
8-
h2 #{name}
7+
8+
section.container
9+
.row.feed-insert

0 commit comments

Comments
 (0)