#webliberty::Rss.pm (2006/10/03) #Copyright(C) 2002-2006 Knight, All rights reserved. package webliberty::Rss; use strict; use webliberty::String; ### コンストラクタ sub new { my $class = shift; my $self = { rss_data => undef, rdf_about => undef, link => undef, description => undef, items => undef }; bless $self, $class; return $self; } ### RSSデータ作成 sub create_rss { my $self = shift; my %args = @_; $self->{rdf_about} = $args{'rdf_about'}; $self->{title} = $args{'title'}; $self->{link} = $args{'link'}; $self->{description} = $args{'description'}; $self->{date} = $args{'date'}; $self->{items} = $args{'items'}; $self->{rdf_about} =~ s/~/%7E/g; $self->{link} =~ s/~/%7E/g; if ($self->{date} =~ /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) { $self->{date} = "$1-$2-$3" . "T$4:$5+09:00"; } $self->{rss_data} = <<"_RSS_"; $self->{title} $self->{link} $self->{description} ja $self->{date} _RSS_ foreach (split(/\n/, $self->{items})) { my($title, $link, $description, $date) = split(/\t/); $link =~ s/~/%7E/g; $self->{rss_data} .= <<"_RSS_"; _RSS_ } $self->{rss_data} .= <<"_RSS_"; _RSS_ foreach (split(/\n/, $self->{items})) { my($title, $link, $description, $date) = split(/\t/); $link =~ s/~/%7E/g; my $string_ins = new webliberty::String($description); $string_ins->replace_string('<[^>]*>', ''); $description = $string_ins->trim_string(300, '...'); $description =~ s/&/&/g; $description =~ s//>/g; if ($date =~ /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) { $date = "$1-$2-$3" . "T$4:$5+09:00"; } $self->{rss_data} .= <<"_RSS_"; $title $link $description $date _RSS_ } $self->{rss_data} .= <<"_RSS_"; _RSS_ return $self->{rss_data}; } 1;