WWW::BookBot::Chinese::Novel::DragonSky - Bot to fetch from http://www.dragonsky.net


WWW-BookBot documentation Contained in the WWW-BookBot distribution.

Index


Code Index:

NAME

Top

WWW::BookBot::Chinese::Novel::DragonSky - Bot to fetch from http://www.dragonsky.net

SYNOPSIS

Top

  use WWW::BookBot::Chinese::Novel::DragonSky;
  my $bot=WWW::BookBot::Chinese::Novel::DragonSky->new({work_dir=>'/output'});
  $bot->go_catalog({cat=>'¾üÊÂ'});

  bookbot --bot=dragonsky ¾üÊÂ
  bookbot --bot=dragonsky all

ABSTRACT

Top

Bot to fetch from http://www.dragonsky.net

DESCRIPTION

Top

Bot to fetch from http://www.dragonsky.net

EXPORT

None by default.

BUGS, REQUESTS, COMMENTS

Top

Please report any requests, suggestions or bugs via http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-BookBot

AUTHOR

Top

Qing-Jie Zhou <qjzhou@hotmail.com>

SEE ALSO

Top

WWW::BookBot, bookbot


WWW-BookBot documentation Contained in the WWW-BookBot distribution.

package WWW::BookBot::Chinese::Novel::DragonSky;

use 5.008;
use strict;
use warnings;
no warnings qw(uninitialized);
use base qw(WWW::BookBot::Chinese);
our $VERSION='1.02';

sub default_settings {
	my $self = shift->SUPER::default_settings;
	$self->{text_paragraph_type}='br';
	$self->{book_has_chapters}=0;
	$self;
}
sub msg_init {
	my $self = shift;
	my $msg=$self->SUPER::msg_init;
	$msg->{CatalogURL}='http://www.dragonsky.net/readbook/booklist.asp?sort=$pargs->{cat}';
	$msg->{CatalogInfo}='==>$pargs->{cat}£º';
}

sub get_alias {
	'dragonsky';
}
sub argv_default {
	qw(cat=s);
}
sub argv_process {
	my ($self, $pargs)=@_;
	$pargs->{cat}='¾üÊÂ' if $pargs->{cat} eq '';
	$self->go_catalog($pargs);
}
sub argv_process_all {
	my ($self, $pargs)=@_;
	foreach (qw(ÎäÏÀ Ðþ»Ã ¿Æ»Ã ÎÄÒÕ ÀúÊ· ¾üÊ Õì̽ ÆÀÂÛ)) {
		my %args=%$pargs;
		$args{cat}=$_;
		$self->go_catalog(\%args);
	}
}
sub getpattern_catalog_get_bookargs_data {
	<<'DATA';
<tr><td width=230 align=left><a href=/bookhtml/([^/]*)/default\.html target=\_blank>([^<]*)</a></td><td width=150 align=left>([^<]*)</td><td width=150 align=left>([^<]*)</td><td width=70 align=left>(.*?)</td></tr>
DATA
}
sub catalog_get_bookargs {
	my $self = shift;
	my @a=@_;
	my $pargs=$a[0];
	$pargs->{id}=$a[1];
	$pargs->{url}="http://www.dragonsky.net/zip/zip".$pargs->{id}.".html";
	$pargs->{title}=$self->parse_titleen($a[2]);
	$pargs->{author}=$self->parse_titleen($a[3]);
	$pargs->{date}=$self->parse_titleen($a[4]);
	$pargs->{status}=$self->parse_titleen($a[5]);
	'OK';
}
sub getpattern_chapter_head_data {
	<<'DATA';
<b>ÁúµÄÌì¿Õ</b></font></a></p></blockquote>
DATA
}
sub getpattern_chapter_end_data {
	<<'DATA';
<hr>Copyright
DATA
}
sub parse_paragraph_begin {
	$_[1]=~s/<\/font><\/a><\/td>/<br>/sg;							#paragraph after TOC
	$_[1]=~s/<a name=[^<>]*><\/a>/<br> \$BOOKBOTRETURN\$<br>/sg;	#reserved return
}
sub book_finish {
	my ($self, $pargs)=@_;
	$self->result_add($pargs->{filename}, "\n\n¡¡¡¡($pargs->{status} : ¸üÐÂÓÚ$pargs->{date})");
}
sub result_filestem {
	my ($self, $pargs) = @_;
	my $year=3;
	my $month=1;
	if($pargs->{date}=~/^\d\d\d(\d)Äê(\d+)ÔÂ/) {
		$year=$1;
		$month=$2;
	}
	my $status='u';
	$status='t' if $pargs->{status} eq 'ÔÝÍ£';
	$status='l' if $pargs->{status} eq 'Á¬ÔØÖÐ';
	$status='w' if $pargs->{status} eq 'ÒÑÍê³É';
	return $self->string_limit($pargs->{author},4).
		$year.
		sprintf("%x",$month).
		$status.
		$pargs->{title};
}

1;
__END__