aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Youri/Upload/Action/RSS.pm
diff options
context:
space:
mode:
authorFlorent Villard <warly@mandriva.com>2006-10-16 11:30:28 +0000
committerFlorent Villard <warly@mandriva.com>2006-10-16 11:30:28 +0000
commitd166be551245de6b8ec1dcdce4e521bb05186213 (patch)
tree59bc70d183bdfc6d26721257d1cc8f0fbb7c7be6 /lib/Youri/Upload/Action/RSS.pm
parent87d00fb9cd409c97b79740a487a9af683e7a9be1 (diff)
downloadmga-youri-core-d166be551245de6b8ec1dcdce4e521bb05186213.tar
mga-youri-core-d166be551245de6b8ec1dcdce4e521bb05186213.tar.gz
mga-youri-core-d166be551245de6b8ec1dcdce4e521bb05186213.tar.bz2
mga-youri-core-d166be551245de6b8ec1dcdce4e521bb05186213.tar.xz
mga-youri-core-d166be551245de6b8ec1dcdce4e521bb05186213.zip
add new youri subsections (from upstream)
Diffstat (limited to 'lib/Youri/Upload/Action/RSS.pm')
-rw-r--r--lib/Youri/Upload/Action/RSS.pm102
1 files changed, 0 insertions, 102 deletions
diff --git a/lib/Youri/Upload/Action/RSS.pm b/lib/Youri/Upload/Action/RSS.pm
deleted file mode 100644
index b1f484f..0000000
--- a/lib/Youri/Upload/Action/RSS.pm
+++ /dev/null
@@ -1,102 +0,0 @@
-# $Id$
-package Youri::Upload::Action::RSS;
-
-=head1 NAME
-
-Youri::Upload::Action::RSS - RSS notification
-
-=head1 DESCRIPTION
-
-This action plugin ensures RSS notification of new package revisions.
-
-=cut
-
-use warnings;
-use strict;
-use XML::RSS;
-use Encode qw/from_to/;
-use Carp;
-use base qw/Youri::Upload::Action/;
-
-sub _init {
- my $self = shift;
- my %options = (
- file => '',
- title => '',
- link => '',
- description => '',
- charset => 'iso-8859-1',
- max_items => 10,
- @_
- );
-
- croak "undefined rss file" unless $options{file};
- croak "invalid charset $options{charset}"
- unless Encode::resolve_alias($options{charset});
-
- $self->{_file} = $options{file};
- $self->{_title} = $options{title};
- $self->{_link} = $options{link};
- $self->{_description} = $options{description};
- $self->{_charset} = $options{charset};
- $self->{_max_items} = $options{max_items};
-}
-
-sub run {
- my ($self, $package, $repository, $target, $define) = @_;
- croak "Not a class method" unless ref $self;
-
- return unless $package->is_source();
-
- my $subject = $package->get_revision_name();
- my $content = $package->get_information();
-
- $content =~ s/$/<br\/>/mg;
-
- # ensure proper codeset conversion
- # for informations coming from package
- my $charset = $repository->get_package_charset();
- from_to($content, $charset, $self->{_charset});
- from_to($subject, $charset, $self->{_charset});
-
- my $rss = XML::RSS->new(
- encoding => $self->{_charset},
- encode_output => 1
- );
-
- my $file = $self->{_file};
- if (-e $file) {
- $rss->parsefile($file);
- splice(@{$rss->{items}}, $self->{_max_items})
- if @{$rss->{items}} >= $self->{_max_items};
- } else {
- $rss->channel(
- title => $self->{_title},
- link => $self->{_link},
- description => $self->{_description},
- language => 'en'
- );
- }
-
- $rss->add_item(
- title => $subject,
- description => $content,
- mode => 'insert'
- );
-
- if ($self->{_test}) {
- print $rss->as_string();
- } else {
- $rss->save($file);
- }
-}
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (C) 2002-2006, YOURI project
-
-This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
-
-=cut
-
-1;