-# WWW::SourceForge.JP
-# by hylom
-# This code is under GPL.
-#
-
-use LWP;
-use HTTP::Cookies;
-use HTTP::Request::Common;
-use SourceForgeJP::Wiki;
-
-package WWW::SourceForgeJP;
-
-my $ua_string = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1';
-my $login_url = 'https://sourceforge.jp/account/login.php';
-my $logout_url = 'https://sourceforge.jp/account/logout.php';
-my $default_cookies = 'cookies.txt';
-
-sub new {
- my $class = shift @_;
- my $self = {
- 'useragent' => $ua_string,
- 'cookies_file' => $default_cookies,
- };
- return bless $self, $class;
-}
-
-# getter/setter
-sub useragent {
- my $self = shift @_;
- return $self->{useragent};
-}
-
-sub cookies_file {
- my $self = shift @_;
- return $self->{cookies_file};
-}
-
-sub _get_project_dir {
- my $self = shift @_;
- my $project = shift @_;
-
- return 'http://sourceforge.jp/projects/' . $project;
-}
-
-sub lwp_ua {
- my $self = shift @_;
-
- my $ua = LWP::UserAgent->new( 'agent' => $self->useragent, );
- my $cookie_jar = HTTP::Cookies->new( file => $self->cookies_file, autosave => 1, ignore_discard => 1, );
- $ua->cookie_jar( $cookie_jar );
-
- return $ua;
-}
-
-sub login {
- my $self = shift @_;
- my $login_name = shift @_;
- my $password = shift @_;
-
- my $ua = $self->lwp_ua;
-
- my $form_data = {
- 'return_to' => '/',
- 'login' => '1',
- 'form_loginname' => $login_name,
- 'form_pw' => $password,
- 'stay_in_ssl' => '1',
- };
- my $resp = $ua->post( $login_url, $form_data );
-
- if ( $resp->is_error ) {
- print $resp->as_string;
- return 0;
- } else {
- return 1;
- }
-
-}
-
-sub logout {
- my $self = shift @_;
-
- my $ua = $self->lwp_ua;
- $ua->get( $logout_url );
-}
-
-sub Wiki {
- my $self = shift @_;
-
- if ( ! defined $self->{_wiki} ) {
- $self->{_wiki} = WWW::SourceForgeJP::Wiki->new( $self );
- }
-
- return $self->{_wiki};
-}
-
-1;
-
+# WWW::SourceForge.JP\r
+# by hylom\r
+# This code is under GPL.\r
+#\r
+\r
+use LWP;\r
+use HTTP::Cookies;\r
+use HTTP::Request::Common;\r
+use SourceForgeJP::Wiki;\r
+\r
+package WWW::SourceForgeJP;\r
+\r
+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
+my $login_url = 'https://sourceforge.jp/account/login.php';\r
+my $logout_url = 'https://sourceforge.jp/account/logout.php';\r
+my $default_cookies = $ENV{"HOME"} . "/" . '.sfjp_cookies';\r
+\r
+sub new {\r
+ my $class = shift @_;\r
+ my $self = {\r
+ 'useragent' => $ua_string,\r
+ 'cookies_file' => $default_cookies,\r
+ };\r
+ return bless $self, $class;\r
+}\r
+\r
+# getter/setter\r
+sub useragent {\r
+ my $self = shift @_;\r
+ return $self->{useragent};\r
+}\r
+\r
+sub cookies_file {\r
+ my $self = shift @_;\r
+ return $self->{cookies_file};\r
+}\r
+\r
+sub _get_project_dir {\r
+ my $self = shift @_;\r
+ my $project = shift @_;\r
+\r
+ return 'http://sourceforge.jp/projects/' . $project;\r
+}\r
+\r
+sub lwp_ua {\r
+ my $self = shift @_;\r
+\r
+ my $ua = LWP::UserAgent->new( 'agent' => $self->useragent, );\r
+ my $cookie_jar = HTTP::Cookies->new( file => $self->cookies_file, autosave => 1, ignore_discard => 1, );\r
+ $ua->cookie_jar( $cookie_jar );\r
+\r
+ return $ua;\r
+}\r
+\r
+sub login {\r
+ my $self = shift @_;\r
+ my $login_name = shift @_;\r
+ my $password = shift @_;\r
+\r
+ my $ua = $self->lwp_ua;\r
+\r
+ my $form_data = {\r
+ 'return_to' => '/',\r
+ 'login' => '1',\r
+ 'form_loginname' => $login_name,\r
+ 'form_pw' => $password,\r
+ 'stay_in_ssl' => '1',\r
+ };\r
+ my $resp = $ua->post( $login_url, $form_data );\r
+\r
+ if ( $resp->is_error ) {\r
+ print $resp->as_string;\r
+ return 0;\r
+ } else {\r
+ return 1;\r
+ }\r
+\r
+}\r
+\r
+sub logout {\r
+ my $self = shift @_;\r
+\r
+ my $ua = $self->lwp_ua;\r
+ $ua->get( $logout_url );\r
+}\r
+\r
+sub Wiki {\r
+ my $self = shift @_;\r
+\r
+ if ( ! defined $self->{_wiki} ) {\r
+ $self->{_wiki} = WWW::SourceForgeJP::Wiki->new( $self );\r
+ }\r
+\r
+ return $self->{_wiki};\r
+}\r
+\r
+1;\r
+\r