A Good-Content-Upvote-Bot - CN 区优质内容点赞机器人上线了!

I have created a steemit upvote bot that aims to vote for quality contents. It is based on the assumption that the authors on the daily top 30 ranking table are more likely to produce the good contents.

This daily rank table provides the ranking sorted from the potential payout for authors in the last 7 days. Depending on the ranking, different upvoting weight is used e.g. 80% for top 10 authors and 65% for 11 to 15th.

The bot runs on the server every 10 minutes and it will take a break (do nothing) if @justyy 's voting power is less than 30. The bot supports a blacklist so I will constantly observe and update.

If you want to be considered, you need to be in the wechat group: https://helloacm.com/tools/steemit/wechat-ranking/ and write really good contents with main tag CN. Even if you are top of the table, you can still fall out if you do not write constantly good contents.

The python core code (for your reference) is given following:

@shenchensucc 在这篇帖子 YY 了一个 最低保障系统 但是这并不能保障点赞的内容都是好内容。我们总不能对只有一张图片或者几句话的帖子进行点赞吧。

所以,我想了一下,为什么不弄一个优质机器人自动点赞呢?虽然网上有一些现成的代码,但是我下面介绍的这个有几方面的优势:

  • 只限于中文区 CN 主标签 或者是微信群成员列表的帖子。
  • 文章的作者必须在过去7天 潜在收益排行前30。
  • 根据排名给予不同的点赞权重,例如第1到第10名的帖子80%,第11-15名点赞权重65% 等以此类推。
  • 支持黑名单(如果作者的水贴太多)
  • 点赞机器人会在第30到90分钟内点赞(因为这个可是我自己的投票能量给你们点的,也得让我收益一点嘛)。
  • 点赞机器人在服务器上每10分钟跑一次。
  • 点赞机器人在投票能量不足的情况下会主动休息。

所以,你想自动被 @justyy 点赞,那么:

  1. 请确保你在微信群列表名单上,具体请看: https://helloacm.com/tools/steemit/wechat/
  2. 请努力确保进入前30名:每日名单

为什么这样做?

  • 这是假设前30名的作者都是优质作者,产生优质内容的概率较大。
  • 这个每日排行榜变动还是挺大的,因为如果你几天不写,那么就会跌出排行榜,这可不像声誉,SP或者财富即使几天不更新 可能大鱼们还是能稳坐排行榜

TODO

  • 观察投票文章的质量
  • 统计自动机器人投票的点赞收益 (Curation Rewards)
  • 每日自动投票记录和报告发表在 每日排行榜里。
  • 优化投票权重和加入其它一些对劣质文章的过滤,比如文章太短等。

核心代码

仅供参考:

def getWeight(rank):
  weight = 0
  if rank <= 10:
    weight = 1.6
  elif rank <= 15:
    weight = 1.3
  elif rank <= 20:
    weight = 1.2
  elif rank <= 25:
    weight = 1
  else:
    weight = 0.5
  return weight
  
if True:    
  rank = 0  
  for x in good:
    rank = rank + 1
    try:   
      blog = Blog(x)
      print("No. " + str(rank) + " = " + x)
      for p in blog.take(1):
        p_date = p['created']
        sec = HowManySeconds(p_date) 
        print("minutes = " + str(sec / 60))
        if sec >= 30*60 and sec <= 90*60:
          url = "@" + x + "/" + p['permlink']
          for y in acc:
            vp = get_vp(y)
            print("voting power for " + y + " is " + str(vp))
            weight = getWeight(rank)
            print("weight = " + str(weight))
            score = vp * 0.5 * weight
            if vp >= 30:            
              print(y + " " + str(score) + " votes for " + url)
              vote(y, account[y], url, score)
            else:
              print("vp low, skipped.")
    except:
      print("Error - " + x)
        
print("OK.")

Originally published at https://steemit.com Thank you for reading my post, feel free to Follow, Upvote, Reply, ReSteem (repost) @justyy which motivates me to create more quality posts.

原文首发于 https://Steemit.com 首发。感谢阅读,如有可能,欢迎Follow, Upvote, Reply, ReSteem (repost) @justyy 激励我创作更多更好的内容。

// Later, it will be reposted to my blogs: justyy.com, helloacm.com and codingforspeed.com 稍后同步到我的中文博客和英文计算机博客

近期热贴

Recent Popular Posts


Tags: cn cn-programming steemit steemdev bot

H2
H3
H4
3 columns
2 columns
1 column
45 Comments