App-Chart
view release on metacpan or search on metacpan
misc/t-tsp.pl view on Meta::CPAN
#!/usr/bin/perl -w
# Copyright 2008, 2009, 2010, 2011, 2015, 2016, 2023 Kevin Ryde
# This file is part of Chart.
#
# Chart is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 3, or (at your option) any later version.
#
# Chart is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with Chart. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use LWP;
use Data::Dumper;
use File::Slurp 'slurp';
use App::Chart::Suffix::TSP;
use List::Util;
$|=1;
# uncomment this to run the ### lines
use Smart::Comments;
{
my $url;
$url = 'https://www.tsp.gov/data/fund-price-history.csv?startdate=2023-02-01&enddate=2023-02-07&Lfunds=1&InvFunds=1&download=1';
$url = 'https://www.tsp.gov/data/fund-price-history.csv?startdate=2023-01-30&enddate=2023-02-03';
$App::Chart::option{'verbose'} = 2;
my $resp = App::Chart::Download->get
($url,
user_agent => App::Chart::Suffix::TSP::TSP_USER_AGENT,
referer => 'https://www.tsp.gov/share-price-history/');
my $content = $resp->decoded_content (charset => 'none');
### $content
my $h = App::Chart::Suffix::TSP::parse($resp);
print "h= ",Dumper($h);
exit 0;
}
{
# my $content = slurp ($ENV{'HOME'}.'/chart/samples/tsp/share-prices.html');
# my $content = slurp ("$ENV{HOME}/chart/samples/tsp/sharePriceHistory.shtml.2");
# my $content = slurp ("$ENV{HOME}/chart/samples/tsp/shareprices.csv");
my $content = slurp ("$ENV{HOME}/chart/samples/tsp/share-price-history--trim.csv");
my $resp = HTTP::Response->new (200, 'OK',
['Content-Type', 'text/html'],
$content);
my $symbol_list = ['C.TSP','S.TSP','L2060.TSP'];
my $h = App::Chart::Suffix::TSP::parse($resp, $symbol_list);
print "h= ",Dumper($h);
App::Chart::Download::crunch_h ($h);
print "h= ",Dumper($h);
# App::Chart::Download::write_daily_group ($h);
exit 0;
}
{
# dates and url as from Finance::Quote::TSP
my $startdate = POSIX::strftime("%Y-%m-%d", localtime (time - 7*24*3600));
my $enddate = POSIX::strftime("%Y-%m-%d", localtime time);
my $url = "?startdate=$startdate&enddate=$enddate&Lfunds=1&InvFunds=1&download=1";
### $startdate
### $enddate
### $url
exit 0;
}
{
# https://www.tsp.gov/share-price-history/
# https://www.tsp.gov/data/fund-price-history.csv?startdate=2020-03-02&enddate=2023-02-07&Lfunds=1&InvFunds=1&download=1
# Finance::Quote::TSP uses:
# https://www.tsp.gov/data/fund-price-history.csv
# https://www.tsp.gov/data/fund-price-history.csv?startdate=2023-01-01&enddate=2023-02-01&Lfunds=1&InvFunds=1&download=1
# https://www.tsp.gov/assets/js/share-price-history.js
# no work:
#
# https://www.tsp.gov/data/fund-price-history.csv?startdate=$2023-01-01&enddate=2023-02-01&Lfunds=0&InvFunds=C&download=1
#
# https://www.tsp.gov/data/fund-price-history.csv?startdate=$2023-01-01&enddate=2023-02-01&L_2065=1&download=1
;
}
{
require App::Chart::Download;
my $hi_tdate = App::Chart::Download::tdate_today();
my $lo_tdate = $hi_tdate - 10;
my $resp = App::Chart::Suffix::TSP::get_chunk (['LINCOME.TSP'],
$lo_tdate,
$hi_tdate);
print $resp->headers->as_string;
print $resp->decoded_content (charset => 'none');
exit 0;
}
{
print App::Chart::Suffix::TSP::symbol_to_name('G.TSP'),"\n";
print App::Chart::Suffix::TSP::symbol_to_name('LINCOME.TSP'),"\n";
exit 0;
}
{
require Finance::Quote;
require Finance::Quote::TSP;
$Finance::Quote::TSP::TSP_URL = 'file://'.$ENV{'HOME'}.'/chart/samples/tsp/sharePriceHistory.shtml';
### $Finance::Quote::TSP::TSP_URL
my $q = Finance::Quote->new;
my %rates = $q->fetch ('tsp','C');
### %rates
exit 0;
}
( run in 2.508 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )