Révision fa1298bf
Add IP/Port
| plugins/rtorrent/rtom_allsessions_peers | ||
|---|---|---|
| 28 | 28 |
# |
| 29 | 29 |
# Configuration example |
| 30 | 30 |
# |
| 31 |
# [rtom_peers] |
|
| 32 |
# user username |
|
| 33 |
# env.src socket |
|
| 34 |
# env.socket /home/usernametorrent/.socket/rpc.socket,/home/usernametorrent/.socket/rpc2.socket |
|
| 35 |
# env.category Category |
|
| 31 |
# [rtom_allsessions_*] |
|
| 32 |
# user username |
|
| 33 |
# env.src socket |
|
| 34 |
# env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc.socket |
|
| 35 |
# env.category Category |
|
| 36 |
# |
|
| 37 |
# [rtom_allsessions_*] |
|
| 38 |
# user username |
|
| 39 |
# env.port 5000,5001,5002,5003 |
|
| 40 |
# env.category Category |
|
| 36 | 41 |
# |
| 37 | 42 |
#%# family=auto |
| 38 | 43 |
|
| ... | ... | |
| 67 | 72 |
|
| 68 | 73 |
use IO::Socket; |
| 69 | 74 |
|
| 70 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 71 |
my $mem = 0; |
|
| 72 | 75 |
my $src = $ENV{"src"} || "";
|
| 76 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 77 |
my $ip = $ENV{"ip"} || "127.0.0.1";
|
|
| 78 |
my @ports = split /,/, $ENV{"port"} || "";
|
|
| 73 | 79 |
|
| 74 | 80 |
my $pattern = qr/<value><(int|i4|i8|ex\.i8)>(\d+)<\/(int|i4|i8|ex\.i8)><\/value>/; |
| 75 | 81 |
my $tpattern = qr/[0-9A-F]{20}/;
|
| ... | ... | |
| 78 | 84 |
my $llen = length $line; |
| 79 | 85 |
my $header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
|
| 80 | 86 |
my $hlen = length $header; |
| 81 |
$line = "${hlen}:${header},${line}";
|
|
| 82 | 87 |
|
| 83 | 88 |
my $tor = 0; |
| 84 | 89 |
my $tot = 0; |
| ... | ... | |
| 89 | 94 |
my $out = 0; |
| 90 | 95 |
my $pla = 0; |
| 91 | 96 |
|
| 92 |
for $socket (@sockets) |
|
| 93 |
{
|
|
| 94 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 95 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ); |
|
| 96 |
connect( SOCK, sockaddr_un( $socket ) ); |
|
| 97 |
} |
|
| 98 | 97 |
|
| 99 |
print SOCK $line; |
|
| 100 |
flush SOCK; |
|
| 98 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 99 |
for $socket (@sockets) |
|
| 100 |
{
|
|
| 101 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ) or die; |
|
| 102 |
connect( SOCK, sockaddr_un( $socket ) ) or die $!; |
|
| 103 |
my $line = "${hlen}:${header},${line}";
|
|
| 104 |
print SOCK $line; |
|
| 105 |
flush SOCK; |
|
| 106 |
while ( $line = <SOCK> ) {
|
|
| 107 |
if ( $line =~ /$tpattern/ ) {
|
|
| 108 |
$tor += 1; |
|
| 109 |
} elsif ( $line =~ /$pattern/ ) {
|
|
| 110 |
$tot += 1; |
|
| 111 |
$enc += $2; |
|
| 112 |
$line = <SOCK>; |
|
| 113 |
$line =~ /$pattern/; |
|
| 114 |
$inc += $2; |
|
| 115 |
} |
|
| 116 |
$ppline = $pline; |
|
| 117 |
$pline = $line; |
|
| 118 |
} |
|
| 119 |
close (SOCK); |
|
| 120 |
$out = $out + $tot - $inc; |
|
| 121 |
$pla = $pla + $tot - $enc; |
|
| 122 |
} |
|
| 123 |
} else {
|
|
| 124 |
for $port (@ports) |
|
| 125 |
{
|
|
| 126 |
socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname( "tcp" ) ); |
|
| 127 |
connect( SOCK, sockaddr_in( $port, inet_aton( $ip ) ) ); |
|
| 128 |
my $line = "${hlen}:${header},${line}";
|
|
| 129 |
print SOCK $line; |
|
| 130 |
flush SOCK; |
|
| 131 |
while ( $line = <SOCK> ) {
|
|
| 132 |
if ( $line =~ /$tpattern/ ) {
|
|
| 133 |
$tor += 1; |
|
| 134 |
} elsif ( $line =~ /$pattern/ ) {
|
|
| 135 |
$tot += 1; |
|
| 136 |
$enc += $2; |
|
| 137 |
$line = <SOCK>; |
|
| 138 |
$line =~ /$pattern/; |
|
| 139 |
$inc += $2; |
|
| 140 |
} |
|
| 141 |
$ppline = $pline; |
|
| 142 |
$pline = $line; |
|
| 143 |
} |
|
| 144 |
close (SOCK); |
|
| 145 |
$out = $out + $tot - $inc; |
|
| 146 |
$pla = $pla + $tot - $enc; |
|
| 147 |
} |
|
| 148 |
} |
|
| 101 | 149 |
|
| 102 |
while ( $line = <SOCK> ) {
|
|
| 103 |
if ( $line =~ /$tpattern/ ) {
|
|
| 104 |
$tor += 1; |
|
| 105 |
} elsif ( $line =~ /$pattern/ ) {
|
|
| 106 |
$tot += 1; |
|
| 107 |
$enc += $2; |
|
| 108 |
$line = <SOCK>; |
|
| 109 |
$line =~ /$pattern/; |
|
| 110 |
$inc += $2; |
|
| 111 |
} |
|
| 112 |
$ppline = $pline; |
|
| 113 |
$pline = $line; |
|
| 114 |
} |
|
| 115 |
close (SOCK); |
|
| 116 | 150 |
|
| 117 |
$out = $out + $tot - $inc; |
|
| 118 |
$pla = $pla + $tot - $enc; |
|
| 119 |
} |
|
| 120 | 151 |
print "torrents.value ${tor}\ntotal.value ${tot}\nencrypted.value ${enc}\nplain.value ${pla}\nincoming.value ${inc}\noutgoing.value ${out}\n";
|
| 121 | 152 |
|
| 122 | 153 |
exit; |
| plugins/rtorrent/rtom_allsessions_spdd | ||
|---|---|---|
| 40 | 40 |
# |
| 41 | 41 |
# Configuration example |
| 42 | 42 |
# |
| 43 |
# [rtom_spdd]
|
|
| 43 |
# [rtom_allsessions_*]
|
|
| 44 | 44 |
# user username |
| 45 | 45 |
# env.src socket |
| 46 |
# env.socket /home/user/torrent/.socket/rpc.socket,/home/user2/torrent/.socket/rpc2.socket
|
|
| 47 |
# env.category Sometext
|
|
| 46 |
# env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc.socket
|
|
| 47 |
# env.category Category
|
|
| 48 | 48 |
# |
| 49 |
# [rtom_allsessions_*] |
|
| 50 |
# user username |
|
| 51 |
# env.port 5000,5001,5002,5003 |
|
| 52 |
# env.category Category |
|
| 49 | 53 |
# |
| 50 | 54 |
#%# family=auto |
| 51 | 55 |
|
| ... | ... | |
| 82 | 86 |
} |
| 83 | 87 |
|
| 84 | 88 |
use IO::Socket; |
| 85 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 86 | 89 |
my $src = $ENV{"src"} || "";
|
| 90 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 91 |
my $ip = $ENV{"ip"} || "127.0.0.1";
|
|
| 92 |
my @ports = split /,/, $ENV{"port"} || "";
|
|
| 93 |
|
|
| 94 |
my $pattern = qr/<value><(int|i4|i8|ex\.i8)>([-]{0,1}\d+)<\/(int|i4|i8|ex\.i8)><\/value>/;
|
|
| 95 |
my $line = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>system.multicall</methodName><params><param><value><array><data><value><struct><member><name>methodName</name><value><string>get_up_total</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_down_total</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_upload_rate</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_download_rate</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value></data></array></value></param></params></methodCall>"; |
|
| 96 |
my $llen = length $line; |
|
| 97 |
my $header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
|
|
| 98 |
my $hlen = length $header; |
|
| 87 | 99 |
|
| 88 | 100 |
my $up = -1; |
| 89 | 101 |
my $down = -1; |
| 90 | 102 |
|
| 91 |
for $socket (@sockets) |
|
| 92 |
{
|
|
| 93 |
my $pattern = qr/<value><(int|i4|i8|ex\.i8)>([-]{0,1}\d+)<\/(int|i4|i8|ex\.i8)><\/value>/;
|
|
| 94 |
my $line = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>system.multicall</methodName><params><param><value><array><data><value><struct><member><name>methodName</name><value><string>get_up_total</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_down_total</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_upload_rate</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>get_download_rate</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value></data></array></value></param></params></methodCall>"; |
|
| 95 |
my $llen = length $line; |
|
| 96 |
my $header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
|
|
| 97 |
my $hlen = length $header; |
|
| 98 |
$line = "${hlen}:${header},${line}";
|
|
| 99 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 100 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ); |
|
| 101 |
connect( SOCK, sockaddr_un( $socket ) ); |
|
| 102 |
} |
|
| 103 |
|
|
| 104 |
print SOCK $line; |
|
| 105 |
flush SOCK; |
|
| 106 |
my $up_tmp = -1; |
|
| 107 |
my $down_tmp = -1; |
|
| 108 |
while (( $up_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 109 |
if ( $line =~ /$pattern/ ) {
|
|
| 110 |
$up_tmp = $2; |
|
| 103 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 104 |
for $socket (@sockets) |
|
| 105 |
{
|
|
| 106 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ) or die; |
|
| 107 |
connect( SOCK, sockaddr_un( $socket ) ) or die $!; |
|
| 108 |
my $line = "${hlen}:${header},${line}";
|
|
| 109 |
print SOCK $line; |
|
| 110 |
flush SOCK; |
|
| 111 |
my $up_tmp = -1; |
|
| 112 |
my $down_tmp = -1; |
|
| 113 |
while (( $up_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 114 |
if ( $line =~ /$pattern/ ) {
|
|
| 115 |
$up_tmp = $2; |
|
| 116 |
} |
|
| 111 | 117 |
} |
| 112 |
}
|
|
| 113 |
while (( $down_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 114 |
if ( $line =~ /$pattern/ ) {
|
|
| 115 |
$down_tmp = $2;
|
|
| 118 |
while (( $down_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 119 |
if ( $line =~ /$pattern/ ) {
|
|
| 120 |
$down_tmp = $2;
|
|
| 121 |
}
|
|
| 116 | 122 |
} |
| 123 |
close (SOCK); |
|
| 124 |
$up = $up + $up_tmp; |
|
| 125 |
$down = $down + $down_tmp; |
|
| 126 |
} |
|
| 127 |
} else {
|
|
| 128 |
for $port (@ports) |
|
| 129 |
{
|
|
| 130 |
socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname( "tcp" ) ); |
|
| 131 |
connect( SOCK, sockaddr_in( $port, inet_aton( $ip ) ) ); |
|
| 132 |
my $line = "${hlen}:${header},${line}";
|
|
| 133 |
print SOCK $line; |
|
| 134 |
flush SOCK; |
|
| 135 |
my $up_tmp = -1; |
|
| 136 |
my $down_tmp = -1; |
|
| 137 |
while (( $up_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 138 |
if ( $line =~ /$pattern/ ) {
|
|
| 139 |
$up_tmp = $2; |
|
| 140 |
} |
|
| 141 |
} |
|
| 142 |
while (( $down_tmp == -1 ) && ( $line = <SOCK> ) ) {
|
|
| 143 |
if ( $line =~ /$pattern/ ) {
|
|
| 144 |
$down_tmp = $2; |
|
| 145 |
} |
|
| 146 |
} |
|
| 147 |
close (SOCK); |
|
| 148 |
$up = $up + $up_tmp; |
|
| 149 |
$down = $down + $down_tmp; |
|
| 117 | 150 |
} |
| 118 |
close (SOCK); |
|
| 119 |
$up = $up + $up_tmp; |
|
| 120 |
$down = $down + $down_tmp; |
|
| 121 | 151 |
} |
| 152 |
|
|
| 153 |
|
|
| 154 |
|
|
| 122 | 155 |
print "up.value ${up}\ndown.value ${down}\n";
|
| 123 | 156 |
|
| 124 | 157 |
exit; |
| plugins/rtorrent/rtom_allsessions_vol | ||
|---|---|---|
| 28 | 28 |
# |
| 29 | 29 |
# Configuration example |
| 30 | 30 |
# |
| 31 |
# [rtom_vol] |
|
| 32 |
# user username |
|
| 33 |
# env.src socket |
|
| 34 |
# env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc2.socket |
|
| 35 |
# env.category Sometext |
|
| 31 |
# [rtom_allsessions_*] |
|
| 32 |
# user username |
|
| 33 |
# env.src socket |
|
| 34 |
# env.socket /home/user/torrent/.socket/rpc.socket,/home/user/torrent/.socket/rpc.socket |
|
| 35 |
# env.category Category |
|
| 36 |
# |
|
| 37 |
# [rtom_allsessions_*] |
|
| 38 |
# user username |
|
| 39 |
# env.port 5000,5001,5002,5003 |
|
| 40 |
# env.category Category |
|
| 36 | 41 |
# |
| 37 | 42 |
#%# family=auto |
| 38 | 43 |
|
| ... | ... | |
| 71 | 76 |
|
| 72 | 77 |
use IO::Socket; |
| 73 | 78 |
|
| 74 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 75 | 79 |
my $src = $ENV{"src"} || "";
|
| 80 |
my @sockets = split /,/, $ENV{"socket"} || "";
|
|
| 81 |
my $ip = $ENV{"ip"} || "127.0.0.1";
|
|
| 82 |
my @ports = split /,/, $ENV{"port"} || "";
|
|
| 76 | 83 |
|
| 77 | 84 |
my $pattern = qr/<value><string>([A-Z0-9]+)<\/string><\/value>/; |
| 78 | 85 |
|
| 79 |
my $line; |
|
| 80 |
my $llenmy; |
|
| 81 |
my $header; |
|
| 82 |
my $hlen; |
|
| 83 |
|
|
| 84 |
my $num; |
|
| 85 | 86 |
foreach ( @views ) {
|
| 86 |
$num = 0; |
|
| 87 |
for $socket (@sockets){
|
|
| 88 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 89 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ); |
|
| 90 |
connect( SOCK, sockaddr_un( $socket ) ); |
|
| 91 |
} |
|
| 92 |
|
|
| 93 |
$line = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>d.multicall</methodName><params><param><value><string>${_}</string></value></param><param><value><string>d.get_hash=</string></value></param></params></methodCall>";
|
|
| 94 |
$llen = length $line; |
|
| 95 |
$header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
|
|
| 96 |
$hlen = length $header; |
|
| 97 |
$line = "${hlen}:${header},${line}";
|
|
| 98 |
|
|
| 99 |
print SOCK $line; |
|
| 100 |
flush SOCK; |
|
| 87 |
my $num = 0; |
|
| 88 |
my $line = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>d.multicall</methodName><params><param><value><string>${_}</string></value></param><param><value><string>d.get_hash=</string></value></param></params></methodCall>";
|
|
| 89 |
my $llen = length $line; |
|
| 90 |
my $header = "CONTENT_LENGTH\000${llen}\000SCGI\001\000";
|
|
| 91 |
my $hlen = length $header; |
|
| 101 | 92 |
|
| 102 |
while ( $line = <SOCK> ) {
|
|
| 103 |
if ( $line =~ /$pattern/ ) {
|
|
| 104 |
$num++; |
|
| 105 |
} |
|
| 106 |
} |
|
| 107 |
close (SOCK); |
|
| 93 |
if ( ( defined $src ) && ( $src eq "socket" ) ) {
|
|
| 94 |
for $socket (@sockets) |
|
| 95 |
{
|
|
| 96 |
socket( SOCK, PF_UNIX, SOCK_STREAM, 0 ) or die; |
|
| 97 |
connect( SOCK, sockaddr_un( $socket ) ) or die $!; |
|
| 98 |
my $line = "${hlen}:${header},${line}";
|
|
| 99 |
print SOCK $line; |
|
| 100 |
flush SOCK; |
|
| 101 |
while ( $line = <SOCK> ) {
|
|
| 102 |
if ( $line =~ /$pattern/ ) {
|
|
| 103 |
$num++; |
|
| 104 |
} |
|
| 105 |
} |
|
| 106 |
close (SOCK); |
|
| 107 |
} |
|
| 108 |
} else {
|
|
| 109 |
for $port (@ports) |
|
| 110 |
{
|
|
| 111 |
socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname( "tcp" ) ); |
|
| 112 |
connect( SOCK, sockaddr_in( $port, inet_aton( $ip ) ) ); |
|
| 113 |
my $line = "${hlen}:${header},${line}";
|
|
| 114 |
print SOCK $line; |
|
| 115 |
flush SOCK; |
|
| 116 |
while ( $line = <SOCK> ) {
|
|
| 117 |
if ( $line =~ /$pattern/ ) {
|
|
| 118 |
$num++; |
|
| 119 |
} |
|
| 120 |
} |
|
| 121 |
close (SOCK); |
|
| 122 |
} |
|
| 108 | 123 |
} |
| 109 | 124 |
print "${_}.value ${num}\n";
|
| 110 | 125 |
} |
Formats disponibles : Unified diff