From: Caesar Date: Sun, 15 Sep 2013 20:27:36 +0000 (+0200) Subject: (irssi-feed) Add a check for a correct servertag and reformat output of João Orui... X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=faebcde943059c43cdb1ebb3f0699691b02ab95b;p=irssi-scripts.irssi.org.git (irssi-feed) Add a check for a correct servertag and reformat output of João Orui's print to channel --- diff --git a/scripts/irssi-feed.pl b/scripts/irssi-feed.pl index aad59f6..31086b7 100644 --- a/scripts/irssi-feed.pl +++ b/scripts/irssi-feed.pl @@ -386,11 +386,23 @@ sub feed_get_news { sub feed_announce_item { my ($feed, $news) = @_; - my $space = ""; - $space =~ s//' ' x ((length $feed->{id}) + 3)/e; my $titleline = $news->title; $titleline =~ s/\s*\n\s*/ | /g; - feed_announce_item_print($feed, '<' . feed_stringrepr($feed) . '> ' . $titleline . "\n" . $space . $news->link, Irssi::MSGLEVEL_PUBLIC); + + my $channel = $feed->{channel}; + if($channel) { + my $server = Irssi::server_find_tag($feed->{servtag}); + if($server) { + $server->command("/notice $channel <" . feed_stringrepr($feed, 0, 1) . '> ' . $titleline . " " . $news->link); + } else { + feedprint('Feed ' . feed_stringrepr($feed) . ' failed to find servertag ' . $feed->{servtag} . '. Deactivated!') if($feed->{active}); + $feed->{active} = 0; + } + } else { + my $space = ""; + $space =~ s//' ' x ((length $feed->{id}) + 3)/e; + feedprint('<' . feed_stringrepr($feed) . '> ' . $titleline . "\n" . $space . $news->link); + } } sub finished_load_message { @@ -409,7 +421,7 @@ sub feed_delete { } sub feed_stringrepr { - my ($feed, $long) = @_; + my ($feed, $long, $nocolor) = @_; return unless $feed; if($long) { return "#" . @@ -420,11 +432,12 @@ sub feed_stringrepr { $feed->{name} . (($feed->{name} ne $feed->{uri}) ? (" (" .$feed->{uri}. ")") : "") . ($feed->{active} ? " ":" in")."active, " . - $feed->{timeout} ."s"; + $feed->{timeout} ."s" . + ($feed->{channel} ? ' (printed to ' . $feed->{channel} . '@' . $feed->{servtag} . ')' : ''); } else { - return ($feed->{color} ? $feed->{color} : '') . + return ($feed->{color} && !$nocolor ? $feed->{color} : '') . $feed->{id} . - ($feed->{color} ? '%n' : ''); + ($feed->{color} && !$nocolor ? '%n' : ''); } } @@ -447,18 +460,6 @@ sub feedprint { } } -sub feed_announce_item_print { - my ($feed, $msg) = @_; - my $channel = $feed->{channel}; - my $server = Irssi::server_find_tag( $feed->{servtag} ); - if($channel) { - $server->command("/notice $channel $msg"); - } else { - feedprint($msg); - } -} - - Irssi::command_bind('feed', \&feedreader_cmd); Irssi::settings_add_str('feedreader', 'feedlist', ''); our $initial_skips = 0;