--- loncom/interface/lonrss.pm 2006/04/13 17:57:17 1.15 +++ loncom/interface/lonrss.pm 2006/04/22 20:58:32 1.17 @@ -1,7 +1,7 @@ # The LearningOnline Network # RSS Feeder # -# $Id: lonrss.pm,v 1.15 2006/04/13 17:57:17 www Exp $ +# $Id: lonrss.pm,v 1.17 2006/04/22 20:58:32 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,7 +36,6 @@ use Apache::lontexconvert; use Apache::lonlocal; use Apache::lonhtmlcommon; -my $feedcounter; sub filterfeedname { my $filename=shift; @@ -106,14 +105,21 @@ sub rss_link { return qq||; } +{ + my $feedcounter; + sub get_new_feed_id { + $feedcounter++; + return time().'00000'.$$.'00000'.$feedcounter; + } +} + sub addentry { - $feedcounter++; - my $id=time.'00000'.$$.'00000'.$feedcounter; + my $id=&get_new_feed_id(); return &editentry($id,@_); } sub editentry { - my ($id,$uname,$udom,$filename,$title,$description,$url,$status,$encurl,$enclength,$enctype)=@_; + my ($id,$uname,$udom,$filename,$title,$description,$url,$status,$encurl,$enctype)=@_; if ($status eq 'deleted') { return &changestatus($id,$uname,$udom,$filename,$status); } @@ -126,7 +132,6 @@ sub editentry { $id.'_description' => $description, $id.'_link' => $url, $id.'_enclosureurl' => $encurl, - $id.'_enclosurelength' => $enclength, $id.'_enclosuretype' => $enctype, $id.'_status' => $status},$udom,$uname); } @@ -139,7 +144,6 @@ sub changestatus { $id.'_description', $id.'_link', $id.'_enclosureurl', - $id.'_enclosurelength', $id.'_enclosuretype', $id.'_status'],$udom,$uname); } else { @@ -157,6 +161,12 @@ sub changed_js { ENDSCRIPT } +sub determine_enclosure_types { + my ($url)=@_; + my ($ending)=($url=~/\.(\w+)$/); + return &Apache::loncommon::filemimetype($ending); +} + sub handler { my ($r) = @_; @@ -213,8 +223,7 @@ sub handler { } } } - $feedcounter++; - my $newid=time.'00000'.$$.'00000'.$feedcounter; + my $newid = &get_new_feed_id(); # Is this user for real? my $homeserver=&Apache::lonnet::homeserver($uname,$udom); if ($html) { @@ -284,10 +293,16 @@ ENDEDIT "http://".$ENV{'HTTP_HOST'}. $newsfeed{$id.'_link'}. ($html?("'>".&mt('Read more')."
\n"):"\n")); +# Enclosure? Get stats if ($newsfeed{$id.'_enclosureurl'}) { - $r->print(($html?"".&mt('Enclosure')."":"' />")); + my @stat=&Apache::lonnet::stat_file($newsfeed{$id.'_enclosureurl'}); + if ($stat[7]) { +# Has non-zero length (and exists) + my $enclosuretype=$newsfeed{$id.'_enclosetype'}; + $r->print(($html?"".&mt('Enclosure')."":"' />")); + } } if ($html) { $r->print("\n
\n");