Hive 开发者门户网站
在帖子中获取选民列表
在本教程结束时,你会知道如何在任何内容上获取选民名单。
Full, runnable src of Get Voters List On Post can be downloaded as part of: tutorials/ruby (or download just this tutorial: devportal-master-tutorials-ruby-06_get_voters_list_on_post.zip).
Also see:
Script
First, we ask the blockchain for the active votes on a post or comment. Then, we count the upvotes, downvotes, and unvotes (which are votes that have been removed after being cast in a previous transaction).
Then, we sort the votes by rshares to find the top voter.
Final code:
require 'rubygems'
require 'bundler/setup'
Bundler.require
url = ARGV[0]
slug = url.split('@').last
author, permlink = slug.split('/')
api = Radiator::Api.new
api.get_active_votes(author, permlink) do |votes|
upvotes = votes.select { |v| v.percent > 0 }.size
downvotes = votes.select { |v| v.percent < 0 }.size
unvotes = votes.select { |v| v.percent == 0 }.size
top_voter = votes.sort_by { |v| v.rshares.to_i }.last.voter
puts "Upvotes: #{upvotes}"
puts "Downvotes: #{downvotes}"
puts "Unvotes: #{unvotes}"
puts "Total: #{votes.size}"
puts "Top Voter: #{top_voter}"
end
To Run
First, set up your workstation using the steps provided in Getting Started. Then you can create and execute the script (or clone from this repository):
git clone https://gitlab.syncad.com/hive/devportal.git
cd devportal/tutorials/ruby/06_get_voters_list_on_post
bundle install
ruby voter_list.rb https://hive.blog/communityfork/@hiveio/announcing-the-launch-of-hive-blockchain
Example Output
Upvotes: 997
Downvotes: 3
Unvotes: 0
Total: 1000
Top Voter: blocktrades