1 # WWW::SourceForge.JP
\r
3 # This code is under GPL.
\r
8 use HTTP::Request::Common;
\r
9 use SourceForgeJP::Wiki;
\r
11 package WWW::SourceForgeJP;
\r
13 my $ua_string = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1';
\r
14 my $login_url = 'https://sourceforge.jp/account/login.php';
\r
15 my $logout_url = 'https://sourceforge.jp/account/logout.php';
\r
16 my $default_cookies = $ENV{"HOME"} . "/" . '.sfjp_cookies';
\r
19 my $class = shift @_;
\r
21 'useragent' => $ua_string,
\r
22 'cookies_file' => $default_cookies,
\r
24 return bless $self, $class;
\r
29 my $self = shift @_;
\r
30 return $self->{useragent};
\r
34 my $self = shift @_;
\r
35 return $self->{cookies_file};
\r
38 sub _get_project_dir {
\r
39 my $self = shift @_;
\r
40 my $project = shift @_;
\r
42 return 'http://sourceforge.jp/projects/' . $project;
\r
46 my $self = shift @_;
\r
48 my $ua = LWP::UserAgent->new( 'agent' => $self->useragent, );
\r
49 my $cookie_jar = HTTP::Cookies->new( file => $self->cookies_file, autosave => 1, ignore_discard => 1, );
\r
50 $ua->cookie_jar( $cookie_jar );
\r
56 my $self = shift @_;
\r
57 my $login_name = shift @_;
\r
58 my $password = shift @_;
\r
60 my $ua = $self->lwp_ua;
\r
65 'form_loginname' => $login_name,
\r
66 'form_pw' => $password,
\r
67 'stay_in_ssl' => '1',
\r
69 my $resp = $ua->post( $login_url, $form_data );
\r
71 if ( $resp->is_error ) {
\r
72 print $resp->as_string;
\r
81 my $self = shift @_;
\r
83 my $ua = $self->lwp_ua;
\r
84 $ua->get( $logout_url );
\r
88 my $self = shift @_;
\r
90 if ( ! defined $self->{_wiki} ) {
\r
91 $self->{_wiki} = WWW::SourceForgeJP::Wiki->new( $self );
\r
94 return $self->{_wiki};
\r