| | 121 | } |
|---|
| | 122 | |
|---|
| | 123 | sub aggregate_bbs_feed { |
|---|
| | 124 | my($self, $context, $type, $args) = @_; |
|---|
| | 125 | |
|---|
| | 126 | my $meth = $MAP->{$type}->{get_list}; |
|---|
| | 127 | my @msgs = $self->{mixi}->$meth->parse; |
|---|
| | 128 | my $items = $self->conf->{fetch_items} || 20; |
|---|
| | 129 | $self->log(info => 'fetch ' . scalar(@msgs) . ' entries'); |
|---|
| | 130 | |
|---|
| | 131 | my $i = 0; |
|---|
| | 132 | $self->{blocked} = 0; |
|---|
| | 133 | for my $msg (@msgs) { |
|---|
| | 134 | next if $type eq 'FriendDiary' and $msg->{link}->query_param('url'); # external blog |
|---|
| | 135 | last if $i++ >= $items; |
|---|
| | 136 | |
|---|
| | 137 | my $feed = Plagger::Feed->new; |
|---|
| | 138 | $feed->type('mixi'); |
|---|
| | 139 | (my $subject = $msg->{subject}) =~ s/\(\d+\)$//; |
|---|
| | 140 | (my $link = $msg->{link}) =~ s/&comment_count=\d*//; |
|---|
| | 141 | $feed->title($subject); |
|---|
| | 142 | $feed->description($MAP->{$type}->{title}.': '.$msg->{name}); |
|---|
| | 143 | $feed->link($link); |
|---|
| | 144 | |
|---|
| | 145 | $self->add_entry( $context, $type, $feed, $msg ); |
|---|
| | 146 | |
|---|
| | 147 | $context->update->add($feed); |
|---|
| | 148 | } |
|---|