| WWW-BookBot documentation | Contained in the WWW-BookBot distribution. |
WWW::BookBot::Chinese::Novel::DragonSky - Bot to fetch from http://www.dragonsky.net
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
Bot to fetch from http://www.dragonsky.net
Bot to fetch from http://www.dragonsky.net
None by default.
Please report any requests, suggestions or bugs via http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-BookBot
Qing-Jie Zhou <qjzhou@hotmail.com>
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__