🐪 BlogSpider.pl (Perl) 8.6 KB 2006-10-21
Perl module for BlogSpider
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
# perl -MCPAN -e 'force install "String::Approx"'
####
use Blog::PARSER::eMod;
use Blog::PARSER::Gulli;
use Blog::PARSER::BlogJunkie;
use Blog::PARSER::Allmend;
use Blog::PARSER::Golem;
use Blog::PARSER::Netzwelt;
use Blog::PARSER::NullNull;
use Blog::PARSER::FilesharingNews;
use Blog::PARSER::MP3Katalog;
# use Blog::PARSER::Heise;
use Blog::PARSER;
use Blog::SQLIO;
use Blog::HTTP;
use Blog::SQL;
use Data::Dumper;
my $DBH = Blog::SQL->SQL();
######
### http://www.emule-mods.cc/
######
my $pagecontent = Blog::HTTP->GET('http://www.emule-mods.cc/');
my $links = Blog::PARSER->getLinks($pagecontent,'http://www.emule-mods.cc/','(\d{2})\/(\d{4})','top');
# print Dumper($links); exit;
foreach my $link ( @{$links} ) {
my $status = Blog::SQLIO->DoesLinkExists($DBH, $link);
if ( $status == 0 ) {
print "Bearbeite: $link\n";
my $page = Blog::HTTP->GET($link);
Blog::PARSER::eMod->GrabContent($DBH, $page, $link, 'K');
... [truncated, 266 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "BlogSpider.pl",
"description": "Perl module for BlogSpider",
"dateModified": "2006-10-21",
"dateCreated": "2025-03-23",
"contentSize": "8.6 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BlogSpider.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 HttpHeadCheck.pl (Perl) 1.7 KB 2007-02-10
Perl module for HttpHeadCheck
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# sleep 1000 && run / alle 21 min nach neuen torrents suchen
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
# perl -MCPAN -e 'force install "Crypt::SSLeay"'
# perl -MCPAN -e 'force install "Crypt::Rijndael"'
# perl -MCPAN -e 'force install "Crypt::CBC"'
# perl -MCPAN -e 'force install "Digest::MD4"'
system("clear");
use strict;
use IO::Handle;
use Data::Dumper;
# use Net::SCP::Expect;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
###########
### objekte initialisieren
###########
my $HEAD = TorrentIndexer::HTTP::Head->new();
my $GET = TorrentIndexer::HTTP::Get->new();
my $LINK = TorrentIndexer::LINK::Extractor->new();
#########
### MAIN
#########
my $CachePath = "/root/zoozle/torrentindexer/xmlfeeds/cache";
my $TorrentStoreFlatFile = "$CachePath/rss-torrent-feeds.txt";
my $LinksToScan = "$CachePath/tmp-rss-feed.txt";
... [truncated, 25 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "HttpHeadCheck.pl",
"description": "Perl module for HttpHeadCheck",
"dateModified": "2007-02-10",
"dateCreated": "2025-03-23",
"contentSize": "1.7 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/HttpHeadCheck.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 emule.newsbot.pl (Perl) 8.8 KB 2006-10-03
Perl module for emule.newsbot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl
require "functions.pl";
use DBI();
$drh = DBI->install_driver("mysql");
my $timeout = "300";
my $ua = "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.6) Gecko/20040206 Firefox/1.0.1";
my $DBHOST = "localhost";
my $DBNAME = "zoozle";
my $DBUSER = "zoozle";
my $DBPASS = "zoozle23!99";
my $dbh = DBI->connect("DBI:mysql:database=$DBNAME;host=$DBHOST", "$DBUSER", "$DBPASS", {'RaiseError' => 0});
unlink "emule_news.txt";
open(WH,">emule_news.txt");
&getNewsTV();
sub getNewsTV(){
my $page = &http_get("http://tvunderground.org.ru/index.php", $timeout, $ua, '');
my @CONTENT = split('"', $page);
my @CONTENT2 = split('\'', $page);
if ( $#CONTENT < $#CONTENT2 ) {
@CONTENT = @CONTENT2;
};
foreach $line (@CONTENT) {
$linecount++;
if ($line =~ /english/i || $line =~ /german/i || $line =~ /french/i || $line =~ /italian/i || $line =~ /polish/i) {
if ($line =~ /english/i ) { $lang = "en"; };
if ($line =~ /german/i ) { $lang = "en"; }
if ($line =~ /french/i ) { $lang = "fr"; }
if ($line =~ /italian/i ) { $lang = "it"; }
if ($line =~ /polish/i ) { $lang = "pl"; }
my ( $desc_t ) = split(/<\/a>/i, @CONTENT[$linecount+2] );
my ( undef, $desc ) = split('>', $desc_t );
$desc =~ s/<a href=//i;
chomp($desc);
next if ( $desc !~ /\w/ ); # && (length(@CONTENT[$linecount+1]) < 3) );
next if ( $desc =~ / /i );
$count++;
print WH "CATE=$lang#DESC=$desc#LINK=http://tvunderground.org.ru/@CONTENT[$linecount+1]\n";
... [truncated, 307 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "emule.newsbot.pl",
"description": "Perl module for emule.newsbot",
"dateModified": "2006-10-03",
"dateCreated": "2025-03-23",
"contentSize": "8.8 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/emule.newsbot.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 functions.pl (Perl) 7.9 KB 2006-09-21
Perl module for functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request;
use Tie::File;
$PROXYTMP = "proxy.tmp.txt";
$PROXYGO = "proxy.working.txt";
$TESTURL = "http://www.zoozle.net/zoozle/information.html";
$UA = "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.6) / Torrentindexer/1.0 - www.zoozle.net";
############# Subroutine zum erstellen eines HTTP Requestes:Start
# Aufgabe: &http_get - erstelle und sende http request an bergebene url
# Rckgabe: content der angefragten uri/url
sub http_get() {
my ($url, $timeout, $useragent, $proxy) = @_;
my $UA = LWP::UserAgent->new( keep_alive => 1 );
$UA->agent($useragent);
$UA->timeout($timeout);
$UA->max_size(950_000);
#$UA->proxy(["http"], "http://$proxy") if ($proxy ne '');
my $jar_jar = HTTP::Cookies->new
(file => ".Cookies" || ".Cookies.txt",
autosave => 1,
max_cookie_size => 40960,
max_cookies_per_domain => 10000, );
$UA->cookie_jar($jar_jar );
my $req = HTTP::Request->new(GET => $url);
# Pass request to the user agent and get a response back
$req->referer($url);
my $res = $UA->request($req);
if ($res->is_success) {
return $res->content;
} else {
#return "<html><body> Spider::Easyspider::http_get(): " . $res->status_line . "</body></html>";
return 0;
};
}; # sub http_get {}
############# Subroutine zum erstellen eines HTTP Requestes:Ende
... [truncated, 253 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "functions.pl",
"description": "Perl module for functions",
"dateModified": "2006-09-21",
"dateCreated": "2025-03-23",
"contentSize": "7.9 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/functions.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
📰 games.xml (Xml) 9.0 KB 2006-10-24
Source code file for games
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" >
<channel>
<title><a href="/">Snarf-It</a> &gt;&gt; <a href="/view/latest.html">Latest</a> &gt;&gt; Anime</title>
<link>http://snarf-it.org/view/latest.html?cat=anime</link>
<description>Blog scrape by Grouper</description>
<pubDate>Tue, 24 Oct 2006 02:14:25 +0100</pubDate>
<generator>Grouper/1.6.2Evolution</generator>
<item>
<title>gunslinger.girl.01.avi</title>
<link>http:///www.zoozle.net</link>
</item>
<item>
<title>Homemade</title>
<link>http:///</link>
</item>
<item>
<title>[Triad]_Bokura_Ga_Ita_-_15.avi</title>
<link>http:///</link>
</item>
<item>
<title>[Shinsen-Subs]_Black_Lagoon_15_[87EC44AC].avi</title>
<link>http:///</link>
</item>
<item>
<title>[Simoun-Fans]_Simoun_-_01-13_[XviD]</title>
<link>http:///</link>
</item>
<item>
<title>[IY-F&amp;Oki]_NANA_-_Episode_23_(XviD1.2)_[61DE96DC].</title>
<link>http:///</link>
</item>
<item>
<title>[IY-F&amp;Oki]_NANA_-_Episode_24_(XviD1.2)_[FC99F20C].</title>
<link>http:///</link>
</item>
<item>
<title>Spider_Riders_-_027_-_Fateful_Decision[C-W][Umi].a</title>
<link>http:///</link>
</item>
<item>
<title>[T-N]Powerpuff_Girls_Z_-_14_[33BC02FD].avi</title>
<link>http:///</link>
</item>
<item>
<title>[aF]Planetes_Phase</title>
<link>http:///</link>
</item>
<item>
<title>[aF]Planetes_Phase</title>
... [truncated, 361 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "games.xml",
"description": "Source code file for games",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "9.0 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/games.xml",
"encodingFormat": "application/xml",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Xml"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 hourly_rssupdates.pl (Perl) 100 bytes 2006-12-21
Perl module for hourly rssupdates
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "hourly_rssupdates.pl",
"description": "Perl module for hourly rssupdates",
"dateModified": "2006-12-21",
"dateCreated": "2025-03-23",
"contentSize": "100 bytes",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/hourly_rssupdates.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 linkextractor.pl (Perl) 820 bytes 2006-11-17
Perl module for linkextractor
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "linkextractor.pl",
"description": "Perl module for linkextractor",
"dateModified": "2006-11-17",
"dateCreated": "2025-03-23",
"contentSize": "820 bytes",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/linkextractor.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🌐 links.html (Html) 1.0 KB 2006-10-24
HTML template for links
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | <a href="http://www.zoozle.net/normal">normal</a>
<a href="/normal1">normal 1</a>
<a href="http://www.zoozle.net/normal/test">normal test</a>
<a href="../normal/test">normal test 2</a>
<a href='http://www.zoozle.net/normal'>anders</a>
<a href='/normal1'>anders 1</a>
<a href='http://www.zoozle.net/normal/test'>anders test</a>
<a href='../normal/test'>anders test 2</a>
<a href='javascript:TEST("http://www.zoozle.net/normal")'>normal</a>
<a href="/normal1">normal 1</a>
<a href="http://www.zoozle.net/normal/test">normal test</a>
<a href="../normal/test">normal test 2</a>
<a href="javascript:TEST('http://www.zoozle.net/normaltest')">normal</a>
<a href="javascript: openInfo('../popups/56/56831.htm');"><b> Karam (100K)</b> </a>
<!--
<a href=http://www.zoozle.net/32323 traget="blank">anders</a>
<a href=wwwn23231 traget="blank">anders 1</a>
<a href=http://www.zoozle.net/normasadfasdfest traget="blank">anders test</a>
<a href=../nor22al/test traget="blank">anders test 2</a>
-->
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "links.html",
"description": "HTML template for links",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "1.0 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/links.html",
"encodingFormat": "text/html",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Html"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
📄 links.txt (Text) 2.2 KB 2006-10-24
Source code file for links
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "links.txt",
"description": "Source code file for links",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "2.2 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/links.txt",
"encodingFormat": "text/plain",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Text"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 linlextractor.pl (Perl) 5.9 KB 2006-10-25
Perl module for linlextractor
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "linlextractor.pl",
"description": "Perl module for linlextractor",
"dateModified": "2006-10-25",
"dateCreated": "2025-03-23",
"contentSize": "5.9 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/linlextractor.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 oldcode.pl (Perl) 608 bytes 2006-10-24
Perl module for oldcode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | # my @title = $links =~ /javascript\:(\w|\d)+\(+(.*?)(\w|\d)+\)/gis;
# # javascript:funtion('LINK');
# my @title = $links =~ /javascript\:(\w|\d)+\(+(\"|\')+(\w|\d)+(\"|\')+\)/gis;
# my @title = $page =~ /<title.*?>(.*?)<\/title>/gis;
# if ( $links =~ /\(+(.*?)+\)/g ) {
# if ( $links =~ m|\(+(.*?)+\)|g ) {
# if ( $links =~ m|\(+(.*?)+\)|g ) {
# if ( $links =~ m|\(+(.*?)+\)|g ) {
# my @title = $links =~ /([^\(])(.*?)([^\)])/gis;
my @title = $links =~ /javascript:(\w)+\(+\"+(.*?)+\"+\)/gis;
print "@title \n";
print "JO\n";
#############
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "oldcode.pl",
"description": "Perl module for oldcode",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "608 bytes",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/oldcode.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 pix2tn (Perl) 3.3 KB 2006-10-24
Source code file for pix2tn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl
# make sure, that the path of perl is right (try: which perl)
###############################################################
#
# Pix2tn by Michael Hahsler 1999
#
# This script free for use and modification.
# History: V1.0 Oct 18 1999
# V1.1 Mar 08 2004 includes options code by
# Juan Carlos Rey Anaya <jcrey@uma.es>
#
# Usage: Copy this script into the directory with your photos or in
# your directory for executables (e.g. ~/bin). Change to the directory
# with the photos and run the script. The script will generate the
# file welcome.html (the index) and the sub-directories tn and med
# (for the thumpnails).
# If you want to have the index and the pictures on the Web, the directory
# you have to move everything to a directory used by your Web-server
# (e.g. ~\www).
#
# Copyright: This script is under GNU GENERAL PUBLIC LICENSE (GPL)
#
# Enjoy,
# Michael Hahsler
# hahsler@ai.wu-wien.ac.at http://wwwai.wu-wien.ac.at/~hahsler
#
use Getopt::Std;
print "pix2tn by Michael Hahsler\n\n";
usage() unless getopts("ht:o:");
usage() if $opt_h;
$filename = $opt_o || "index.html";
$title = $opt_t || "My Pics";
$dir = shift || ".";
chdir $dir || die "Cannot change to $dir.\n";
my $tnperrow=4; # thumbnails per row
my $tnsize=80; # size of thumbnails
my $tnquality=25; # quality of thumbnails [0..100]
# use small thumbnails with poor quality to speed up your index-page
my $medsize=500; # size of thumbnails
my $medquality=70; # quality of thumbnails [0..100]
# used to create medium sized pictures
# possible image extensions (jpg, gif)
my @pics = (<*.jpg>,<*.gif>);
... [truncated, 77 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "pix2tn",
"description": "Source code file for pix2tn",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "3.3 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/pix2tn",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 rssfeedindexer.pl (Perl) 8.9 KB 2007-02-12
Perl module for rssfeedindexer
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "rssfeedindexer.pl",
"description": "Perl module for rssfeedindexer",
"dateModified": "2007-02-12",
"dateCreated": "2025-03-23",
"contentSize": "8.9 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/rssfeedindexer.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 simplerssfeedindexer.pl (Perl) 1.8 KB 2007-02-10
Perl module for simplerssfeedindexer
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "simplerssfeedindexer.pl",
"description": "Perl module for simplerssfeedindexer",
"dateModified": "2007-02-10",
"dateCreated": "2025-03-23",
"contentSize": "1.8 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/simplerssfeedindexer.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 test.pl (Perl) 702 bytes 2006-10-23
Perl module for test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | #! /usr/bin/perl -w
# This is part of modern Perl distributions.
use FindBin;
use lib "$FindBin::Bin";
# These are part of modern Perl distributions.
use Getopt::Long;
# These modules aren't necessarily "standard" with Perl. You might need to
# install them seperately.
use Digest::SHA1 qw(sha1);
use LWP::UserAgent;
# This is part of TorrentSniff, and should have been distributed with it.
use BitTorrent::BDecode;
use strict;
use Data::Dumper;
use LWP::Simple;
my $doc = get("http://torrent.to/torrent/upload/moviez/615/150615/555-www.torrent.to...WernerHerzog-Stroszek1977%5Bfreakyflicks%5D.torrent");
my $t = BitTorrent::BDecode::bdecode(\$doc);
print Dumper($t);
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "test.pl",
"description": "Perl module for test",
"dateModified": "2006-10-23",
"dateCreated": "2025-03-23",
"contentSize": "702 bytes",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/test.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexer.pl (Perl) 8.2 KB 2007-02-10
Perl module for torrentindexer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# spider ignoriert forum und blog urls
# todo: metakeys und title tags auswerten !! um torrent description zu bekommen
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
# perl -MCPAN -e 'force install "Crypt::SSLeay"'
system("clear");
# link desc von javascript links holen
# lade immer alle module -> error checking
use strict;
use IO::Handle;
use Data::Dumper;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
use TorrentIndexer::CHECKSUM::CheckSum;
use TorrentIndexer::TIME::Time;
use TorrentIndexer::HTML::HtmlParser;
use TorrentIndexer::CRYPTO::CryptoLibrary;
use TorrentIndexer::CRYPTO::SecureHashGenerator;
use TorrentIndexer::HTTP::RobotRules;
use TorrentIndexer::LINK::CurrentDept;
use TorrentIndexer::LINK::IsSameLink;
use TorrentIndexer::BITTORRENT::Bittorrent;
my @LinksToScan = ();
my $CachePath = "/root/zoozle/indexer/torrentindexer/cache"; # later check if dir exits if not create, siehe client.pm easyspider
mkdir $CachePath;
my $ScanUntilDept = 5;
... [truncated, 243 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexer.pl",
"description": "Perl module for torrentindexer",
"dateModified": "2007-02-10",
"dateCreated": "2025-03-23",
"contentSize": "8.2 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexer.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexerV0.1.pl (Perl) 2.5 KB 2006-10-24
Perl module for torrentindexerV0.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
# perl -MCPAN -e 'force install "XML::TreePP"'
system("clear");
use Data::Dumper;
use BitTorrent::BDecode;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
# my $domain = "http://www.zoozle.net/zoozle.php?q=test&s=bittorrent&l=de";
# my $domain = "http://eselfilme.com/parents/home.htm";
# my $domain = "http://fenopy.com/rss.xml?row=10&cat=5&type=2";
# my $domain = "http://www.p2p-blog.de/feed/";
my $domain = "http://torrent.to/torrent/upload/serien/713/150713/1308-www.torrent.to...CSI.Miami.S04E08.Wunschmoerder.German.Dubbed.DVDRiP.WS.XviD-TvR.torrent";
###########
### objekte initialisieren
###########
my $HEAD = TorrentIndexer::HTTP::Head->new();
my $GET = TorrentIndexer::HTTP::Get->new();
my $LINK = TorrentIndexer::LINK::Extractor->new();
########
#### Request senden
########
my $HeadHashResultRef = $HEAD->Head($domain);
my $HeadStatusCode = $HeadHashResultRef->{ 'STA' };
my $LinkHashRef;
if ( $HeadStatusCode == 1 ) {
my $ContentType = $HeadHashResultRef->{ 'TYP' };
my $GetHashResultRef = $GET->Get($domain);
... [truncated, 36 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexerV0.1.pl",
"description": "Perl module for torrentindexerV0.1",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "2.5 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexerV0.1.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexerV02.1.pl (Perl) 8.3 KB 2006-10-30
Perl module for torrentindexerV02.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
system("clear");
# lade immer alle module -> error checking
use strict;
use IO::Handle;
use Data::Dumper;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
use TorrentIndexer::CHECKSUM::CheckSum;
use TorrentIndexer::TIME::Time;
use TorrentIndexer::HTML::HtmlParser;
use TorrentIndexer::CRYPTO::CryptoLibrary;
use TorrentIndexer::CRYPTO::SecureHashGenerator;
use TorrentIndexer::HTTP::RobotRules;
use TorrentIndexer::LINK::LinkDept;
use TorrentIndexer::LINK::IsSameLink;
use TorrentIndexer::BITTORRENT::Bittorrent;
# my $MainUrlToScan = "http://www.zoozle.net/zoozle.php?q=test&s=bittorrent&l=de";
# my $MainUrlToScan = "http://www.zoozle.net/links.html";
# my $MainUrlToScan = "http://eselfilme.com/parents/home.htm";
# my $MainUrlToScan = "http://fenopy.com/rss.xml?row=10&cat=5&type=2";
# my $MainUrlToScan = "http://www.p2p-blog.de/feed/";
# my $MainUrlToScan = "http://torrent.to/torrent/upload/serien/713/150713/1308-www.torrent.to...CSI.Miami.S04E08.Wunschmoerder.German.Dubbed.DVDRiP.WS.XviD-TvR.torrent";
# my $MainUrlToScan = "http://www.freesexypics.de.vu";
# my $MainUrlToScan = "http://www.zoozle.net/zoozle/information.html";
... [truncated, 237 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexerV02.1.pl",
"description": "Perl module for torrentindexerV02.1",
"dateModified": "2006-10-30",
"dateCreated": "2025-03-23",
"contentSize": "8.3 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexerV02.1.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexerV02.pl (Perl) 8.1 KB 2006-10-30
Perl module for torrentindexerV02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
system("clear");
# lade immer alle module -> error checking
use strict;
use IO::Handle;
use Data::Dumper;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
use TorrentIndexer::CHECKSUM::CheckSum;
use TorrentIndexer::TIME::Time;
use TorrentIndexer::HTML::HtmlParser;
use TorrentIndexer::CRYPTO::CryptoLibrary;
use TorrentIndexer::CRYPTO::SecureHashGenerator;
use TorrentIndexer::HTTP::RobotRules;
use TorrentIndexer::LINK::LinkDept;
use TorrentIndexer::LINK::IsSameLink;
use TorrentIndexer::BITTORRENT::Bittorrent;
# my $MainUrlToScan = "http://www.zoozle.net/zoozle.php?q=test&s=bittorrent&l=de";
# my $MainUrlToScan = "http://www.zoozle.net/links.html";
# my $MainUrlToScan = "http://eselfilme.com/parents/home.htm";
# my $MainUrlToScan = "http://fenopy.com/rss.xml?row=10&cat=5&type=2";
# my $MainUrlToScan = "http://www.p2p-blog.de/feed/";
# my $MainUrlToScan = "http://torrent.to/torrent/upload/serien/713/150713/1308-www.torrent.to...CSI.Miami.S04E08.Wunschmoerder.German.Dubbed.DVDRiP.WS.XviD-TvR.torrent";
# my $MainUrlToScan = "http://www.freesexypics.de.vu";
# my $MainUrlToScan = "http://www.zoozle.net/zoozle/information.html";
... [truncated, 230 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexerV02.pl",
"description": "Perl module for torrentindexerV02",
"dateModified": "2006-10-30",
"dateCreated": "2025-03-23",
"contentSize": "8.1 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexerV02.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexerV03.pl (Perl) 8.3 KB 2006-10-31
Perl module for torrentindexerV03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
system("clear");
# lade immer alle module -> error checking
use strict;
use IO::Handle;
use Data::Dumper;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
use TorrentIndexer::CHECKSUM::CheckSum;
use TorrentIndexer::TIME::Time;
use TorrentIndexer::HTML::HtmlParser;
use TorrentIndexer::CRYPTO::CryptoLibrary;
use TorrentIndexer::CRYPTO::SecureHashGenerator;
use TorrentIndexer::HTTP::RobotRules;
use TorrentIndexer::LINK::LinkDept;
use TorrentIndexer::LINK::IsSameLink;
use TorrentIndexer::BITTORRENT::Bittorrent;
# my $MainUrlToScan = "http://www.zoozle.net/zoozle.php?q=test&s=bittorrent&l=de";
# my $MainUrlToScan = "http://www.zoozle.net/links.html";
# my $MainUrlToScan = "http://eselfilme.com/parents/home.htm";
# my $MainUrlToScan = "http://fenopy.com/rss.xml?row=10&cat=5&type=2";
# my $MainUrlToScan = "http://www.p2p-blog.de/feed/";
# my $MainUrlToScan = "http://torrent.to/torrent/upload/serien/713/150713/1308-www.torrent.to...CSI.Miami.S04E08.Wunschmoerder.German.Dubbed.DVDRiP.WS.XviD-TvR.torrent";
# my $MainUrlToScan = "http://www.freesexypics.de.vu";
# my $MainUrlToScan = "http://www.zoozle.net/zoozle/information.html";
... [truncated, 241 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexerV03.pl",
"description": "Perl module for torrentindexerV03",
"dateModified": "2006-10-31",
"dateCreated": "2025-03-23",
"contentSize": "8.3 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexerV03.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrentindexerV04.pl (Perl) 8.3 KB 2006-11-04
Perl module for torrentindexerV04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
#########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
#############
###### run from path: /root/zoozle/indexer/GenerellSpider
#############
# perl -MCPAN -e 'force install "XML::TreePP"'
# perl -MCPAN -e 'force install "APR::URI"'
system("clear");
# lade immer alle module -> error checking
use strict;
use IO::Handle;
use Data::Dumper;
use TorrentIndexer::HTTP::Get;
use TorrentIndexer::HTTP::Head;
use TorrentIndexer::LINK::Extractor;
use TorrentIndexer::CHECKSUM::CheckSum;
use TorrentIndexer::TIME::Time;
use TorrentIndexer::HTML::HtmlParser;
use TorrentIndexer::CRYPTO::CryptoLibrary;
use TorrentIndexer::CRYPTO::SecureHashGenerator;
use TorrentIndexer::HTTP::RobotRules;
use TorrentIndexer::LINK::LinkDept;
use TorrentIndexer::LINK::IsSameLink;
use TorrentIndexer::BITTORRENT::Bittorrent;
# my $MainUrlToScan = "http://www.zoozle.net/zoozle.php?q=test&s=bittorrent&l=de";
# my $MainUrlToScan = "http://www.zoozle.net/links.html";
# my $MainUrlToScan = "http://eselfilme.com/parents/home.htm";
# my $MainUrlToScan = "http://fenopy.com/rss.xml?row=10&cat=5&type=2";
# my $MainUrlToScan = "http://www.p2p-blog.de/feed/";
my $MainUrlToScan = "http://torrent.to/torrent/upload/serien/713/150713/1308-www.torrent.to...CSI.Miami.S04E08.Wunschmoerder.German.Dubbed.DVDRiP.WS.XviD-TvR.torrent";
# my $MainUrlToScan = "http://www.freesexypics.de.vu";
# my $MainUrlToScan = "http://www.zoozle.net/zoozle/information.html";
... [truncated, 253 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrentindexerV04.pl",
"description": "Perl module for torrentindexerV04",
"dateModified": "2006-11-04",
"dateCreated": "2025-03-23",
"contentSize": "8.3 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentindexerV04.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
BitTorrent/
(5 files) 🐪 BDecode-beautyfied.pm (Perl) 2.4 KB 2006-10-24
Perl module for BDecode beautyfied
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #########################################
##### Author: Sebastian Enger / B.Sc
##### CopyRight: Sebastian Enger
##### LastModified 16.07.2006
##### Function:
##### Todo:
########################################
# - Based on vesion 0.1.0.3-BETA of TorrentSpy from http://torrentspy.sf.net/
# Original copyright unknown, SourceForge claims "MIT License"
package TorrentIndexer::BITTORRENT::BDecode;
use Carp;
use strict;
sub bdecode() {
my ($dataref) = shift;
my $p = 0;
if ( ref($dataref) ne 'SCALAR') {
return benc_parse_hash(\$dataref,\$p);
} elsif ( ref($dataref) eq 'SCALAR') {
return benc_parse_hash($dataref,\$p);
};
}; # sub bdecode
sub benc_parse_hash() {
my $data = shift;
my $p = shift;
my $c = substr(${$data},${$p},1);
my $r = undef;
if($c eq 'd') { # hash
# print "Found a hash\n";
%{$r} = ();
++${$p};
while((${$p} < length(${$data})) && (substr(${$data}, ${$p}, 1) ne 'e')) {
my $k = benc_parse_string($data, $p);
my $start = ${$p};
$r->{'_' . $k . '_start'} = ${$p} if($k eq 'info');
my $v = benc_parse_hash($data, $p);
$r->{'_' . $k . '_length'} = ($$p - $start) if($k eq 'info');
... [truncated, 75 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "BDecode-beautyfied.pm",
"description": "Perl module for BDecode beautyfied",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "2.4 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BitTorrent/BDecode-beautyfied.pm",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 BDecode.pm (Perl) 2.2 KB 2006-10-24
Perl module for BDecode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | # - Based on vesion 0.1.0.3-BETA of TorrentSpy from http://torrentspy.sf.net/
# Original copyright unknown, SourceForge claims "MIT License"
package TorrentIndexer::BITTORRENT::BDecode;
use Carp;
use base 'Exporter';
use strict;
our @EXPORT_OK = qw(bdecode);
sub bdecode {
my ($dataref) = @_;
unless(ref($dataref) eq 'SCALAR') {
die('Function bdecode takes a scalar ref!');
} # unless
my $p = 0;
return benc_parse_hash($dataref,\$p);
} # sub bdecode
sub benc_parse_hash {
my ($data, $p) = @_;
my $c = substr($$data,$$p,1);
my $r = undef;
if($c eq 'd') { # hash
# print "Found a hash\n";
%{$r} = ();
++$$p;
while(($$p < length($$data)) && (substr($$data, $$p, 1) ne 'e')) {
my $k = benc_parse_string($data, $p);
my $start = $$p;
$r->{'_' . $k . '_start'} = $$p if($k eq 'info');
my $v = benc_parse_hash($data, $p);
$r->{'_' . $k . '_length'} = ($$p - $start) if($k eq 'info');
# print "\t{$k} => $v\n";
$r->{$k} = $v;
} # while
++$$p;
# print "End of Hash\n";
} elsif($c eq 'l') { # list
@{$r} = \();
++$$p;
# print "Found a list\n";
while(substr($$data, $$p, 1) ne 'e') {
push(@{$r},benc_parse_hash($data, $p));
# print "\t[@{$r}] = $$r[-1]\n";
} # while
++$$p;
} elsif($c eq 'i') { # number
$r = 0;
my $c;
++$$p;
... [truncated, 38 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "BDecode.pm",
"description": "Perl module for BDecode",
"dateModified": "2006-10-24",
"dateCreated": "2025-03-23",
"contentSize": "2.2 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BitTorrent/BDecode.pm",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 BDecode1.pm (Perl) 2.1 KB 2003-06-15
Perl module for BDecode1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | # - Based on vesion 0.1.0.3-BETA of TorrentSpy from http://torrentspy.sf.net/
# Original copyright unknown, SourceForge claims "MIT License"
package BitTorrent::BDecode;
use Carp;
use base 'Exporter';
use strict;
our @EXPORT_OK = qw(bdecode);
sub bdecode {
my ($dataref) = @_;
unless(ref($dataref) eq 'SCALAR') {
die('Function bdecode takes a scalar ref!');
} # unless
my $p = 0;
return benc_parse_hash($dataref,\$p);
} # sub bdecode
sub benc_parse_hash {
my ($data, $p) = @_;
my $c = substr($$data,$$p,1);
my $r = undef;
if($c eq 'd') { # hash
# print "Found a hash\n";
%{$r} = ();
++$$p;
while(($$p < length($$data)) && (substr($$data, $$p, 1) ne 'e')) {
my $k = benc_parse_string($data, $p);
my $start = $$p;
$r->{'_' . $k . '_start'} = $$p if($k eq 'info');
my $v = benc_parse_hash($data, $p);
$r->{'_' . $k . '_length'} = ($$p - $start) if($k eq 'info');
# print "\t{$k} => $v\n";
$r->{$k} = $v;
} # while
++$$p;
# print "End of Hash\n";
} elsif($c eq 'l') { # list
@{$r} = \();
++$$p;
# print "Found a list\n";
while(substr($$data, $$p, 1) ne 'e') {
push(@{$r},benc_parse_hash($data, $p));
# print "\t[@{$r}] = $$r[-1]\n";
} # while
++$$p;
} elsif($c eq 'i') { # number
$r = 0;
my $c;
++$$p;
... [truncated, 38 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "BDecode1.pm",
"description": "Perl module for BDecode1",
"dateModified": "2003-06-15",
"dateCreated": "2025-03-23",
"contentSize": "2.1 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BitTorrent/BDecode1.pm",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 Bencode-unimportant.pm (Perl) 4.1 KB 2006-10-23
Perl module for Bencode unimportant
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -w
package Convert::Bencode;
# package BitTorrent::BDecode;
=head1 NAME
Convert::Bencode - Functions for converting to/from bencoded strings
=head1 SYNOPSIS
use Convert::Bencode qw(bencode bdecode);
my $string = "d4:ainti12345e3:key5:value4:type4:teste";
my $hashref = bdecode($string);
foreach my $key (keys(%{$hashref})) {
print "Key: $key, Value: ${$hashref}{$key}\n";
}
my $encoded_string = bencode($hashref);
print $encoded_string."\n";
=head1 DESCRIPTION
This module provides two functions, C<bencode> and C<bdecode>, which
encode and decode bencoded strings respectivly.
=head2 Encoding
C<bencode()> expects to be passed a single value, which is either a scalar,
a arrary ref, or a hash ref, and it returns a scalar containing the bencoded
representation of the data structure it was passed. If the value passed was
a scalar, it returns either a bencoded string, or a bencoded integer (floating
points are not implemented, and would be returned as a string rather than a
integer). If the value was a array ref, it returns a bencoded list, with all
the values of that array also bencoded recursivly. If the value was a hash ref,
it returns a bencoded dictionary (which for all intents and purposes can be
thought of as a synonym for hash) containing the recursivly bencoded key and
value pairs of the hash.
=head2 Decoding
C<bdecode()> expects to be passed a single scalar containing the bencoded string
to be decoded. Its return value will be either a hash ref, a array ref, or a
scalar, depending on whether the outer most element of the bencoded string
was a dictionary, list, or a string/integer respectivly.
=head1 SEE ALSO
... [truncated, 125 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "Bencode-unimportant.pm",
"description": "Perl module for Bencode unimportant",
"dateModified": "2006-10-23",
"dateCreated": "2025-03-23",
"contentSize": "4.1 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BitTorrent/Bencode-unimportant.pm",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 Bencode.pm (Perl) 4.1 KB 2006-10-23
Perl module for Bencode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -w
package Convert::Bencode;
# package BitTorrent::BDecode;
=head1 NAME
Convert::Bencode - Functions for converting to/from bencoded strings
=head1 SYNOPSIS
use Convert::Bencode qw(bencode bdecode);
my $string = "d4:ainti12345e3:key5:value4:type4:teste";
my $hashref = bdecode($string);
foreach my $key (keys(%{$hashref})) {
print "Key: $key, Value: ${$hashref}{$key}\n";
}
my $encoded_string = bencode($hashref);
print $encoded_string."\n";
=head1 DESCRIPTION
This module provides two functions, C<bencode> and C<bdecode>, which
encode and decode bencoded strings respectivly.
=head2 Encoding
C<bencode()> expects to be passed a single value, which is either a scalar,
a arrary ref, or a hash ref, and it returns a scalar containing the bencoded
representation of the data structure it was passed. If the value passed was
a scalar, it returns either a bencoded string, or a bencoded integer (floating
points are not implemented, and would be returned as a string rather than a
integer). If the value was a array ref, it returns a bencoded list, with all
the values of that array also bencoded recursivly. If the value was a hash ref,
it returns a bencoded dictionary (which for all intents and purposes can be
thought of as a synonym for hash) containing the recursivly bencoded key and
value pairs of the hash.
=head2 Decoding
C<bdecode()> expects to be passed a single scalar containing the bencoded string
to be decoded. Its return value will be either a hash ref, a array ref, or a
scalar, depending on whether the outer most element of the bencoded string
was a dictionary, list, or a string/integer respectivly.
=head1 SEE ALSO
... [truncated, 125 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "Bencode.pm",
"description": "Perl module for Bencode",
"dateModified": "2006-10-23",
"dateCreated": "2025-03-23",
"contentSize": "4.1 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/BitTorrent/Bencode.pm",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
torrentgrabber/
(4 files) 🐪 SQLAddToDB.pl (Perl) 2.8 KB 2006-11-17
Perl module for SQLAddToDB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl
require "functions.pl";
use DBI();
$drh = DBI->install_driver("mysql");
my $DBHOST = "localhost";
my $DBNAME = "zoozle";
my $DBUSER = "zoozle";
my $DBPASS = "zoozle23!99";
my $dbh = DBI->connect("DBI:mysql:database=$DBNAME;host=$DBHOST", "$DBUSER", "$DBPASS", {'RaiseError' => 0});
my $AddFile = $ARGV[0];
&add_content_toSQLDB($AddFile);
&add_content_toREALSQLDB($AddFile);
$dbh->disconnect;
sub add_content_toSQLDB() {
my $filename = shift;
my $date = &getDATE();
open(RH1,"<$filename") or die "$! - $filename \n";
foreach (<RH1>) {
my ( $cat, $desc, $link ) = split('#', $_);
$link =~ s/LINK=//;
$desc =~ s/DESC=//;
$cat =~ s/CATE=//;
next if ( $_ !~ /^CATE=/ );
next if ( $_ =~ /Torrent does not exist/ig );
next if ( $link =~ /megawerbung/);
next if ( $desc =~ /<img/ig );
$cat = &deleteSpecialChars($cat);
$desc = &deleteSpecialChars($desc);
$count++;
$desc =~ s/&+(\w)+;/ /i;
$desc =~ s/&#+(\w)+;/ /i;
$desc =~ s/&+(\d)+;/ /i;
$desc =~ s/&#+(\d)+;/ /i;
... [truncated, 90 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "SQLAddToDB.pl",
"description": "Perl module for SQLAddToDB",
"dateModified": "2006-11-17",
"dateCreated": "2025-03-23",
"contentSize": "2.8 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentgrabber/SQLAddToDB.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 fenopygrabber.pl (Perl) 2.7 KB 2006-11-17
Perl module for fenopygrabber
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
use IO::Handle;
# SELECT * FROM `torrent7` WHERE `LINK` LIKE ('http://fenopy.com%')
my $CatLanguage = "en";
my $StartUrl = "http://fenopy.com/";
my (undef,undef,$Hostname,undef) = split('/', $StartUrl);
my $CachePath = "/root/zoozle/indexer/torrentindexer/cache";
my $TorrentStoreFlatFile = "$CachePath/$Hostname-torrent.txt";
my $LinkScannedFile = "$CachePath/$Hostname-alreadyscannedlinks.txt";
my $LinksToScan = "$CachePath/$Hostname-linksToScan.txt";
my $TorrentPath = "/root/zoozle/indexer/torrentindexer/torrentgrabber/torrents"; # later check if dir exits if not create, siehe client.pm easyspider
my $FinalTorrentFile = "$TorrentPath/$Hostname-finaltorrents.txt";
mkdir $TorrentPath;
open(TORRENT,">$FinalTorrentFile") or die;
TORRENT->autoflush(1);
TORRENT->blocking(0);
binmode TORRENT, ":utf8";
flock(TORRENT, 2);
open(RH,"<$LinksToScan") or die;
while(<RH>){
my ( $LinkDesc, $ParentLink, $LinkName ) = split(' ### ', $_);
# if ( $ParentLink =~ /http:\/\/fenopy.com\/torrent\//i ) {
# print "LinkDesc: $LinkDesc\n";
# print "Linkname: $ParentLink\n";
# print "\n\n";
# sleep 1;
# };
# CATE=en#DESC=Read or Die - OVA (GermanDub)#LINK=http://www.mininova.org/tor/471390
if ( $LinkName =~ /http:\/\/fenopy.com\/torrent\//i ) {
if ( $LinkDesc =~ /\[img\]/i) {
my (undef,undef,undef,undef, $Raw,undef,undef) = split('/', $LinkName);
#print "LinkDesc: " . chomp(delteSpecialChars($Raw)) . "\n";
my $DESC = &delteSpecialChars($Raw);
chomp($DESC); chomp($LinkName);
$DESC =~ s/#\s//;
print TORRENT "CATE=en#DESC=$DESC#LINK=$LinkName\n" if ( $LinkName =~ /index\.html/i );
$count++ if ( $LinkName =~ /index\.html/i );
... [truncated, 49 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "fenopygrabber.pl",
"description": "Perl module for fenopygrabber",
"dateModified": "2006-11-17",
"dateCreated": "2025-03-23",
"contentSize": "2.7 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentgrabber/fenopygrabber.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 functions.pl (Perl) 7.9 KB 2006-10-22
Perl module for functions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request;
use Tie::File;
$PROXYTMP = "proxy.tmp.txt";
$PROXYGO = "proxy.working.txt";
$TESTURL = "http://www.zoozle.net/zoozle/information.html";
$UA = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; YPC 3.0.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
############# Subroutine zum erstellen eines HTTP Requestes:Start
# Aufgabe: &http_get - erstelle und sende http request an bergebene url
# Rckgabe: content der angefragten uri/url
sub http_get() {
my ($url, $timeout, $useragent, $proxy) = @_;
my $UA = LWP::UserAgent->new( keep_alive => 1 );
$UA->agent($useragent);
$UA->timeout($timeout);
$UA->max_size(950_000);
#$UA->proxy(["http"], "http://$proxy") if ($proxy ne '');
my $jar_jar = HTTP::Cookies->new
(file => ".Cookies" || ".Cookies.txt",
autosave => 1,
max_cookie_size => 40960,
max_cookies_per_domain => 10000, );
$UA->cookie_jar($jar_jar );
my $req = HTTP::Request->new(GET => $url);
# Pass request to the user agent and get a response back
$req->referer($url);
my $res = $UA->request($req);
if ($res->is_success) {
return $res->content;
} else {
#return "<html><body> Spider::Easyspider::http_get(): " . $res->status_line . "</body></html>";
return 0;
};
}; # sub http_get {}
############# Subroutine zum erstellen eines HTTP Requestes:Ende
... [truncated, 253 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "functions.pl",
"description": "Perl module for functions",
"dateModified": "2006-10-22",
"dateCreated": "2025-03-23",
"contentSize": "7.9 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentgrabber/functions.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}
🐪 torrenttograbber.pl (Perl) 4.0 KB 2006-11-17
Perl module for torrenttograbber
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/perl -Imodules
use IO::Handle;
# SELECT * FROM `torrent7` WHERE `LINK` LIKE ('http://fenopy.com%')
my $CatLanguage = "de";
my $StartUrl = "http://torrent.to/";
my (undef,undef,$Hostname,undef) = split('/', $StartUrl);
my $CachePath = "/root/zoozle/indexer/torrentindexer/cache";
my $TorrentStoreFlatFile = "$CachePath/$Hostname-torrent.txt";
my $LinkScannedFile = "$CachePath/$Hostname-alreadyscannedlinks.txt";
my $LinksToScan = "$CachePath/$Hostname-linksToScan.txt";
my $TorrentPath = "/root/zoozle/indexer/torrentindexer/torrentgrabber/torrents"; # later check if dir exits if not create, siehe client.pm easyspider
my $FinalTorrentFile = "$TorrentPath/$Hostname-finaltorrents.txt";
mkdir $TorrentPath;
open(TORRENT,">$FinalTorrentFile") or die;
TORRENT->autoflush(1);
TORRENT->blocking(0);
binmode TORRENT, ":utf8";
flock(TORRENT, 2);
open(RH,"<$LinksToScan") or die;
while(<RH>){
my ( $LinkDesc, $ParentLink, $LinkName ) = split(' ### ', $_);
# http://torrent.to/torrent/upload/moviez/539/154539/555-www.torrent.to...DasLebendesBrian.torrent
# if ( $LinkName =~ /http:\/\/torrent\.to\/torrent\/upload\//i && $LinkName =~ /(\w)+\.torrent/i ) {
# my $Reverse = reverse($LinkName);
# if ( $Reverse =~ /^tnerrot\./i ) {
if ( $LinkName =~ /http:\/\/torrent\.to\/torrent\/upload\//i && $LinkName =~ /(\w)+\.torrent/i ) {
my $Raw;
my ( undef, $Raw) = split('\.\.\.', $LinkName);
$Raw =~ s/\.torrent//gi;
$Raw =~ s/\d+-+\d+-//ig;
$Raw =~ s/^\.//og; $Raw =~ s/^\.//og; $Raw =~ s/^\.//og; $Raw =~ s/^\.//og; $Raw =~ s/^\.//og;
my @FileName = split('', $Raw);
my $FileNameCount = 0;
my $output;
... [truncated, 96 more lines] ...
|
{
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
"name": "torrenttograbber.pl",
"description": "Perl module for torrenttograbber",
"dateModified": "2006-11-17",
"dateCreated": "2025-03-23",
"contentSize": "4.0 KB",
"contentUrl": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/torrentgrabber/torrenttograbber.pl",
"encodingFormat": "text/x-perl",
"programmingLanguage": {
"@type": "ComputerLanguage",
"name": "Perl"
},
"codeRepository": "https://www.artikelschreiber.com/opensource/torrentrage/torrentrage/torrentbot/example/"
}