Skip to content
Snippets Groups Projects
Commit 9d9d50a6 authored by Mariusz Trela's avatar Mariusz Trela
Browse files

Votes are processed correctly

parent fafb27a3
No related branches found
No related tags found
4 merge requests!456Release candidate v1 24,!230Setup monitoring with pghero,!135Enable postgres monitoring on CI server,!68Fixed result of inaccurate assumption
......@@ -207,7 +207,7 @@ class Blocks:
if not is_initial_sync:
Accounts.dirty(op['author']) # lite - rep
Accounts.dirty(op['voter']) # lite - stats
Votes.vote_op(op)
Votes.vote_op(op, cls._head_block_date)
# misc ops
elif op_type == 'transfer_operation':
......
......@@ -161,7 +161,6 @@ class Posts:
payout = COALESCE( CAST( data_source.payout as DECIMAL ), ihp.payout ),
pending_payout = COALESCE( CAST( data_source.pending_payout as DECIMAL ), ihp.pending_payout ),
payout_at = COALESCE( CAST( data_source.payout_at as TIMESTAMP ), ihp.payout_at ),
updated_at = data_source.updated_at,
last_payout = COALESCE( CAST( data_source.last_payout as TIMESTAMP ), ihp.last_payout ),
cashout_time = COALESCE( CAST( data_source.cashout_time as TIMESTAMP ), ihp.cashout_time ),
is_paidout = COALESCE( CAST( data_source.is_paidout as BOOLEAN ), ihp.is_paidout )
......@@ -177,7 +176,6 @@ class Posts:
t.payout,
t.pending_payout,
t.payout_at,
t.updated_at,
t.last_payout,
t.cashout_time,
t.is_paidout
......@@ -196,7 +194,6 @@ class Posts:
payout,
pending_payout,
payout_at,
updated_at,
last_payout,
cashout_time,
is_paidout)
......@@ -310,7 +307,7 @@ class Posts:
payout_at = date #Here should be `cashout_time`
last_payout = date
cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, '{}'::timestamp, {}, {}, {})".format(
cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {})".format(
author,
permlink,
"NULL" if ( total_payout_value is None ) else ( "'{}'".format( legacy_amount(total_payout_value) ) ),
......@@ -323,7 +320,6 @@ class Posts:
"NULL" if ( pending_payout is None ) else pending_payout,
"NULL" if ( payout_at is None ) else ( "'{}'::timestamp".format( payout_at ) ),
date,#updated_at
"NULL" if ( last_payout is None ) else ( "'{}'::timestamp".format( last_payout ) ),
"NULL" if ( cashout_time is None ) else ( "'{}'::timestamp".format( cashout_time ) ),
......
......@@ -49,11 +49,12 @@ class Votes:
inside_flush = False
@classmethod
def vote_op(cls, vop):
def vote_op(cls, vote_operation, date):
""" Process vote_operation """
voter = vop['voter']
author = vop['author']
permlink = vop['permlink']
voter = vote_operation['voter']
author = vote_operation['author']
permlink = vote_operation['permlink']
weight = vote_operation['weight']
if(cls.inside_flush):
log.info("Adding new vote-info into '_votes_data' dict")
......@@ -64,10 +65,10 @@ class Votes:
cls._votes_data[key] = dict(voter=voter,
author=author,
permlink=permlink,
vote_percent=0,
vote_percent=weight,
weight=0,
rshares=0,
last_update="1969-12-31T23:59:59")
last_update=date)
@classmethod
def effective_comment_vote_op(cls, key, vop, date):
......@@ -79,7 +80,6 @@ class Votes:
assert key in cls._votes_data
cls._votes_data[key]["vote_percent"] = vop["vote_percent"]
cls._votes_data[key]["weight"] = vop["weight"]
cls._votes_data[key]["rshares"] = vop["rshares"]
cls._votes_data[key]["last_update"] = date
......@@ -106,6 +106,7 @@ class Votes:
INNER JOIN hive_accounts ha_a ON ha_a.name = t.author
INNER JOIN hive_permlink_data hpd_p ON hpd_p.permlink = t.permlink
INNER JOIN hive_posts hp ON hp.author_id = ha_a.id AND hp.permlink_id = hpd_p.id
WHERE NOT hp.is_paidout
) as data_source(post_id, voter_id, author_id, permlink_id, weight, rshares, vote_percent, last_update)
ON CONFLICT ON CONSTRAINT hive_votes_ux1 DO
UPDATE
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment