Aplicativo de Votação Automática criado usando Ruby.

in steem •  7 years ago 

Eliel_Tavares.jpg
Image Source

Hoje brincando com uns códigos, decidi criar minha própria versão do aplicativo de votação automático usando ruby, os códigos são bem simples, mas é funcional. Atualmente, não utilizo nenhum software de automação no steemit, mas é muito util para quem não tem muito tempo, vou deixar o código pois alguém pode se interessar em usar ou aplimorar o codigo.


Esse tutorial será feito usando o Ubuntu 16.04, porém é possível rodar no Windows e Mac Os também.


Primeiro devemos instalar a API, para isso siga as instruções abaixo:


Pré Requisitos

$ sudo apt-get install ruby-full git openssl libssl1.0.0 libssl-dev
$ gem install bundler
$ sudo gem install time_difference

API Radiator

$ sudo gem install radiator

Agora você precisará criar um arquivo chamado main.rb, e colar o codigo abaixo:

require 'radiator'
require 'yaml'
require 'time_difference'

@config = YAML.load_file('config.yml')
@options = @config[:chain_options]
@keys = @config[:account]
@voter = @config[:voter]

api = Radiator::DatabaseApi.new(@options.dup)

while TRUE
    @voter.each do |x|
        author, voter_power, minutos = x.split(' ') 
        getblog = api.get_state("@#{author}/blog")
        getblog = getblog.result.accounts[author].blog.first
    
        acc, link = getblog.split("/")
        if getblog.include? author
            r = api.get_content(acc, link)
            check_voter = r.result.active_votes.map(&:voter)

            @keys.each do |key|
                account, posting_wif = key.split(' ')
                if check_voter.include? account
                    puts "ja votou para #{author}"
                else
                    post_date = r.result.created
                    time_now = Time.now.utc
                    diferenca = TimeDifference.between(post_date, time_now).in_minutes
            
                    if diferenca > eval(minutos)
                        power = eval(voter_power)*100
                        transacao = Radiator::Transaction.new(wif: posting_wif)
                        voto = {
                          type: :vote,
                          voter: account,
                          author: author,
                          permlink: link,
                          weight: power
                        }

                        transacao.operations << voto
                        puts transacao.process(true)
                    else
                        puts "O post foi criado a #{diferenca} e precisa de #{minutos} minutos para votar"
                    end
                end
            end
            
        else
            #puts "Erro "
        end

    end
end

Salve e crie outro arquivo com o nome de config.yml e coloque o codigo abaixo com suas modificações

:account:
#  ColoqueSuaContaAbaixo e SuaSenhadePostagem
  - suaconta P5445nbEg45mn45045521cgr9h514gbr549TestFac55k 

:chain_options:
  :chain: steem
  :url: https://steemd.steemit.com

:voter:
#  Author PoderDeVoto EsperarParaVotarEmMinutos
 - ned 20 30
 - dan 25 30
 - eliel 100 30

Agora salve e abra o terminal na pasta onde esta salvo o codigo e coloque para rodar com o comando:

$ ruby main.rb

Pronto, se você escontrar algum problema, escreva um comentário relatando o ocorrido.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

bacana, hein...temos alguns projetos em andamentos e talvez estes seus coneitos possas ser uteis.

Espero que esses códigos seja útil para seu projeto. :)

Calling @originalworks :)
img credz: pixabay.com
Nice, you got a $4.44 @minnowbooster upgoat, thanks to @eliel
Want a boost? Minnowbooster's got your back!

The @OriginalWorks bot has determined this post by @eliel to be original material and upvoted it!

ezgif.com-resize.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

To enter this post into the daily RESTEEM contest, upvote this comment! The user with the most upvotes on their @OriginalWorks comment will win!

For more information, Click Here!
Special thanks to @reggaemuffin for being a supporter! Vote him as a witness to help make Steemit a better place!

This post received a 1.6% upvote from @randowhale thanks to @eliel! To learn more, check out @randowhale 101 - Everything You Need to Know!