Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
perl5 /
Finance /
Quote /
[ HOME SHELL ]
Name
Size
Permission
Action
CurrencyRates
[ DIR ]
drwxr-xr-x
AEX.pm
5.76
KB
-rw-r--r--
ASEGR.pm
5.26
KB
-rw-r--r--
ASX.pm
10.78
KB
-rw-r--r--
AlphaVantage.pm
12.23
KB
-rw-r--r--
BSEIndia.pm
4.59
KB
-rw-r--r--
Bloomberg.pm
2.68
KB
-rw-r--r--
Bourso.pm
6.71
KB
-rw-r--r--
CSE.pm
3.13
KB
-rw-r--r--
Cdnfundlibrary.pm
5.34
KB
-rw-r--r--
Comdirect.pm
4.32
KB
-rw-r--r--
Currencies.pm
32.6
KB
-rw-r--r--
DWS.pm
4.36
KB
-rw-r--r--
Deka.pm
3.17
KB
-rw-r--r--
FTfunds.pm
11.55
KB
-rw-r--r--
Fidelity.pm
4.72
KB
-rw-r--r--
Finanzpartner.pm
4.05
KB
-rw-r--r--
Fondsweb.pm
5.29
KB
-rw-r--r--
Fool.pm
5.2
KB
-rw-r--r--
Fundata.pm
5.96
KB
-rw-r--r--
GoldMoney.pm
7.66
KB
-rw-r--r--
HU.pm
7.07
KB
-rw-r--r--
IEXCloud.pm
4.94
KB
-rw-r--r--
IndiaMutual.pm
4.71
KB
-rw-r--r--
MStaruk.pm
9.13
KB
-rw-r--r--
MorningstarAU.pm
5.05
KB
-rw-r--r--
MorningstarJP.pm
5.55
KB
-rw-r--r--
NSEIndia.pm
4.87
KB
-rw-r--r--
NZX.pm
3.25
KB
-rw-r--r--
OnVista.pm
7.54
KB
-rw-r--r--
Oslobors.pm
2.29
KB
-rw-r--r--
SEB.pm
3.96
KB
-rw-r--r--
SIX.pm
5.45
KB
-rw-r--r--
TMX.pm
5.83
KB
-rw-r--r--
TSP.pm
4.35
KB
-rw-r--r--
Tiaacref.pm
13.85
KB
-rw-r--r--
Tradeville.pm
3.88
KB
-rw-r--r--
Troweprice.pm
5
KB
-rw-r--r--
USFedBonds.pm
4.89
KB
-rw-r--r--
Union.pm
4.5
KB
-rw-r--r--
UserAgent.pm
3.25
KB
-rw-r--r--
XETRA.pm
4.59
KB
-rw-r--r--
YahooJSON.pm
8.21
KB
-rw-r--r--
ZA.pm
3.33
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : AEX.pm
#!/usr/bin/perl -w # This program 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 2 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA package Finance::Quote::AEX; use strict; use warnings; use constant DEBUG => $ENV{DEBUG}; use if DEBUG, 'Smart::Comments'; use vars qw( $AEX_URL); use LWP::UserAgent; use Web::Scraper; use Text::Trim; our $VERSION = '1.51'; # VERSION sub methods { return (dutch => \&aex, aex => \&aex); } our @labels = qw/name symbol price last date time p_change bid ask offer open high low close volume currency method exchange/; sub labels { return (dutch => \@labels, aex => \@labels); } sub aex { my $quoter = shift; my $ua = $quoter->user_agent(); my $agent = $ua->agent; $ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'); my %info; foreach my $symbol (@_) { my $isin = undef; eval { my $search = "https://live.euronext.com/en/search_instruments/$symbol"; my $reply = $ua->get($search); ### Search : $search, $reply->code if (not defined $reply->previous) { # Got a search page my $widget = scraper { process 'table#awl-lookup-instruments-directory-table a', 'link[]' => '@href'; }; my $result = $widget->scrape($reply); die "Failed to find $symbol" unless exists $result->{link} and @{$result->{link}} > 0; my $url = $result->{link}->[0]; die "Failed to find isin" unless $url->as_string =~ m|/([A-Za-z0-9]{12}-[A-Za-z]+)/|; $isin = uc($1); } else { # Redirected my $widget = scraper { process 'a', 'redirect' => '@href'; }; my $result = $widget->scrape($reply->previous->content); die "Failed to find $symbol in redirect" unless exists $result->{redirect}; my $url = $result->{redirect}; die "Failed to find isin in redirect" unless $url =~ m|/([A-Za-z0-9]{12}-[A-Za-z]+)|; $isin = uc($1); } die "No isin set" unless defined $isin; }; if ($@) { my $error = "Search failed: $@"; $info{$symbol, 'success'} = 0; $info{$symbol, 'errormsg'} = trim($error); next; } eval { my $url = "https://live.euronext.com/en/ajax/getDetailedQuote/$isin"; my %form = (theme_name => 'euronext_live'); my $reply = $ua->post($url, \%form); ### Header : $url, $reply->code my $widget = scraper { process 'h1#header-instrument-name strong', 'name' => ['TEXT', sub {trim($_)}]; process 'span#header-instrument-price', 'last' => ['TEXT', sub {trim($_)}]; process 'div.head_detail_bottom div.col span, div.head_detail > div > div:last-child', 'date' => ['TEXT', sub {trim($_)}]; }; my $header = $widget->scrape($reply); $url = "https://live.euronext.com/en/intraday_chart/getDetailedQuoteAjax/$isin/full"; $reply = $ua->get($url); $widget = scraper { process 'div.table-responsive td:first-child, div.table-responsive td:first-child + td', 'data[]' => ['TEXT', sub {trim($_)}]; }; ### Body : $url, $reply->code my $body = $widget->scrape($reply); die "Failed to find detailed quote table" unless exists $body->{data}; my %table = @{$body->{data}}; $info{$symbol, 'success'} = 1; $info{$symbol, 'currency'} = $table{Currency}; $info{$symbol, 'volume'} = $table{Volume}; $info{$symbol, 'volume'} =~ s/,//g; $info{$symbol, 'open'} = $table{Open}; $info{$symbol, 'high'} = $table{High}; $info{$symbol, 'low'} = $table{Low}; $info{$symbol, 'name'} = $header->{name}; $info{$symbol, 'isin'} = $1 if $isin =~ /([A-Z0-9]{12})/; $info{$symbol, 'last'} = $header->{last}; $quoter->store_date(\%info, $symbol, {eurodate => $1}) if $header->{date} =~ m|([0-9]{2}/[0-9]{2}/[0-9]{4})|; }; if ($@) { my $error = "Fetch/Parse failed: $@"; $info{$symbol, 'success'} = 0; $info{$symbol, 'errormsg'} = trim($error); next; } } $ua->agent($agent); return wantarray() ? %info : \%info; } 1; =head1 NAME Finance::Quote::AEX - Obtain quotes from Amsterdam Euronext eXchange =head1 SYNOPSIS use Finance::Quote; $q = Finance::Quote->new; %info = Finance::Quote->fetch("aex", "AMG"); # Only query AEX %info = Finance::Quote->fetch("dutch", "AMG"); # Failover to other sources OK =head1 DESCRIPTION This module fetches information from https://live.euronext.com. Stocks and bonds are supported. This module is loaded by default on a Finance::Quote object. It's also possible to load it explicitly by placing 'aex' in the argument list to Finance::Quote->new(). =head1 LABELS RETURNED The following labels may be returned: currency date high isin isodate last low name open success symbol volume. =head1 Terms & Conditions Use of live.euronext.com is governed by any terms & conditions of that site. Finance::Quote is released under the GNU General Public License, version 2, which explicitly carries a "No Warranty" clause. =cut
Close