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: ...@@ -207,7 +207,7 @@ class Blocks:
if not is_initial_sync: if not is_initial_sync:
Accounts.dirty(op['author']) # lite - rep Accounts.dirty(op['author']) # lite - rep
Accounts.dirty(op['voter']) # lite - stats Accounts.dirty(op['voter']) # lite - stats
Votes.vote_op(op) Votes.vote_op(op, cls._head_block_date)
# misc ops # misc ops
elif op_type == 'transfer_operation': elif op_type == 'transfer_operation':
......
...@@ -161,7 +161,6 @@ class Posts: ...@@ -161,7 +161,6 @@ class Posts:
payout = COALESCE( CAST( data_source.payout as DECIMAL ), ihp.payout ), payout = COALESCE( CAST( data_source.payout as DECIMAL ), ihp.payout ),
pending_payout = COALESCE( CAST( data_source.pending_payout as DECIMAL ), ihp.pending_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 ), 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 ), 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 ), 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 ) is_paidout = COALESCE( CAST( data_source.is_paidout as BOOLEAN ), ihp.is_paidout )
...@@ -177,7 +176,6 @@ class Posts: ...@@ -177,7 +176,6 @@ class Posts:
t.payout, t.payout,
t.pending_payout, t.pending_payout,
t.payout_at, t.payout_at,
t.updated_at,
t.last_payout, t.last_payout,
t.cashout_time, t.cashout_time,
t.is_paidout t.is_paidout
...@@ -196,7 +194,6 @@ class Posts: ...@@ -196,7 +194,6 @@ class Posts:
payout, payout,
pending_payout, pending_payout,
payout_at, payout_at,
updated_at,
last_payout, last_payout,
cashout_time, cashout_time,
is_paidout) is_paidout)
...@@ -310,7 +307,7 @@ class Posts: ...@@ -310,7 +307,7 @@ class Posts:
payout_at = date #Here should be `cashout_time` payout_at = date #Here should be `cashout_time`
last_payout = date last_payout = date
cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, '{}'::timestamp, {}, {}, {})".format( cls._comment_payout_ops.append("('{}', '{}', {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {})".format(
author, author,
permlink, permlink,
"NULL" if ( total_payout_value is None ) else ( "'{}'".format( legacy_amount(total_payout_value) ) ), "NULL" if ( total_payout_value is None ) else ( "'{}'".format( legacy_amount(total_payout_value) ) ),
...@@ -323,7 +320,6 @@ class Posts: ...@@ -323,7 +320,6 @@ class Posts:
"NULL" if ( pending_payout is None ) else pending_payout, "NULL" if ( pending_payout is None ) else pending_payout,
"NULL" if ( payout_at is None ) else ( "'{}'::timestamp".format( payout_at ) ), "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 ( last_payout is None ) else ( "'{}'::timestamp".format( last_payout ) ),
"NULL" if ( cashout_time is None ) else ( "'{}'::timestamp".format( cashout_time ) ), "NULL" if ( cashout_time is None ) else ( "'{}'::timestamp".format( cashout_time ) ),
......
...@@ -49,11 +49,12 @@ class Votes: ...@@ -49,11 +49,12 @@ class Votes:
inside_flush = False inside_flush = False
@classmethod @classmethod
def vote_op(cls, vop): def vote_op(cls, vote_operation, date):
""" Process vote_operation """ """ Process vote_operation """
voter = vop['voter'] voter = vote_operation['voter']
author = vop['author'] author = vote_operation['author']
permlink = vop['permlink'] permlink = vote_operation['permlink']
weight = vote_operation['weight']
if(cls.inside_flush): if(cls.inside_flush):
log.info("Adding new vote-info into '_votes_data' dict") log.info("Adding new vote-info into '_votes_data' dict")
...@@ -64,10 +65,10 @@ class Votes: ...@@ -64,10 +65,10 @@ class Votes:
cls._votes_data[key] = dict(voter=voter, cls._votes_data[key] = dict(voter=voter,
author=author, author=author,
permlink=permlink, permlink=permlink,
vote_percent=0, vote_percent=weight,
weight=0, weight=0,
rshares=0, rshares=0,
last_update="1969-12-31T23:59:59") last_update=date)
@classmethod @classmethod
def effective_comment_vote_op(cls, key, vop, date): def effective_comment_vote_op(cls, key, vop, date):
...@@ -79,7 +80,6 @@ class Votes: ...@@ -79,7 +80,6 @@ class Votes:
assert key in cls._votes_data 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]["weight"] = vop["weight"]
cls._votes_data[key]["rshares"] = vop["rshares"] cls._votes_data[key]["rshares"] = vop["rshares"]
cls._votes_data[key]["last_update"] = date cls._votes_data[key]["last_update"] = date
...@@ -106,6 +106,7 @@ class Votes: ...@@ -106,6 +106,7 @@ class Votes:
INNER JOIN hive_accounts ha_a ON ha_a.name = t.author 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_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 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) ) 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 ON CONFLICT ON CONSTRAINT hive_votes_ux1 DO
UPDATE UPDATE
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment