(Chinese Version) 如何自动申请(赎回)你的奖励(点赞和作者奖励),支持多账户 by @chinadaily

in #steemdev7 years ago

For English version, check the following link:

Logo.PNG

关于REDEEM REWARDS

大家可能都注意到了,自从0.18版本硬分叉以来,钱包中多了一个选项:
REDEEM REWARDS (TRANSFER TO BALANCE)
redeem.PNG

这意味着我们需要时不时地手动申请我们的奖励,否则这部分奖励就不会进入到余额中。

对我像我这样的强迫症患者而言,这是无法忍受的事情,
所以我尝试写脚本自动完成这个工作,还好,终于实现啦。
现在分享给大家。

安装Python STEEM 库

首先,安装官方Python STEEM 库
pip install -U steem
(注意: steem-python 要求 Python 3.5 及以上版本)

找出并导入 posting private key

  1. 从steemit 账户中找出 posting (private) key
    登陆steemit后, 进入 Wallet-> Permissions->POSTING
    (点击SHOW PRIVATE KEY 按钮来显示私钥)

  2. 将私钥导入到本地钱包:
    在终端执行以下命令
    steempy addkey --unsafe-import-key xxxxxx
    ( 注意: 将xxxxxx换成你的私钥)

  3. 为其它账户找出并导入posting private key
    如果你想为多个账户申请奖励, 你必须为每个账户 账户找出并导入posting private key
    重复步骤一和步骤二来完成此项操作

脚本

以下为申请奖励的简单脚本
建议保存为claim_rewards.py
为脚本添加执行权限.
chmod u+x claim_rewards.py

#!/usr/bin/env python

import sys
import datetime
from steem import Steem

node = 'https://steemd.steemit.com'
password = 'yourwalletpasswd'
userlist = {'chinadaily', 'otheruser1', 'otheruser2', 'otheruser3'}

def reclaim(steem, user):
        try:
                user_info = steem.get_account(user)

                reward_sbd = float(user_info['reward_sbd_balance'].split(' ')[0])
                reward_steem= float(user_info['reward_steem_balance'].split(' ')[0])
                reward_vesting = float(user_info['reward_vesting_balance'].split(' ')[0])
                reward_sp = float(user_info['reward_vesting_steem'].split(' ')[0])

                if reward_sbd > 0 or reward_steem > 0 or reward_vesting > 0:
                        steem.claim_reward_balance(account = user)
                        print("{user} Claim rewards: {0} STEEM  {1} SBD {2} STEEM POWER".format(reward_steem, reward_sbd, reward_sp, user = user))

                else:
                        print("No rewards need to be claim")
        except:
                print("Error occured!")

def main(argv=None):
        steem=Steem(node = node)
        steem.wallet.unlock(pwd = password)
        print(datetime.datetime.now())
        for user in userlist:
                reclaim(steem, user)

if __name__ == "__main__":
        sys.exit(main())

使用命令Claim(redeem) your rewards

配置好正确的钱包密码以及账户列表, 你就可以通过运行指令来申请(赎回)你的奖励啦.

在终端执行./claim_rewards.py
以下是我运行的结果示例

2017-05-12 19:07:30.634529
user1 Claim rewards: 0.0 STEEM 0.0 SBD 0.001 STEEM POWER
user2 Claim rewards: 0.0 STEEM 0.0 SBD 0.024 STEEM POWER
user3 Claim rewards: 0.0 STEEM 0.0 SBD 0.016 STEEM POWER
chinadaily Claim rewards: 0.0 STEEM 0.0 SBD 0.016 STEEM POWER

自动运行脚本

有了以上脚本,自动申请(赎回)你的奖励也是非常简单的啦。
将脚本加入计划任务, 它就会按设置的时间间隔自动执行啦.
启动crontab编辑器:
crontab -e

添加如下内容并保存:
0 0 * * * /path/claim_rewards.py >>log.txt 2>&1

这样脚本就会在每天0时自动执行啦.
如需了解更多的 crontab 细节,运行man crontab即可

就这些啦,谢谢阅读.
© @chinadaily

Sort:  

唉,以前都没点,白白浪费了不少!这个功能真是反人性!

不浪费,都放里放着呢

原来只是没落袋啊

Can I translate this to spanish for my community? Thank you!

Sure, You can:)

Thanks! Im following you, have a good day!

Thank you, Following you too.

这个好,还有好多内容不知道怎么玩~~~真是羡慕你们~~非常感谢分享~~~

感谢、学习了

赞强迫症患者哈哈哈!

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.027
BTC 56386.16
ETH 2529.81
USDT 1.00
SBD 2.49