App-Chart
view release on metacpan or search on metacpan
lib/App/Chart/Suffix/NoSuffix.pm view on Meta::CPAN
name => __('NYSE _Company Information'),
desc => __('Open web browser at the New York Stock Exchange page for this company'),
proc => sub {
my ($symbol) = @_;
return 'http://www.nyse.com/about/listed/'
. URI::Escape::uri_escape($symbol) . '.html';
});
App::Chart::Weblink->new
(pred => $pred_amex,
name => __('AMEX _Company Information'),
desc => __('Open web browser at the American Stock Exchange page for this company'),
proc => sub {
my ($symbol) = @_;
return 'http://www.amex.com/?href=/equities/listCmp/EqLCCmpDesc.jsp?Product_Symbol=' . URI::Escape::uri_escape ($symbol);
});
App::Chart::Weblink->new
(pred => $pred_nasdaq,
name => __('NASDAQ _Company Information'),
desc => __('Open web browser at the NASDAQ page for this company'),
proc => sub {
my ($symbol) = @_;
return 'http://quotes.nasdaq.com/asp/summaryquote.asp?symbol='
. URI::Escape::uri_escape ($symbol);
});
# return exchange name string, or undef if not known
sub symbol_exchange {
my ($symbol) = @_;
require App::Chart::DBI;
return (App::Chart::DBI->read_single
('SELECT exchange FROM info WHERE symbol=?', $symbol)
//
App::Chart::DBI->read_single
('SELECT exchange FROM latest WHERE symbol=?', $symbol));
}
#------------------------------------------------------------------------------
our @to_suffix =
(
# ^AEX
[ '^AEX', '.AS' ],
# ^ATX vienna
# and must avoid ^ATLI and similar below
[ '^ATX', '.VI' ],
[ '^AX', '.AX' ], # several, inc ^AXJO, ^AXPJ
[ '^AORD', '.AX' ], # all ords
[ '^ATLI', '.AX' ], # asx 20
[ '^AFLI', '.AX' ], # asx 50
[ '^ATOI', '.AX' ], # asx 100
# ^BFX belgium
[ '^BF', sub {
my $pred = App::Chart::Sympred::Prefix->new ('^BF');
my $timezone_brussels = App::Chart::TZ->new
(name => __('Brussels'),
choose => [ 'Europe/Brussels' ],
fallback => 'CET-1');
$timezone_brussels->setup_for_symbol ($pred);
# only home page for now ...
App::Chart::Weblink->new
(pred => $pred,
name => __('Brussels Stock Exchange Home Page'),
desc => __('Open web browser at the Brussels Stock Exchange home page'),
# now part of euronext ...
url => 'http://www.stockexchange.be');
} ],
# ^BVSP bovespa
[ '^BV', '.SA' ],
# ^BSESN bse sensitive
[ '^BSE', '.BO' ],
# ^CASE30
[ '^CASE', '.CA' ],
# ^CLDOW
# ^CLDOWD
[ '^CL', \&santiago ],
# ^CCSI - cairo CMA
[ '^CC', '.CA' ],
# ^CSE composite
[ '^CSE', sub {
my $pred = App::Chart::Sympred::Prefix->new ('^CSE');
my $timezone_colombo = App::Chart::TZ->new
(name => __('Colombo'),
choose => [ 'Asia/Colombo' ],
fallback => 'LKT-5:30');
$timezone_colombo->setup_for_symbol ($pred);
# only home page for now ...
App::Chart::Weblink->new
(pred => $pred,
name => __('_CSE Home Page'),
desc => __('Open web browser at the Colombo Stock Exchange home page'),
url => 'http://www.cse.lk');
} ],
# ^DJEG20
# ^DJEG20E
# ^DJEG20D
# ^DJEG20T
# ^DJEG20ET
# ^DJEG20DT
[ '^DJEG', '.CA' ],
# ^DWEG -- dow/wiltshire egypt
[ '^DWEG', '.CA' ],
[ '^DWCL', \&santiago ],
# ^DWTH etc
[ '^DWTH', '.BK' ],
lib/App/Chart/Suffix/NoSuffix.pm view on Meta::CPAN
url => App::Chart::Glib::Ex::MoreUtils::lang_select
('ja' => 'http://www.tse.or.jp',
'en' => 'http://www.tse.or.jp/english/'));
} ],
# web link - TSE company info
#
# Eg. in english
# http://quote.tse.or.jp/tse/quote.cgi?F=listing/EDetail1&MKTN=T&QCODE=2001
# and japanese
# http://quote.tse.or.jp/tse/quote.cgi?F=listing/Jdetail1&MKTN=T&QCODE=2001
#
# no tokyo symbols as such yet ...
#
# (weblink-handler! tokyo-symbol?
# (lambda (symbol)
# (list (_ 'TSE _Company Information')
# (_ 'Open web browser at the Tokyo Stock Exchange page for this company')
# (string-append 'http://quote.tse.or.jp/tse/quote.cgi?F=listing/'
# (lang-select '(('ja' 'J')
# ('en' 'E')))
# 'Detail1&MKTN=T&QCODE='
# (chart-symbol-sans-dot symbol)))))
# ^NZ50 new zealand
[ '^NZ', '.NZ' ],
# ^OEX S&P 100
[ '^OEX', \&usa ],
# ^OMXSPI - stockholm
[ '^OMX', '.ST' ],
# ^OSEAX oslo
[ '^OS', '.OL' ],
# ^PSI - PSE composite phillipines
[ '^PS', sub {
my $pred = App::Chart::Sympred::Prefix->new ('^PS');
my $timezone_manila = App::Chart::TZ->new
(name => __('Manila'),
choose => [ 'Asia/Manila' ],
fallback => 'PHT-8');
$timezone_manila->setup_for_symbol ($pred);
# only home page for now ...
App::Chart::Weblink->new
(pred => $pred,
name => __p('phillipine','_PSE Home Page'),
desc => __('Open web browser at the Phillipine Stock Exchange home page'),
url => 'http://www.pse.org.ph');
} ],
# ^PX50 prague
[ '^PX', sub {
my $pred = App::Chart::Sympred::Prefix->new ('^PX');
my $timezone_prague = App::Chart::TZ->new
(name => __('Prague'),
choose => [ 'Europe/Prague', 'Europe/Berlin' ],
fallback => 'CET-1');
$timezone_prague->setup_for_symbol ($pred);
# only home page for now ...
App::Chart::Weblink->new
(pred => $pred,
name => __p('prague','_PSE Home Page'),
desc => __('Open web browser at the Prague Stock Exchange home page'),
url => App::Chart::Glib::Ex::MoreUtils::lang_select
('cs' => 'http://www.pse.cz',
'en' => 'http://www.pse.cz/default.asp?language=english'));
} ],
# ^SMSI
# not ^SML - S&P small 600
[ '^SMS', '.MA' ],
# ^SSEC shanghai composite
# and not hitting ^SSMI
[ '^SSE', '.SS' ],
# ^SPCDNX - CDNX Index TSX venture
[ '^SPC', '.V' ],
# ^SPTSECP - S&P TSX 60 Capped, etc
[ '^SPT', '.TO' ],
# http://au.finance.yahoo.com/intlindices
# ^SSMI - SMI switzerland
# and not hitting ^SSEC
[ 'SSM', '.SW' ],
# ^STI straits times singapore
[ '^STI', '.SI' ],
# ^STOXX
[ '^STO', \&germany ],
# ^SXIP etc stoxx variations
[ '^SX', \&germany ],
# ^THDOW etc
[ '^TH', '.BK' ],
# ^TWII weighted
[ '^TW', '.TW' ],
# ^VEDOW
# ^VEDOWD
[ '^VE', '.CR' ],
);
sub symbol_setups {
my ($symbol) = @_;
foreach my $elem (@to_suffix) {
my $prefix = $elem->[0];
if ($symbol =~ /^\Q$prefix\E/) {
my $action = $elem->[1];
$elem->[1] = \&noop; # once only
( run in 0.560 second using v1.01-cache-2.11-cpan-39bf76dae61 )