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

Adriano adrianoss em gmail.com
Qua Dez 30 16:27:14 EST 2020


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.
> <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
> <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
> <https://stackoverflow.com/questions/36417224/openssl-dh-key-too-small-error?noredirect=1>
>
> 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
>>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.gnucash.org/pipermail/gnucash-br/attachments/20201230/af9f2b32/attachment-0001.htm>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: tesouro.pm
Tipo: application/x-perl
Tamanho: 4205 bytes
Descrição: não disponível
URL: <http://lists.gnucash.org/pipermail/gnucash-br/attachments/20201230/af9f2b32/attachment-0001.pl>


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