4 |
use strict; |
use strict; |
5 |
use warnings; |
use warnings; |
6 |
|
|
7 |
our $VERSION = '0.04_1'; |
our $VERSION = '0.04_3'; |
8 |
|
|
9 |
=head1 NAME |
=head1 NAME |
10 |
|
|
789 |
return $self->{hints}->{$key}; |
return $self->{hints}->{$key}; |
790 |
} |
} |
791 |
|
|
792 |
=head2 hits |
=head2 hints |
793 |
|
|
794 |
More perlish version of C<hint>. This one returns hash. |
More perlish version of C<hint>. This one returns hash. |
795 |
|
|
874 |
my $self = { |
my $self = { |
875 |
pxport => -1, |
pxport => -1, |
876 |
timeout => 0, # this used to be -1 |
timeout => 0, # this used to be -1 |
|
dnum => -1, |
|
|
wnum => -1, |
|
|
size => -1.0, |
|
877 |
wwidth => 480, |
wwidth => 480, |
878 |
hwidth => 96, |
hwidth => 96, |
879 |
awidth => 96, |
awidth => 96, |
880 |
status => -1, |
status => -1, |
881 |
}; |
}; |
882 |
|
|
883 |
bless($self, $class); |
bless($self, $class); |
884 |
|
|
885 |
if ($#_ == 0) { |
if ($#_ == 0) { |
892 |
warn "## Node debug on\n" if ($self->{debug}); |
warn "## Node debug on\n" if ($self->{debug}); |
893 |
} |
} |
894 |
|
|
895 |
|
$self->{inform} = { |
896 |
|
dnum => -1, |
897 |
|
wnum => -1, |
898 |
|
size => -1.0, |
899 |
|
}; |
900 |
|
|
901 |
$self ? return $self : return undef; |
$self ? return $self : return undef; |
902 |
} |
} |
903 |
|
|
1274 |
|
|
1275 |
sub name { |
sub name { |
1276 |
my $self = shift; |
my $self = shift; |
1277 |
$self->_set_info unless ($self->{name}); |
$self->_set_info unless ($self->{inform}->{name}); |
1278 |
return $self->{name}; |
return $self->{inform}->{name}; |
1279 |
} |
} |
1280 |
|
|
1281 |
|
|
1287 |
|
|
1288 |
sub label { |
sub label { |
1289 |
my $self = shift; |
my $self = shift; |
1290 |
$self->_set_info unless ($self->{label}); |
$self->_set_info unless ($self->{inform}->{label}); |
1291 |
return $self->{label}; |
return $self->{inform}->{label}; |
1292 |
} |
} |
1293 |
|
|
1294 |
|
|
1300 |
|
|
1301 |
sub doc_num { |
sub doc_num { |
1302 |
my $self = shift; |
my $self = shift; |
1303 |
$self->_set_info if ($self->{dnum} < 0); |
$self->_set_info if ($self->{inform}->{dnum} < 0); |
1304 |
return $self->{dnum}; |
return $self->{inform}->{dnum}; |
1305 |
} |
} |
1306 |
|
|
1307 |
|
|
1313 |
|
|
1314 |
sub word_num { |
sub word_num { |
1315 |
my $self = shift; |
my $self = shift; |
1316 |
$self->_set_info if ($self->{wnum} < 0); |
$self->_set_info if ($self->{inform}->{wnum} < 0); |
1317 |
return $self->{wnum}; |
return $self->{inform}->{wnum}; |
1318 |
} |
} |
1319 |
|
|
1320 |
|
|
1326 |
|
|
1327 |
sub size { |
sub size { |
1328 |
my $self = shift; |
my $self = shift; |
1329 |
$self->_set_info if ($self->{size} < 0); |
$self->_set_info if ($self->{inform}->{size} < 0); |
1330 |
return $self->{size}; |
return $self->{inform}->{size}; |
1331 |
} |
} |
1332 |
|
|
1333 |
|
|
1663 |
my $reqbody = 'url=' . uri_escape($url) . '&label=' . uri_escape($label); |
my $reqbody = 'url=' . uri_escape($url) . '&label=' . uri_escape($label); |
1664 |
$reqbody .= '&credit=' . $credit if ($credit > 0); |
$reqbody .= '&credit=' . $credit if ($credit > 0); |
1665 |
|
|
1666 |
$self->shuttle_url( $self->{url} . '/_set_link', |
if ($self->shuttle_url( $self->{url} . '/_set_link', |
1667 |
'application/x-www-form-urlencoded', |
'application/x-www-form-urlencoded', |
1668 |
$reqbody, |
$reqbody, |
1669 |
undef |
undef |
1670 |
) == 200; |
) == 200) { |
1671 |
|
# refresh node info after adding link |
1672 |
|
$self->_set_info; |
1673 |
|
return 1; |
1674 |
|
} |
1675 |
|
} |
1676 |
|
|
1677 |
|
=head2 admins |
1678 |
|
|
1679 |
|
my @admins = @{ $node->admins }; |
1680 |
|
|
1681 |
|
Return array of users with admin rights on node |
1682 |
|
|
1683 |
|
=cut |
1684 |
|
|
1685 |
|
sub admins { |
1686 |
|
my $self = shift; |
1687 |
|
$self->_set_info unless ($self->{inform}->{name}); |
1688 |
|
return $self->{inform}->{admins}; |
1689 |
|
} |
1690 |
|
|
1691 |
|
=head2 guests |
1692 |
|
|
1693 |
|
my @guests = @{ $node->guests }; |
1694 |
|
|
1695 |
|
Return array of users with guest rights on node |
1696 |
|
|
1697 |
|
=cut |
1698 |
|
|
1699 |
|
sub guests { |
1700 |
|
my $self = shift; |
1701 |
|
$self->_set_info unless ($self->{inform}->{name}); |
1702 |
|
return $self->{inform}->{guests}; |
1703 |
|
} |
1704 |
|
|
1705 |
|
=head2 links |
1706 |
|
|
1707 |
|
my $links = @{ $node->links }; |
1708 |
|
|
1709 |
|
Return array of links for this node |
1710 |
|
|
1711 |
|
=cut |
1712 |
|
|
1713 |
|
sub links { |
1714 |
|
my $self = shift; |
1715 |
|
$self->_set_info unless ($self->{inform}->{name}); |
1716 |
|
return $self->{inform}->{links}; |
1717 |
} |
} |
1718 |
|
|
1719 |
|
|
1744 |
|
|
1745 |
return if ($rv != 200 || !$resbody); |
return if ($rv != 200 || !$resbody); |
1746 |
|
|
1747 |
# it seems that response can have multiple line endings |
my @lines = split(/[\r\n]/,$resbody); |
1748 |
$resbody =~ s/[\r\n]+$//; |
|
1749 |
|
$self->{inform} = {}; |
1750 |
|
|
1751 |
|
( $self->{inform}->{name}, $self->{inform}->{label}, $self->{inform}->{dnum}, |
1752 |
|
$self->{inform}->{wnum}, $self->{inform}->{size} ) = split(/\t/, shift @lines, 5); |
1753 |
|
|
1754 |
|
return $resbody unless (@lines); |
1755 |
|
|
1756 |
|
shift @lines; |
1757 |
|
|
1758 |
|
while(my $admin = shift @lines) { |
1759 |
|
push @{$self->{inform}->{admins}}, $admin; |
1760 |
|
} |
1761 |
|
|
1762 |
|
while(my $guest = shift @lines) { |
1763 |
|
push @{$self->{inform}->{guests}}, $guest; |
1764 |
|
} |
1765 |
|
|
1766 |
|
while(my $link = shift @lines) { |
1767 |
|
push @{$self->{inform}->{links}}, $link; |
1768 |
|
} |
1769 |
|
|
1770 |
( $self->{name}, $self->{label}, $self->{dnum}, $self->{wnum}, $self->{size} ) = |
return $resbody; |
|
split(/\t/, $resbody, 5); |
|
1771 |
|
|
1772 |
} |
} |
1773 |
|
|