sbd.ninja V0.0.1 - A Cross Platform STEEM Information Query Tool (Mac/Windows/iOS/Android)

sbd.ninja V0.0.1 - A Cross Platform STEEM Information Query Tool (Mac/Windows/iOS/Android)

New Projects

  • A Cross Platform STEEM Information Query Tool (Mac/Windows/iOS/Android)
  • A lot of my friends need a native tool on Mobile (iOS/Android) to query steem related information, especially outdoors or on train.

Technology Stack

  • Lua + Corona SDK

License

  • MIT

Build

Special Thanks

New Features

  • Query multiple users at the same time
    image.png

  • When click the query button, it will get the strings which are input in the text box, separated by 'SPACE', and save them separated in a temporary table

local function parseUsernames(usernames)
  for i in string.gmatch(usernames, "%S+") do
    print(i)
    -- put it into array
    table.insert(arrayUsernames, i)
  end
end
  • Query Account Information
local function queryAccountInfo(username)
  local body = "?cached&id=" .. username

  local params = {}
  params.body = body

  network.request( "https://helloacm.com/api/steemit/account/", 
    "POST", 
    function(event)
      if ( event.isError ) then
        print( "Network error: ", event.response )
      else
        print ( "RESPONSE: " .. event.response )
        local accountInfo = json.decode(event.response)
        local detail = accountInfo[1]
        -- insert info into table view
        for i = 0, #accountInfo do
          if i == 0 then
            uiInfoTableView:insertRow({
                isCategory = true,
                params = {
                  text = username .. 
                  " - Account Info"
                }
              })
          else
            local  rowHeight = math.ceil(display.contentHeight * 0.5 * 0.1)
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "id: " .. detail["id"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "name: " .. detail["name"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "reputation: " .. detail["reputation"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "voting power: " .. detail["voting_power"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "balance: " .. detail["balance"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "savings balance: " .. detail["savings_balance"]}})
            uiInfoTableView:insertRow({
                rowHeight = rowHeight, 
                params = {text = "sbd balance: " .. detail["sbd_balance"]}})
          end
        end

      end
    end, 
    params )
end
  • Query Delegation (In)
local function queryDelegators(username)

  local body = "?cached&id=" .. username

  local params = {}
  params.body = body

  network.request( "https://helloacm.com/api/steemit/delegators/", 
    "POST", 
    function(event)
      if ( event.isError ) then
        print( "Network error: ", event.response )
      else
        print ( "RESPONSE: " .. event.response )
        local delegatorsInfo = json.decode(event.response)

        ---[[ insert info into table view
        for i = 0, #delegatorsInfo do
          if i == 0 then
            uiInfoTableView:insertRow({
                isCategory = true,
                params = {
                  text = username .. 
                  " - Delegations (In) - " .. 
                  tostring(#delegatorsInfo)
                }
              })
          else
            uiInfoTableView:insertRow({
                params = {
                  text = 
                  delegatorsInfo[i]["delegator"] .. 
                  "       " .. 
                  string.format("%d", delegatorsInfo[i]["sp"]) .. 
                  " SP    " .. 
                  delegatorsInfo[i]["time"]
                }
              })
          end
        end
        --]]
      end
    end, 
    params )
end
  • Query Delegation (Out)
local function queryDelegatees(username)

  local body = "?cached&id=" .. username

  local params = {}
  params.body = body

  network.request( "https://helloacm.com/api/steemit/delegatees/", 
    "POST", 
    function(event)
      if ( event.isError ) then
        print( "Network error: ", event.response )
      else
        print ( "RESPONSE: " .. event.response )
        local delegateesInfo = json.decode(event.response)

        -- insert info into table view
        for i = 0, #delegateesInfo do
          if i == 0 then
            uiInfoTableView:insertRow({
                isCategory = true,
                params = {
                  text = username .. 
                  " - Delegations (Out) - " .. 
                  tostring(#delegateesInfo)
                }
              })
          else
            uiInfoTableView:insertRow({
                params = {
                  text = 
                  delegateesInfo[i]["delegatee"] .. 
                  "       " .. 
                  string.format("%d", delegateesInfo[i]["sp"]) .. 
                  " SP    " .. 
                  delegateesInfo[i]["time"]
                }
              })
          end
        end

      end
    end, 
    params )
end

image.png

Roadmap

  • Mac/Windows
  • iOS/Android
  • Account Information
  • Delegation (In)
  • Delegation (Out)
  • Witness Info
  • Followed/Following
  • Profile
  • Curation
  • Converter
  • Transfer History
  • Votes
  • More...

Contribution is Welcome

Github: https://github.com/bobdos/sbd.ninja

  • Fork it!
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request.



Posted on Utopian.io - Rewarding Open Source Contributors

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
19 Comments