要求:
- 能在各种恶劣网络环境下,正常工作;
- 每30分钟定时领取一次
由于Steem 官方的 API 节点 https://api.steemit.com 因种种原因而无法访问,其他第三方的API 节点,也出各种状况.所以稳健的机器人,要在这些API 节点动态寻找可用API 节点.
示范程序(auto_claim_bot.py):
import steembase
import steem
from pick import pick
from steem.steemd import Steemd
from steem.account import Account
from steem.amount import Amount
from steem.instance import set_shared_steemd_instance
from steem.blockchain import Blockchain
steemd_nodes = [
'https://anyx.io',
'https://steemd.minnowsupportproject.org',
'https://rpc.esteem.app',
'https://api.steemit.com',
'https://api.steem.house',
'https://gtg.steem.house:8090',
'https://appbasetest.timcliff.com',
]
set_shared_steemd_instance(Steemd(nodes=steemd_nodes))
# username = input('Enter username: ')
username = 'dappcoder'
# post_key = input('Enter private POST key: ')
post_key = '5JzkkkkkK3ZN'
# connect node
client = steem.Steem(nodes=steemd_nodes, keys=[post_key])
# get account reward balances
userinfo = client.get_account(username)
print('userinfo:', userinfo)
if(userinfo is None):
print('Oops. Looks like user ' + username +
' doesn\'t exist on this chain!')
exit()
reward_steem = userinfo['reward_steem_balance']
reward_sbd = userinfo['reward_sbd_balance']
reward_sp = userinfo['reward_vesting_steem']
reward_vests = userinfo['reward_vesting_balance']
print('Reward Balances:' + '\n' +
'STEEM: ' + reward_steem + '\n' +
'SBD: ' + reward_sbd + '\n' +
'STEEM POWER: ' + reward_sp + '\n' +
'VESTS: ' + reward_vests
)
if Amount(reward_steem).amount + Amount(reward_sbd).amount + Amount(reward_vests).amount == 0:
print('\n' + 'No rewards to claim')
exit()
else:
client.claim_reward_balance(
reward_steem, reward_sbd, reward_vests, username)
print(
'\n' + 'All reward balances have been claimed. New reward balances are:' + '\n')
userinfo = client.get_account(username)
reward_steem = userinfo['reward_steem_balance']
reward_sbd = userinfo['reward_sbd_balance']
reward_sp = userinfo['reward_vesting_steem']
reward_vests = userinfo['reward_vesting_balance']
print('STEEM: ' + reward_steem + '\n' +
'SBD: ' + reward_sbd + '\n' +
'STEEM POWER: ' + reward_sp + '\n' +
'VESTS: ' + reward_vests
)
执行程序:python auto_claim_bot.py
执行结果符合预期:
MacOS 上自动定时执行:$ crontab -e
*/30 * * * * /usr/bin/python /path/auto_claim_bot.py >> /tmp/auto_claim_bot.log
你好鸭,dappcoder!
@lvziyun给您叫了一份外卖!
由 @jjprac jjprac 在晴空万里 开着巴士 给您送来

蔬菜培根卷
吃饱了吗?跟我猜拳吧! 石头,剪刀,布~
如果您对我的服务满意,请不要吝啬您的点赞~
@onepagex
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
剪刀
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You win!!!! 你赢了!我这新手村猜拳小能手的名号让给你了! 给你1枚SHOP币!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit