Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use warnings;
- use strict;
- use Parallel::ForkManager;
- use 5.010;
- my $pm=new Parallel::ForkManager(50);
- use Fcntl qw(:flock SEEK_END);
- $pm->run_on_finish(sub{
- my (undef, undef, undef, undef, undef, $res_ref) = @_;
- my ($res, $line) = @$res_ref;
- if ($res == 1) {
- open my $outf, ">>", "outf";
- flock($outf, LOCK_EX) or next;
- seek($outf, 0, SEEK_END);
- say $outf $line;
- say $line;
- flock($outf, LOCK_UN);
- }
- });
- my $i = 1;
- while (1) {
- $i++;
- $pm->start and next;
- my $res;
- my $page="";
- $page = `curl -s http://thepiratebay.se/torrent/$i -m 120`
- while ($page !~ /<!DOCTYPE html/);
- my $line = "";
- if ($page =~ m{<title>Not Found}) {
- $res = 0;
- } else {
- $res = 1;
- my ($title) = $page =~ /<div id="title">\s*(.*?)\s*<\/div>/s;
- my ($size) = $page =~ /<dt>Size:<\/dt>\s*<dd>.*?\((\d*) Bytes\)<\/dd>/s;
- my ($seeders) = $page =~ /<dt>Seeders:<\/dt>\s*<dd>(\d*)<\/dd>/;
- my ($leechers) = $page =~ /<dt>Leechers:<\/dt>\s*<dd>(\d*)<\/dd>/;
- my ($magnet) = $page =~ /magnet:\?xt=urn:btih:(.*?)(&|")/;
- $line =
- $i."|".$title."|".$size."|".$seeders."|".$leechers."|".$magnet;
- }
- $pm->finish(0,[$res, $line]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement