root/lang/perl/WWW-Slmame/trunk/lib/WWW/Slmame.pm @ 24639

Revision 24639, 2.5 kB (checked in by haoyayoi, 4 years ago)

initial import

Line 
1package WWW::Slmame;
2
3use strict;
4use warnings;
5use utf8;
6use Encode;
7use Encode::Guess qw/shift-jis euc-jp 7bit-jis/;
8use WWW::Mechanize;
9use Data::Dumper;
10use Carp qw(croak);
11our $VERSION = '0.01';
12
13sub new{
14    my $class = shift;
15    my %args  = @_;
16    $args{'wm'}        = WWW::Mechanize->new(autocheck => 1);
17    $args{'site_root'} = 'http://slmame.com';
18    return bless {%args}, $class;
19}
20
21sub _login{
22    my $self = shift;
23    $self->{wm}->get("$self->{site_root}");
24    my $post = {
25        login_id   => $self->{id},
26        login_pass => $self->{pass},
27        action     => 'login',
28    };
29    $self->{wm}->post("$self->{site_root}/admin/login.php",$post);
30}
31
32sub blog_select{
33    my $self = shift;
34    $self->_login();
35    $self->{wm}->submit_form(
36        form_number => $self->{blog},
37        button      => "submit_entry",
38    );
39}
40
41sub _decode_utf8{
42    my $self    = shift;
43    my $message = $self->{message};
44    my $decodes = Encode::Guess->guess($message);
45    ref($decodes) || die "Can't guess: $decodes";
46    return decode($decodes->name, $message);
47}
48
49sub update{
50    my $self    = shift;
51    my $message = $self->_decode_utf8($self->{message});
52    my $title   = $self->_decode_utf8($self->{title});
53    $self->{wm}->set_fields(
54        entry_title     => $title,
55        entry_body      => $message,
56        entry_body_more => '',
57    );
58    $self->{wm}->click_button(value => "確 認");
59    $self->{wm}->click_button(value => "登録する");
60}
61
621;
63__END__
64
65=head1 NAME
66
67WWW::Slmame - slmame client for perl.
68
69=head1 SYNOPSIS
70
71  use WWW::Slmame;
72  my $slmame = WWW::Slmame->new(
73    id      => 'your login ID',
74    pass    => 'your login Password',
75    blog    => 'target blog index',
76    title   => 'entry title',
77    message => 'entry body',
78  );
79  $slmame->blog_select();
80  $slmame->update();
81
82=head1 DESCRIPTION
83
84WWW::Slmame is slmame client for perl.
85
86=head1 AUTHOR
87
88Soshi Tamura, E<lt>st.hao.yayoi@gmail.comE<gt>
89
90=head1 SEE ALSO
91
92L<http://slmame.com/>
93
94=head1 LICENSE
95
96This library is free software; you can redistribute it and/or modify
97it under the same terms as Perl itself.
98
99=over 13
100
101=item new()
102Initial method.
103
104=item blog_select()
105Select Blog that write entries.
106
107=item update()
108Update entry.
109
110=item id
111Slmame login id. Required.
112
113=item pass
114Slmame login pass. Required.
115
116=item blog
117Slmame blog index. Required.
118
119=item title
120Slmame blog entry's title. Required.
121
122=item message
123Slmame blog entry's message. Required.
124
125=item more
126Optional. Slmame blog entry's more message.
127
128=cut
Note: See TracBrowser for help on using the browser.