sub
initialize {
my
$self
=
shift
;
$self
->SUPER::initialize;
$self
->{
defined
}{ArchiveName} =
'Python'
;
$self
->{
defined
}{VersionForm} =
'\d\.\d(\.\d)?'
;
$self
->{
defined
}{Extension} =
'tgz'
;
$self
->{
defined
}{VersionList} = \
&set_versionlist
;
$self
->{
defined
}{URL} = \
&set_url
;
$self
->{
defined
}{TestAction} =
'test'
;
return
$self
;
}
sub
set_versionlist {
my
$attributes
=
shift
;
my
$first_html
= Enbld::HTTP->get_html(
$attributes
->IndexSite );
my
$first_list
=
$first_html
->parse_version(
quotemeta
(
'<a href="'
) .
'\d\.\d(\.\d)?'
.
quotemeta
(
'/">'
),
'\d\.\d(\.\d)?'
);
my
$versionlist
;
for
my
$ver_num
( @{
$first_list
} ) {
my
$url
=
$attributes
->IndexSite .
$ver_num
;
my
$html
= Enbld::HTTP->get_html(
$url
);
my
$list
=
$html
->parse_version(
quotemeta
(
'<a href="Python-'
) .
'\d\.\d(\.\d)?'
.
quotemeta
(
'.tgz'
) .
quotemeta
(
'">'
) .
quotemeta
(
'Python-'
) .
'\d\.\d(\.\d)?'
.
quotemeta
(
'.tgz</a>'
),
'\d\.\d(\.\d)?'
);
if
(
$list
) {
push
@{
$versionlist
},
$ver_num
;
}
}
return
$versionlist
;
}
sub
set_url {
my
$attributes
=
shift
;
my
$ver
=
$attributes
->Version;
my
$filename
=
$attributes
->Filename;
my
$url
=
$attributes
->DownloadSite .
$ver
.
'/'
.
$filename
;
return
$url
;
}
1;