MMoSP002C- steem-python 开发一个会自动问某个标签下内容的机器人

avatar
(Edited)

MMoSP002C- steem-python 开发一个会自动问某个标签下内容的机器人

前一期已经通过 Anaconda 安装了steem-python 开发环境.

这一期做一个和社区其他人互动的机器人:对指定标签下的内容(不含留言回复)进行点赞和留言.

本次的留言是固定.实际运行中的机器人,尽量要动态内容,否则很容易被当作滥用机器人,而被踩(downvote)。

机器人的主要完成的工作:

  1. 扫描当前最新的上链数据;
  2. 获得 comment 类型的操作;
  3. 判断内容是否为根贴,而不是留言回复;
  4. upvote点赞投票1%;
  5. 留言回复:'欢迎使用我心爱的标签 #dappcoder, 免费送你一个热情的赞(upvote)'

直接上代码吧,有一些必要的注释,有助于大家理解.

示范一个标签点赞问候机器人(MMoSP002_hello_tag_with_vote.py):


from contextlib import suppress

from steem.blockchain import Blockchain
from steem.post import Post
import random


def run():
    # upvote posts with 0.1~0.2% weight
    weight = random.randrange(10, 20, 2) / 100
    account = 'dappcoder'
    tag = 'test'
    reply = '欢迎使用我心爱的标签 #dappcoder, 免费送你一个热情的赞(upvote)'

    # stream comments as they are published on the blockchain
    # turn them into convenient Post objects while we're at it
    bc = Blockchain()
    stream = map(Post, bc.stream(filter_by=['comment']))
    for post in stream:
        print('post:', post)
        if post.is_comment():
            print('not is root post:', post)
            continue
        print('post.json_metadata:', post.json_metadata)
        if post.json_metadata:
            tags = post.json_metadata.get('tags', [])
            print('tags:', tags)
            # if tag in tags and len(tags) < 10:
            if tag in tags:
                print(account, 'do upvote:', weight)
                post.upvote(weight=weight, voter=account)
                print(account, 'do comment:', reply)
                post.reply(reply, title="", author=account, meta=None)

if __name__ == '__main__':
    with suppress(KeyboardInterrupt):
        run()

执行程序:python MMoSP002_hello_tag_with_vote.py
执行结果,和预期一致:

English list:

#esteem #hive-139531 #steemdevs #community #programming
MMoSP000E-< make money on steem-python > Preface
MMoSP001E- install steem python with anaconda

中文列表

#cn #hive-180932 #chinese #hive-143316
MMoSP000C-《steem-python赚钱实战教程》序言
MMoSP001C- Anaconda 安装 steem-python 开发环境



0
0
0.000
1 comments
avatar

According to the Bible, How do you influence faith to Christian believers? (Part 3 of 3)

(Sorry for sending this comment. We are not looking for our self profit, our intentions is to preach the words of God in any means possible.)



Comment what you understand of our Youtube Video to receive our full votes. We have 30,000 #SteemPower. It's our little way to Thank you, our beloved friend.
Check our Discord Chat
Join our Official Community: https://beta.steemit.com/trending/hive-182074

0
0
0.000