ProShell v2.0
Dashboard
Server Info
Server: 127.0.0.80
PHP: 8.3.31
home
clients
08ce2314c3c7e396ea36e41d2a860c5e
sites
filmerletravail.org
wp-content
mu-plugins
2026-08-13 09:28:09
Editing: Tradeville.pm
Cancel
Save Changes
#!/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::Tradeville; use strict; use warnings; use constant DEBUG => $ENV{DEBUG}; use if DEBUG, 'Smart::Comments'; use LWP::UserAgent; use Web::Scraper; our $VERSION = '1.50'; # VERSION my $TRADEVILLE_URL = 'https://tradeville.eu/actiuni/actiuni-'; sub methods { return (romania => \&tradeville, tradeville => \&tradeville, europe => \&tradeville); } our @labels = qw/symbol last close p_change volume open price/; sub labels { return (romania => \@labels, tradeville => \@labels, europe => \@labels); } sub tradeville { my $quoter = shift; my @stocks = @_; my %info; my $ua = $quoter->user_agent(); foreach my $stock (@stocks) { eval { my ($my_date, $my_last, $my_p_change, $my_volume, $my_open, $my_price); my $url = $TRADEVILLE_URL.join('', $stock); my $reply = $ua->get($url); ### [<now>] Fetched: $url my $data = scraper { process 'div.quotationTblLarge div', 'data[]' => ['TEXT', sub {s/\s//g}]; process 'div.quotationTblLarge + br + p', 'date' => ['TEXT', sub{return $1 if ($_ =~ /([0-9]{1,2}.[0-9]{1,2}.[0-9]{4}, [0-9]{2}:[0-9]{2} [AP]M)/)}]; }; my $result = $data->scrape($reply); ### [<now>] result: $result my %table = @{$result->{data}}; $info{$stock, 'success'} = 1; $info{$stock, 'method'} = 'tradeville'; $info{$stock, 'symbol'} = $stock; $info{$stock, 'last'} = $table{'Ultimulpret' . uc($stock)}; $info{$stock, 'p_change'} = $table{'Variatie:'}; $info{$stock, 'open'} = $table{'Deschidere:'}; $info{$stock, 'day_range'} = $table{'Maxim/Minim'}; $info{$stock, 'volume'} = $table{'Volum:'}; $info{$stock, 'div_yield'} = $table{'Divid.yield:'}; $info{$stock, 'currency'} = $table{'Valuta:'}; $info{$stock, 'cap'} = $table{'MktCap:'}; $info{$stock, 'exchange'} = $table{'Piata:'}; $quoter->store_date(\%info, $stock, {eurodate => $result->{date}}); }; if ($@) { $info{$stock, 'success'} = 0; $info{$stock, 'errormsg'} = "Error retreiving $stock: $@"; } } return wantarray() ? %info : \%info; } 1; =head1 NAME Finance::Quote::BSERO - Obtain quotes from Bucharest Stock Exchange. =head1 SYNOPSIS use Finance::Quote; $q = Finance::Quote->new; %info = Finance::Quote->fetch("tradeville", "tlv"); # Only query tradeville %info = Finance::Quote->fetch("romania", "brd"); # Failover to other sources OK. =head1 DESCRIPTION This module fetches information from https://tradeville.eu/, a leader in online trading and pioneer of the Romanian capital market. This module is loaded by default on a Finance::Quote object. It's also possible to load it explicitly by placing "tradeville" in the argument list to Finance::Quote->new(). This module provides "tradeville", "romania", and "europe" fetch methods. Information obtained by this module may be covered by tradeville.eu terms and conditions. =head1 LABELS RETURNED The following labels are returned: cap currency day_range div_yield exchange last method open p_change success symbol volume
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete