def get_last_block(url, max_tries=10, timeout=0.1): request = bytes( json.dumps( { "jsonrpc": "2.0", "id": 0, "method": "database_api.get_dynamic_global_properties", "params": {} } ), "utf-8" ) + b"\r\n" status, response = steemd_call(url, data=request, max_tries=max_tries, timeout=timeout) if status == False: return 0 try: return response["result"]["head_block_number"] except: return 0
def list_accounts(url): """ url in form <ip_address>:<port> """ last_account = "" end = False accounts_count = 0 accounts = [] while end == False: request = bytes( json.dumps({ "jsonrpc": "2.0", "id": 0, "method": "database_api.list_accounts", "params": { "start": last_account, "limit": 1000, "order": "by_name" } }), "utf-8") + b"\r\n" status, response = steemd_call(url, data=request) if status == False: print("rpc failed for last_account: " + last_account) return [] account_list = response["result"]["accounts"] if last_account != "": assert account_list[0]["name"] == last_account del account_list[0] if len(account_list) == 0: end = True continue last_account = account_list[-1]["name"] accounts_count += len(accounts) for account in account_list: accounts.append(account["name"]) # while end == False return accounts
def get_last_block(url, max_tries=10, timeout=0.1): request = bytes( json.dumps({ "jsonrpc": "2.0", "id": 0, "method": "database_api.get_dynamic_global_properties", "params": {} }), "utf-8") + b"\r\n" status, response = steemd_call(url, data=request, max_tries=max_tries, timeout=timeout) if status == False: return 0 try: return response["result"]["head_block_number"] except: return 0
def list_comments(url): """ url in form <ip_address>:<port> """ last_cashout_time = "2016-01-01T00-00-00" end = False comments = [] while True: request = bytes( json.dumps( { "jsonrpc": "2.0", "id": 0, "method": "database_api.list_comments", "params": { "start":[ last_cashout_time, "", "" ], "limit": 5, "order": "by_cashout_time" } } ), "utf-8" ) + b"\r\n" status, response = steemd_call(url, data=request) if status == False: print( "rpc failed for last_cashout_time: " + last_cashout_time ) return [] comment_list = response["result"]["comments"] if len(comment_list) == 0: break actual_cashout_time = comment_list[-1]["cashout_time"] if actual_cashout_time == last_cashout_time: break last_cashout_time = actual_cashout_time for comment in comment_list: comments.append( comment["permlink"]+";"+comment["author"] +";"+comment["last_update"] ) # while True return comments
def list_accounts(url): """ url in form <ip_address>:<port> """ last_account = "" end = False accounts_count = 0 accounts = [] while True: request = bytes( json.dumps( { "jsonrpc": "2.0", "id": 0, "method": "database_api.list_accounts", "params": { "start": last_account, "limit": 1000, "order": "by_name" } } ), "utf-8" ) + b"\r\n" status, response = steemd_call(url, data=request) if status == False: print( "rpc failed for last_account: " + last_account ) return [] account_list = response["result"]["accounts"] if last_account != "": assert account_list[0]["name"] == last_account del account_list[0] if len( account_list ) == 0: break last_account = account_list[-1]["name"] accounts_count += len( accounts ) for account in account_list: accounts.append( account["name"] ) # while True return accounts