Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use LWP::UserAgent;
- use CGI;
- #html2dat.pl?bbs=software&server=anago&domain=2ch.net&key=1424024569
- my $ua = LWP::UserAgent->new(agent => "Monazilla 1.0");
- my $q = CGI->new;
- my $bbs = $q->param("bbs");
- my $key = $q->param("key");
- my $svr = $q->param("server");
- my $dom = $q->param("domain") || "";
- if($dom eq "") {
- $dom = "2ch.net";
- }
- if($svr =~ /^([^\.]*)\.(.*)$/g){
- $svr = $1;
- $dom = $2;
- }
- my $url = "http://$svr.$dom/test/read.cgi/$bbs/$key/";
- print "Content-Type: text/plain; charset=Shift-JIS\n\n";
- my $dl = &download("$url");
- if($dl->code == 200){
- if($dl->content !~ /http:\/\/find.2ch.net\/faq\/faq2.php/m){
- if(&htmlToDat($dl->content) != 0){
- exit;
- }
- }
- }
- exit;
- sub download{
- my $url = shift;
- my $request = HTTP::Request->new(GET => "$url");
- my $response = $ua->simple_request($request);
- return $response;
- }
- sub htmlToDat{
- my $dat = "";
- my $html = shift;
- my @lines = split(/\n/, $html);
- my $isTitle = 0;
- my $title = "";
- my $resNo = 0;
- foreach my $line (@lines){
- if($line =~ /\<div class\=\"ad\-\-right\"\>/){
- next;
- }
- if($line =~ /\<title\>(.*)\<\/title\>/){
- $title = $1;
- #print "$title";
- }
- if($line =~ /\<dl class=\"thread\"\>/){
- $isTitle = 1;
- next;
- }
- if(!$isTitle){ next; }
- if($line =~ /\<dt\>.+\<a href=\"(.+)\"\>(.+)\<\/a\>..(.+)\<dd\>(.+)\<br\>\<br\>/){
- my $mail = "$1";
- my $name = "$2";
- my $date = "$3";
- my $body = "$4";
- $name =~ s/<b>(.+)<\/b>/$1/g;
- $body =~ s/http:\/\/jump\.2ch\.net\/?(.+)\"/http:\/\/$1\"/g;
- $body =~ s/<a href="(.+:\/\/.+)".+>(.+)<\/a>/$2/g;
- $body =~ s/>/>/g;
- $body =~ s/</</g;
- $body =~ s/"/"/g;
- if($mail =~ /mailto\:(.*)/){
- $mail = "$1";
- }
- if($mail =~ /email\-protection\#(.*)$/){
- # FUCK 2CH
- my $ep = "$1";
- my $r = hex(substr($ep, 0, 2));
- my $j = 2;
- for($j = 2; length($ep) > $j && substr($ep, $j, 1) ne "X"; $j += 2){
- my $t = chr(hex(substr($ep, $j, 2)) ^ $r);
- $mail .= $t;
- }
- }
- print "$name<>$mail<>$date<>$body<>";
- if($resNo == 0){ print "$title"; }
- $resNo++;
- print "\n";
- }
- if($line =~ /<dt>.+<font color=green>(.+)<\/font>..(.+)<dd>(.+)<br><br>/){
- my $name = "$1";
- my $date = "$2";
- my $body = "$3";
- $name =~ s/<b>(.+)<\/b>/$1/g;
- $body =~ s/https?:\/\/jump\.2ch\.net\/?(.+)\"/http:\/\/$1\"/g;
- $body =~ s/<a href="(.+:\/\/.+)" .+>(.+)<\/a>/$2/g;
- print "$name<><>$date<>$body<>";
- if($resNo == 0){ print "$title"; }
- $resNo++;
- print "\n";
- }
- }
- return $resNo;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement