获取帖子的投票用户列表(Voter list)

in cn •  7 years ago 

在前一篇帖子中

并举了一个栗子:
找出用户组A中没有给帖子@oflyhigh/xxxx 投票的用户

你可能很惊讶,莫非O哥用技术手段排查不给他投票的用户,然后拉黑吗?
比如说台湾第一美女 @deanliu 老师就吓哭了

其实O哥没那么小气的啦

不过还真是用来查谁没投票的,至于用途嘛,暂且保密

然后恰逢 @jubi 小兄弟问到:

代码是看懂了,就是不知道这个list_user怎么得到 哈哈,我用上了我所有了编程知识了。:)
PS 我可是点赞了哟

就一并多说点。

获取帖子投票列表

获取帖子投票列表,我知道的至少有四种方法:

  1. 使用SteemData
  2. 使用官方Python库中的Post类
  3. 使用API get_content
  4. 使用API get_active_votes

当然其实还有JS, PHP, Ruby等各种库各种类,你可以选择你擅长的,我不懂的就不多说啦。

1. 使用SteemData

有关如何使用 SteemData
可以参考我以前的一些文章

使用SteemData 你可以有好多种方式来查询出投票列表
比如说从Posts中查询, 或者从Operations中查询,或者从AccountOperations中查询
比如我从Posts中查询Steemit上第一篇文章: Welcome to Steem!

部分投票如下:

是不是很好玩?
不过SteemData目前有个问题,就是数据延迟,说白了,不新鲜,这就尴尬了
人家给你投过了,你查出来没投,岂不是冤枉人了?
我在Github上反馈过这个问题,作者的答复是自建节点,值得期待啊

2. 使用官方Python库中的Post类

Post类其实是对API get_content的封装
用起来就不用太关心下边的东西啦
post = Post('@author/permlink')
这样就取到帖子啦

然后
post['active_votes']就是帖子的投票信息啦
以我之前一个测试的帖子为例, post['active_votes']部分如下:

 'active_votes': [{'percent': 5000,
                   'reputation': '129952225494384',
                   'rshares': '736202067284',
                   'time': '2017-07-23T08:43:33',
                   'voter': 'oflyhigh',
                   'weight': 875336},
                  {'percent': 5000,
                   'reputation': 0,
                   'rshares': 407577814,
                   'time': '2017-07-23T08:43:33',
                   'voter': 'eval',
                   'weight': 194}],

3. 使用API get_content

之前我们说过,Post类其实是对API get_content的封装,所以两者其实是类似的
Post类经过封装更易使用
而get_content更直截了当

API定义如下:
discussion get_content( string author, string permlink )const;

4. 使用API get_active_votes

你可能会问既然,有了1, 2,3 种方法,为何还要第四种呢?是不是没啥写的在凑字数?😡
呃,不是这样的

如果你使用过第二、第三种方法,就会发现它们返回好多信息,比如文章内容、作者信用、奖励信息等等。这些信息在做复杂的判断时非常有用,但是如果就是为了找到投票信息,读回来一火车的数据,岂不是浪费?

浪费是可耻的行为,既增加系统负载又费电,所以我们要杜绝浪费。
所以 get_active_votes 就勇敢的站了出来。
这个API 很好理解,就是拿出对应帖子的投票信息。

API 定义如下:
vector<vote_state> get_active_votes( string author, string permlink )const;

代码示例

超简单的哦

from steem import Steem
steem = Steem()

active_votes = steem.get_active_votes('oflyhigh', '4j3232-python')
list_voter = [vote['voter'] for vote in active_votes]
print(list_voter)

list_user = ['oflyhigh', 'laodr', 'deanliu', 'ace108', 'rivalhw', 'lemoojiang']
list_x = list(set(list_user) - set(list_voter))
print(list_x)

咳咳咳,后边三段代码是我不小心加上去的。我胸怀宽广,不会记仇的😕

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

看起来挺有趣的,但要使用Python这么复杂的东西就超出了我的能力范围, 呵呵!

😄 写出像 @rea 妹妹那样的精彩文章,也超出我的能力范围 😢

Very interesting post , thanks :)

我还特地看了一下美女,可惜头像好模糊

我一直以为 @deanliu 刘系主任是个男的呢,原来是美女呢。

對,他是有名的劉美女!

👌

我一直以为oflyhigh在开玩笑。难道真是美女?

美若天仙啊~

your post looks interesting
i wish there was an english translation
anyway thanks for sharing

All I can see from that text is "buy Antshares." China is about to go crazy with crypto, and I'm happy for them.

Folback Vote :)

邏輯上大概是明白了,但對於只學過C++的我來說覺得太難了T^T

呃,C++ 好难的

我一直以为 @deanliu 刘系主任是个男的呢,原来是美女呢。

咦,你咋能用我的ID发帖呢?你是谁?

來看看沒投票的被拉去...

😄

好奇你的list_user有哪些人 哈哈哈。

嘘,保密

不是很懂,学习了

一起学习

有意思!

谢谢夸奖

唔吼鐘意你們啊!^_^

  ·  7 years ago 

不如一搶打死我吧!

為麼這樣說我.... 我訴台灣第一美女捏

  ·  7 years ago 

美女饒命呀!

😄刘老师曝照啦 👏

這張狀況不好,你看大家都嫌隙我.... >_<

可以舉報嗎,是nfsw的類別啊...

上報紙嗎?我常常上報紙啊!謝謝你的熱心.... 是National Famous Sweetie Weekly嗎?

這。。比死更難受。。

哼!你這臭男人.... 我只想等你家小帥哥長大...

!!!!!不要啊!!!

姊,不俗蘇胡啊~~

your post always too good :)
can you seen my dead body and aunt drawing post its realy good you naver seen before
if you like then folllooo me and voootee uuppp.,.,...

I am impressed with you .. thanks information.semoga we can be friends well .. follow me @riansteem

  ·  7 years ago (edited)

O哥这技术派,是牛得真不得了啊。

😄 这真没啥技术含量的

  ·  7 years ago 

这真是会者不难,难者不会。

Folback Vote :)

o哥,你只喜歡跟台灣的美女聊天!
那香港呢? 😝

😄 咋觉得我要变色狼呢 😢

你剛剛已經變了😝(開玩笑,別打我~)

也许是因为刘美女太漂亮啦

你也這麼覺得吧?被baby這麼稱讚... 頓時覺得好害羞

天啊!我該去吃藥了....

我刚才点赞的时候点不出,系统显示:Cannot increase payout within last twelve hours before payout.
这又是出什么bug了?

不是BUG
6天半到7天之间的帖子不能点赞

哦,原来快付钱时不让点赞

Here you'll find only officially released television promos and teasers, along with exclusive interviews and more. Make sure to follow to never miss a video!

这个有没有 java的api接口

其实就是HTTP通信

不错,我也能玩了

  ·  7 years ago (edited)

还没搞Python但这里的资料可做参考玩steemsql. 谢谢。
可能搞定后不会错过。

哇咔咔,我就是举个栗子

举多几个.:-)

Source: Pixabay.com

  ·  7 years ago Reveal Comment