[gnucash-br] Problemas para configurar o Tesouro.pm

rmcasali em gmail.com rmcasali em gmail.com
Seg Jan 4 12:32:02 EST 2021


Boa tarde pessoal,

Bom, o problema maior é o o próprio site do tesoudireto tem problemas
de conexão frequentes.

Bruno, esse campo que você mudou "$busca->{'TrsrBd'}{'untrInvstmtVal'}" 
é o preço para uma nova aplicação, e não o preço de resgate do título
"$busca->{'TrsrBd'}{'untrRedVal'}" . Mas fica a seu cargo usar ou não
esse valor. Eu prefiro ficar com o preço de resgate. Além do mais,
existem mais títulos para regaste que não aceitam mais investimentos,
então o campo que você usou será 0 e não o valor de resgate.

Como disse em outra mensagem, se o tesouro está fechado para resgate, o
módulo terá problemas. Hoje parece que está tudo ok.


Abs,
Rafael

Em seg, 2021-01-04 às 00:26 -0300, Bruno Rocha escreveu:
> Boa noite pessoal, 
> 
> Estive dando uma verificada aqui .. 
> 
> Sou somente um curioso, aprendendo um pouco de PERL tentando entender
> o script que o Adriano enviou.. 
> 
> Aparentemente realizaram alterações nos nomes das viariáveis no
> arquivo JSON que era pesquisado pelo tesouro.pm
> 
> a busca realizada pelo arquivo enviado era realizada da seguinte
> forma na linha 157, abri o arquivo JSON referenciado na linha 43 my
> $TESOURO_URL = ("
> https://www.tesourodireto.com.br//json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json
> "); e percebi uma alteração na estrutura. ]
> 
> Solucionei o problema dos preços substituindo a pesquisa à nova
> variavel conforme abaixo:
> 
> if((uc $titulo) eq (uc $symbol)){  
>     $quoter->store_date(\%info, $symbol,{ eurodate => $dia});
>     $info{$symbol, "last"}  = $busca->{'TrsrBd'}{'untrRedVal'};
>     $info{$symbol, "name"} = $busca->{'TrsrBd'}{'nm'};
>     $info{$symbol, "price"} = $busca->{'TrsrBd'}{'untrInvstmtVal'};
>     $info{$symbol, "success"} = 1;
>     $info{$symbol, "method"} = "tesouro";
>     $info{$symbol, "symbol"} = $symbol;
>     $info{$symbol, "currency"} = "BRL";
>     $info{$symbol, "source"} = $TESOURO_MAINURL;
>     $info{$symbol, "errormsg"} = "";
>     last;
> }
> 
> Como disse, nao sou especialista somente verifiquei o problema dos
> preços .. outros problemas podem ter surgido e eu nem percebido ..
> vamos aguardar os mais experientes.. 
> 
> Abraço a todos.
> 
> Em qua., 30 de dez. de 2020 às 18:33, Adriano <adrianoss em gmail.com>
> escreveu:
> > A propósito, hoje o módulo está dando erro aqui. Não tentei
> > debugar, pois como é fim de ano deve ter alguma coisa diferente no
> > site do Tesouro.
> > 
> > Semana que vem eu vou atrás se continuar sem funcionar.
> > 
> > Em qua., 30 de dez. de 2020 às 18:27, Adriano <adrianoss em gmail.com>
> > escreveu:
> > > Agora segue o arquivo que editei.
> > > 
> > > Em qua., 30 de dez. de 2020 às 18:26, Adriano <
> > > adrianoss em gmail.com> escreveu:
> > > > Yulli, Rafael, eu tive uns problemas com conexão no módulo
> > > > Tesouro.pm, e mandei uma mensagem sobre isso um tempo atrás,
> > > > com a solução que funcionou para mim.
> > > > 
> > > > Agora vi que a minha mensagem ficou retida para aprovação, acho
> > > > que vocês não receberam. Então copio o conteúdo abaixo. Vou
> > > > mandar em duas partes, para diminuir o tamanho.
> > > > 
> > > > Primeira parte, só o texto. O arquivo editado mando em seguida.
> > > > 
> > > > -------------------------------------------------------------
> > > > -------------------------------------------------------------
> > > > -------------------------------------------------------------
> > > > -------------
> > > > Rafael, obrigado pelo arquivo.
> > > > 
> > > > Mas eu comparei aqui e é o mesmo que eu tinha. Então o problema
> > > > era em outro lugar.
> > > > 
> > > > Mas nada com um bom sábado pela manhã para consertar essas
> > > > coisas...
> > > > 
> > > > Resumindo, editei o tesouro.pm (anexo) e agora funciona para
> > > > mim.
> > > > 
> > > > A versão completa segue abaixo.
> > > > 
> > > > Como você disse que funcionava para você, mas eu tenho um erro
> > > > que parecia ser no acesso ao site, pesquisei um pouco e
> > > > encontrei, primeiramente, isso: 
> > > > https://stackoverflow.com/questions/49411569/perl-getstore-gives-error-500-but-can-downlaod-via-wget-or-web-browser.
> > > >  Na resposta mais abaixo do link, o usuário sugere um código
> > > > para detalhar o erro. Então usei o código, levemente alterado
> > > > como abaixo, no https://www.onlinegdb.com/online_perl_compiler:
> > > > 
> > > > use LWP::Protocol::https;
> > > > use LWP::UserAgent qw();
> > > > my $ua = LWP::UserAgent->new;
> > > > my $res = $ua->get('
> > > > https://www.tesourodireto.com.br//json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json'
> > > > );
> > > > if ($res->is_error) {
> > > > printf(
> > > > "get failed.\nStatus: %s\nContent:\n%s\n\nFull
> > > > response:\n%s\n",
> > > > $res->status_line,
> > > > $res->content,
> > > > $res->as_string
> > > > )
> > > > }
> > > > 
> > > > O resultado foi esse:
> > > > 
> > > > get failed.
> > > > Status: 500 Can't connect to www.tesourodireto.com.br:443
> > > > Content:
> > > > Can't connect to www.tesourodireto.com.br:443
> > > > 
> > > > LWP::Protocol::https::Socket: getaddrinfo: Name or service not
> > > > known at /usr/share/perl5/LWP/Protocol/http.pm line 41.
> > > > 
> > > > 
> > > > Full response:
> > > > 500 Can't connect to www.tesourodireto.com.br:443
> > > > Content-Type: text/plain
> > > > Client-Date: Sat, 12 Dec 2020 11:53:53 GMT
> > > > Client-Warning: Internal response
> > > > 
> > > > Can't connect to www.tesourodireto.com.br:443
> > > > 
> > > > LWP::Protocol::https::Socket: getaddrinfo: Name or service not
> > > > known at /usr/share/perl5/LWP/Protocol/http.pm line 41.
> > > > 
> > > > Então usei o comando "curl 
> > > > https://www.tesourodireto.com.br//json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json
> > > > ", que indicou erro de certificado:
> > > > 
> > > > curl: (60) SSL certificate problem: unable to get local issuer
> > > > certificate
> > > > More details here: https://curl.haxx.se/docs/sslcerts.html
> > > > 
> > > > curl failed to verify the legitimacy of the server and
> > > > therefore could not
> > > > establish a secure connection to it. To learn more about this
> > > > situation and
> > > > how to fix it, please visit the web page mentioned above.
> > > > 
> > > > Como seu código já tinha uma opção para ignorar a verificação
> > > > do certificado, fiz o mesmo no curl:
> > > > 
> > > > curl -k 
> > > > https://www.tesourodireto.com.br//json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json
> > > > 
> > > > Com o seguinte resultado:
> > > > 
> > > > curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh
> > > > key too small
> > > > 
> > > > Aí eu achei isso aqui: 
> > > > https://stackoverflow.com/questions/36417224/openssl-dh-key-too-small-error
> > > > 
> > > > Na resposta, o usuário comenta que o OpenSSL passou a exigir
> > > > chave DH mais forte (o OpenSSL do meu Fedora deve estar com
> > > > essa exigência ativada), e sugere adicionar a opção
> > > > SSL_cipher_list => 'DEFAULT:!DH' na verificação do SSL (a
> > > > resposta no link acima explica o motivo).
> > > > 
> > > > Então mudei o arquivo tesouro.pm. As linhas a partir da 100
> > > > ficaram assim:
> > > > 
> > > > SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
> > > > SSL_cipher_list => 'DEFAULT:!DH',
> > > > verify_hostname => 0);
> > > > 
> > > > E então voltou a funcionar.
> > > > 
> > > > Segue o tesouro.pm editado em anexo, pode ser que alguma
> > > > atualização futura do sistema operacional ative, para outros
> > > > usuários, o mesmo erro que observei.
> > > > 
> > > > Abraço,
> > > > Adriano
> > > > 
> > > > --------------------------------------------------
> > > > 
> > > > Em qua., 30 de dez. de 2020 às 14:07, <rmcasali em gmail.com>
> > > > escreveu:
> > > > > Caro Yulli,
> > > > > 
> > > > > Não consegui reproduzir o seu erro, mas me parece problema de
> > > > > conexão
> > > > > com o site de buscca.
> > > > > 
> > > > > Mas é bom ter em mente que o módulo está configurado para
> > > > > pegar o preço
> > > > > de resgate. No site, 
> > > > > 
> > > > > https://www.tesourodireto.com.br/titulos/precos-e-taxas.htm
> > > > > 
> > > > > a tabela de resgate não está funcionando, provavelmente não é
> > > > > possível
> > > > > fazer resgate hoje de nenhum título. Provalvelmente o módulo
> > > > > irá
> > > > > retornar um preço zero. 
> > > > > 
> > > > > Fica atento o site oficial do Tesouro se está tudo ok. Volta
> > > > > e meia tem
> > > > > problemas de mercado fechado e etc.
> > > > > 
> > > > > Abs
> > > > > 
> > > > > E Feliz ano novo a todos da lista.
> > > > > 
> > > > > Rafael
> > > > > 
> > > > > 
> > > > > Em ter, 2020-12-29 às 19:24 +0000, yulli dias escreveu:
> > > > > > Boa Tarde Rafael!
> > > > > > 
> > > > > > Consegui configurar o módulo! Segui esses passos que você
> > > > > me falou e
> > > > > > deu certo. Agora o problema é para utilizar o gnc-fq-dump,
> > > > > como faço
> > > > > > para configurar a data e a moeda?
> > > > > > 
> > > > > > $ gnc-fq-dump tesouro IPCA+15052035
> > > > > > 
> > > > > > Finance::Quote fields Gnucash uses:
> > > > > >     symbol: IPCA+15052035 (deduced) <=== required
> > > > > >       date: ** missing **        <=== recommended
> > > > > >   currency: ** missing **        <=== required
> > > > > > Use of uninitialized value $last in printf at /usr/bin/gnc-
> > > > > fq-dump
> > > > > > line 120.
> > > > > >       last:                      <=\      
> > > > > > Use of uninitialized value $nav in printf at /usr/bin/gnc-
> > > > > fq-dump
> > > > > > line 121.
> > > > > >        nav:                      <=== one of these
> > > > > > Use of uninitialized value $price in printf at
> > > > > /usr/bin/gnc-fq-dump
> > > > > > line 122.
> > > > > >      price:                      <=/        
> > > > > >   timezone:                      <=== optional
> > > > > > 
> > > > > > ** This stock quote cannot be used by GnuCash!
> > > > > > 
> > > > > > 
> > > > > > Obrigada,
> > > > > > Yulli Dias
> > > > > > De: rmcasali em gmail.com <rmcasali em gmail.com>
> > > > > > Enviado: terça-feira, 22 de dezembro de 2020 10:49
> > > > > > Para: yulli dias <yulli.dias em hotmail.com>; 
> > > > > gnucash-br em gnucash.org <
> > > > > > gnucash-br em gnucash.org>
> > > > > > Assunto: Re: [gnucash-br] Problemas para configurar o
> > > > > Tesouro.pm
> > > > > >  
> > > > > > Bom dia Yulli,
> > > > > > 
> > > > > > Vamos ver se consigo lhe ajudar.
> > > > > > 
> > > > > > 1. O arquivo 'tesouro.pm' deve ser copiado para o diretório
> > > > > onde se
> > > > > > encontra os outros módulos (ZA.pm, YahooJSON.pm etc).
> > > > > Normalmente é
> > > > > > um
> > > > > > diretóio "Quote" onde tem o arquivo "Quote.pm"
> > > > > > 
> > > > > > 2. Preste atenção as letras minúsculas do nome do arquivo e
> > > > > para o
> > > > > > nome
> > > > > > do módulo a ser inserido em "Quote.pm"
> > > > > > 
> > > > > > 3. Na edição do arquivo "Quote.pm", procure onde estão
> > > > > definidos os
> > > > > > módulos. No meu arquivo, está por volta da linha 185, você
> > > > > deve
> > > > > > encontrar algo do tipo:
> > > > > > ---- 
> > > > > >     # Default modules
> > > > > > 
> > > > > >     @modules = qw/AEX AIAHK AlphaVantage ASEGR ASX
> > > > > BMONesbittBurns
> > > > > >         BSERO Bourso Cdnfundlibrary Citywire CSE Currencies
> > > > > Deka
> > > > > >         DWS FTPortfolios Fidelity FidelityFixed
> > > > > FinanceCanada Fool
> > > > > >         FTfunds HU GoldMoney HEX IEXCloud IndiaMutual
> > > > > LeRevenu
> > > > > >         ManInvestments Morningstar MorningstarAU
> > > > > MorningstarCH
> > > > > >         MorningstarJP MStaruk NZX Platinum SEB SIXfunds
> > > > > SIXshares
> > > > > >         StockHouseCanada TSP TSX Tdefunds Tdwaterhouse
> > > > > Tiaacref
> > > > > >         TNetuk Troweprice Trustnet Union USFedBonds VWD ZA
> > > > > >         Cominvest Finanzpartner YahooJSON YahooYQL
> > > > > ZA_UnitTrusts/;
> > > > > >   }
> > > > > > ------
> > > > > > Pode inserir uma linha, ou colocar no final de qualquer
> > > > > linha, ou
> > > > > > entre
> > > > > > dois módulos o nome do arquivo sem extensão "tesouro"
> > > > > > 
> > > > > > Bom, se ainda tiver problemas, mande aí que tentaremos
> > > > > ajudar.
> > > > > > 
> > > > > > Abs
> > > > > > Rafael  
> > > > > > 
> > > > > > Em seg, 2020-12-21 às 23:20 +0000, yulli dias escreveu:
> > > > > > > Boa noite Rafael!
> > > > > > > 
> > > > > > > Tentei utilizar o arquivo que você me mandou, mas deu
> > > > > erro na hora
> > > > > > de
> > > > > > > executar o gnc-fq-check.
> > > > > > > 
> > > > > > > $ sudo gnc-fq-check
> > > > > > > Can't locate object method "methods" via package
> > > > > > > "Finance::Quote::Tesouro" (perhaps you forgot to load
> > > > > > > "Finance::Quote::Tesouro"?) at
> > > > > /usr/share/perl5/Finance/Quote.pm
> > > > > > line
> > > > > > > 120.
> > > > > > > 
> > > > > > > Sabe o que pode ser?
> > > > > > > 
> > > > > > > PS: removi as configurações que eu tinha feito utilizando
> > > > > a outra
> > > > > > > solução.
> > > > > > > 
> > > > > > > Desde já agradeço,
> > > > > > > --
> > > > > > > Yulli Dias
> > > > > > > 
> > > > > > > De: rmcasali em gmail.com <rmcasali em gmail.com>
> > > > > > > Enviado: segunda-feira, 21 de dezembro de 2020 13:15
> > > > > > > Para: yulli dias <yulli.dias em hotmail.com>; 
> > > > > gnucash-br em gnucash.org <
> > > > > > > gnucash-br em gnucash.org>
> > > > > > > Assunto: Re: [gnucash-br] Problemas para configurar o
> > > > > Tesouro.pm
> > > > > > >  
> > > > > > > Boa tarde...
> > > > > > > 
> > > > > > > Como não sei se você está com a última versão do módulo,
> > > > > vou enviar
> > > > > > o
> > > > > > > que estou usando.
> > > > > > > 
> > > > > > > Abs,
> > > > > > > Rafael
> > > > > > > 
> > > > > > > Em dom, 2020-12-20 às 21:10 +0000, yulli dias escreveu:
> > > > > > > > Olá pessoal!
> > > > > > > > 
> > > > > > > > Estou na tentativa de configurar o módulo do tesouro
> > > > > mas estou
> > > > > > > > obtendo o erro "Undefined fetch-method tesouro passed
> > > > > to
> > > > > > > > Finance::Quote::fetch at /usr/bin/gnc-fq-dump line 191.
> > > > > No
> > > > > > results
> > > > > > > > found for stock B_Principal_150535." quando eu executo
> > > > > o comando
> > > > > > > > gnc-fq-dump Tesouro B_Principal_150535. Alguém consegue
> > > > > me
> > > > > > ajudar?
> > > > > > > > 
> > > > > > > > Para configurar o módulo do tesouro eu segui os
> > > > > seguintes passos:
> > > > > > > > 1 - Baixei o arquivo (
> > > > > > > > 
> > > > > > 
> > > > > http://lists.gnucash.org/pipermail/gnucash-br/attachments/20180305/08ff692c/attachment.pl
> > > > > > > > ) que encontrei na lista de e-mails (
> > > > > > > > 
> > > > > > 
> > > > > https://lists.gnucash.org/pipermail/gnucash-br/2018-March/000754.html
> > > > > > > > ) e salvei em /usr/share/perl5/Finance como Tesouro.pm.
> > > > > > > > 2 - Editei o arquivo Quote.pm e acrescentei o modulo
> > > > > Tesouro na
> > > > > > > > lista de módulos.
> > > > > > > > 3 - Executei o comando export
> > > > > FQ_LOAD_QUOTELET="Currencies",
> > > > > > > > conforme indicado em 
> > > > > > > > https://github.com/romuloceccon/finance-quote-brazil
> > > > > > > > 4 - Executei o comando gnc-fq-check
> > > > > > > > $ gnc-fq-check
> > > > > > > > ("1.49" "fetch_live_currencies" "known_currencies")
> > > > > > > > 5 - Executei o comando gnc-fq-update
> > > > > > > > $ sudo gnc-fq-update
> > > > > > > > Reading '/root/.local/share/.cpan/Metadata'
> > > > > > > >   Database was generated on Sun, 20 Dec 2020 19:55:55
> > > > > GMT
> > > > > > > > Date::Manip is up to date (6.83).
> > > > > > > > Finance::Quote is up to date (1.49).
> > > > > > > > 6 - Por fim o comando de teste
> > > > > > > > $ gnc-fq-dump tesouro B_Principal_150535
> > > > > > > > Undefined fetch-method tesouro passed to
> > > > > Finance::Quote::fetch at
> > > > > > > > /usr/bin/gnc-fq-dump line 191.
> > > > > > > > No results found for stock B_Principal_150535.
> > > > > > > > 
> > > > > > > > Desde já agradeço,
> > > > > > > > --
> > > > > > > > Yulli Dias
> > > > > > > > _______________________________________________
> > > > > > > > gnucash-br mailing list
> > > > > > > >  gnucash-br em gnucash.org
> > > > > > > > 
> > > > > > > >  https://lists.gnucash.org/mailman/listinfo/gnucash-br
> > > > > > > > 
> > > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > gnucash-br mailing list
> > > > > gnucash-br em gnucash.org
> > > > > https://lists.gnucash.org/mailman/listinfo/gnucash-br
> > 
> > _______________________________________________
> > gnucash-br mailing list
> > gnucash-br em gnucash.org
> > https://lists.gnucash.org/mailman/listinfo/gnucash-br
> 
> 
> _______________________________________________
> gnucash-br mailing list
> gnucash-br em gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-br



Mais detalhes sobre a lista de discussão gnucash-br